# Wall Structure Geometry Verification Using TLS Data and BIM Model
## 2 Building Structures' Geometry Verification
### Geometry Identification from BIM Model  
As mentioned above, the geometry of the verified structure is derived from the IFC file, which is a standardized (_ISO 16739-1:2018_) digital description of the building. It is a gradually evolving exchange format, and its current version is IFC4. Since IFC is formatted as a text file, it can be read using a text editor, which simplifies the procedure of the information derivation. For this purpose, it is necessary to know the structure of the data arrangement in IFC. The IFC file consists of two main parts: the header and the data in the model. Within the data part are defined both the coordinate system and the system of units, which had been used. The coordinate system is a planar orthogonal, right-handed Cartesian coordinate system, which means that the coordinates X and Y are defined in the IFC but the Z coordinate, necessary for the definition of 3D space, is expressed by the height of the structural element. The form of coordinate definition does not correspond to the ones used in surveying, because it does not take into consideration map projection (Earth's surface curvature, cartographic distortion) [32]. There is an IFC entity dealing with the map coordinate system called _IfcMapConversion_. However, its use only allows placement of the object at one point (easting, northing, orthogonal height) and orientation of the object towards the initial direction (north). For practical use, when modeling a larger area, it is necessary to divide it into parts (in local horizons) or apply coordinate corrections. Figure 1: Flow chart of wall structure verification. After defining the coordinate system and the units, the heights of individual floors of the building are defined and listed. The number of lines in this section depends on the total number of floors. The floors are defined by the _IfCartesianPoint_ and the _IfCAxis2 Placement3D_ entities. The first one defines the X, Y coordinates of the origin, which are in case of floors equal to 0, and the height of the floor. The _IfCAxis2 Placement3D_ entity defines the position in the coordinate system of the BIM model. After this follows the definition of the building structures included in the given BIM model (Figure 2). Depending on the content of the model (e.g., foundations, walls, doors, windows, beams, columns, etc. ), several sections are defining the structural parts, while the individual elements are defined in separate sections. It is not possible to directly estimate the length of the section, but the beginning and the end of each one can be identified. The section always starts with a coordinate of the origin of the geometric element, i.e., an _IfCartesianPoint_ line, and ends with the element name such as _IfCWall_, _IfCDoor_, _IfCBeam_, etc. Specific objects of interest of our approach are the walls, which in the IFC format are referred to as _IfCWall_. In the corresponding line, there is a specific wall number, which is a unique identifier. Subsequently, within the row, there is the thickness of the wall and the connection to the previous row, therefore, it is possible to identify where the wall is located and in which direction it is oriented. For each wall to be verified, it is necessary to obtain the coordinates of the reference point (origin), the direction vector of the wall, length, width, and height from the IFC file. The coordinates of the reference point are obtained from the _IfCartesianPoint_ line (Figure 2). The direction is extracted from the line _IfCInterction_, which contains components of the unit direction vector. This line is missing in the case when the wall is oriented into the direction of the X or Y axis of the model's coordinate system. This can be solved by comparison of the origin of two walls, where the direction can be derived from the changing X or Y coordinate of the origins. The height of the wall is in the _IfCExtrudeAreaSolid_ line, while the length is defined by _IfCRectangleProfileDef_.