# Innovative System for BIM/GIS Integration in the Context of Urban Sustainability
## 3 Materials and Methods
### BIM and GIS Integration through Cesium Platform  
Cesium (version 1.13) is an open-source platform for viewing web-based interactive 3D maps. It allows for developers to create applications that display geospatial data dynamically on a three/four-dimensional map. It supports a variety of features, including the ability to view terrain, 3D models, satellite imagery, lines of sight, tags, and more. It can also integrate with data from various sources, such as map services, sensors, GIS data, and temporal data [48; 49]. In particular, Cesium ion allows for loading 3D data and optimizing them as 3D tiles which, merged with other 3D contents such as Cesium World Terrain, Bing Maps Imagery, and Cesium OSM Buildings, allow for their visualization on the web through CesiumJS. The data can be loaded using various tools such as Point Clouds Tiler, which supports.las and.laz formats typical of laser scanner restitution, and 3D Buildings Tiler, which allows for preserving metadata from CityGML and KML/COLLADA for interactive analysis in CesiumJS, which is a JavaScript library used for 3D geospatial visualizations in browsers and on different devices. Therefore, 3D geometries, deriving from a survey with drones or laser scanner, can be managed and shown in a GIS setting using libraries like three.js, making it easier to convert BIM geometry into formats that are compatible with GIS. In relation to BIM/GIS integration issues, to overcome the limitations of Infrawworks and the VR/AR/MR app, a strategy is proposed that consists of adding within the libraries available to Cesium ion, a software module capable of converting the starting file of the 3D model in.ifc format into a format compatible with one of the libraries present in Cesium. Cesium 3D Buildings Tiler allows for the import of 3D data in one of the following formats:.xml,.xml, etc. The aim, therefore, would be to customize the code by enriching it with a module that converts the.ifc format into the.citygml format. Furthermore, in Cesium, the representation of the same building can be imported as a point cloud and overlay both the 3D Buildings Tiler and the Point Clouds Tiler views in the representation. It should be emphasized that if the coordinates of the points coming from the BIM are not expressed in terms of a standard EPSG reference system (EPSG is a global registry that lists and catalogues spatial reference systems used worldwide, providing unique codes to identify them), the library can take charge of the re-mapping of the coordinates coming from the BIM in order to associate all the construction points with the coordinates consistent with the GIS reference system used within the 3D WebGis. Naturally, with this option, the transformation is semi-assisted, and an operator must indicate a mapping of three known construction points among all those being imported. Figure 7 shows the proposed logical-functional scheme. Moreover, Cesium ion also allows for the tiling of BIM or CAD models and displaying them in a geospatial setting for web sharing. Figure 7: Logical–functional scheme of the proposed methodology. At this point, Cesium OSM Buildings (a global layer with over 350 million buildings from OpenStreetMap data) and Cesium World Terrain were added. The model was then imported into Cesium ion through the \"My Assets\" and \"Add data\" sections. Once the model is imported, it is automatically geolocated. Then, the code is customized by inserting a software module that takes the uploaded BIM model as input and converts it into a format compatible with Cesium, such as CityGML (.citygml,.xml,.gml), or KML/COLLADA (.kml,.kma,.dae). In this case, any per-building properties in the source data will be included in the 3D output. Parsing, or data extraction from the IFC format, is the first step in the conversion process. It consists of the following steps:  
* Loading the IFC file: The method first imports the IFC file using a library named IfcOpenShell. This library is used to read and understand data contained in IFC files.