## 4 Program Development and Platform Building
Figure 2: Flowchart of program development and platform setup. (WebAPI) (Figure 5). This function simplifies the operation and workflow, solves difficulties in application and reduces the operation threshold, simplifies the information collection process, makes it easier for the user to operate, makes information transmission more direct, preliminarily builds the follow-up interactive functions, and strengthens the application of the front end. WebAPI helps in enabling the development of HTTP services to reach out to client entities such as browsers, devices, or tablets. The function of Web API here can not only reduce the burden of computer calculations, but also instantly update the model information to the integrated platform. The following figure (Figure 5) shows the transmission process between the Revit model information and the Unity integrated platform. The model information collected during the collection phase can be uploaded to the cloud storage space in real time, and the model information in the cloud can be automatically captured during the programming integration phase. In addition to strengthening the connection between the information model in Revit and Unity integrated platform, the cloud service also increases the applicability of model information. Completion of the information collection at Stage I was followed by the programming integration stage (Figure 2). This study used the Unity 3D game engine as the integration platform to build an interactive environment for the information models of historic buildings, where the geometric model (.FBX) (refer to the circle number 1 marked on the left in Figure 6) and non-geometric semantic information (.CSV) (refer to the circle number 2 marked on the left in Figure 6) collected in Stage I were imported into the game engine, and the geometric model and corresponding non-geometric semantic information were correctly integrated through Unity C# programming language (Figure 6). Figure 4: Advanced information acquisition process of Visual Studio. Figure 5: Cloud service framework (WebAPI) of Visual Studio. After the above stage of information collection and programming integration, the BIM models of historic buildings were imported to the game engine, and a link was built for the geometric model and the non-geometric information. Then, the restoration information of the historic building was overlain, updated, and edited to strengthen the application capability and back-end management, which made the restoration of historic buildings more visible and superseded the time-consuming exchange of traditional paper information, and such continued information conveyance constantly expanded back-end management. The integration platform proposed in this study is a customized project, which is developed using the existing BIM model [18; 19; 20] that has been completed before. Since the original model was built using the Revit 2017 version, if it is higher or lower than this version, the program and platform developed by this research will not be able to be used. It is also difficult to have commonality in different historical building components, which restricts the versatility of the integrated platform. At the same time, this study also found that the file capacity of the model imported into the game engine platform has a limit of 1 GB, so the model cannot exceed this limit. In addition, the coordinates in the Revit environment are the right-hand rule, which is also the most common coordinate system with the \(Z\)-axis facing up. However, in the Unity3D game engine, it is based on the left-hand rule with the \(Y\)-axis up coordinate system. The coordinates between the two platforms are different. After the geometric model is imported into the game engine, the relative position information between the model components is different from the original position, so that the model cannot be reorganized and presented in a correct way. Therefore, it is necessary to convert the coordinates collected from the Revit model components into the same coordinate system as Unity.