Extracting the geometry of selected structural elements from BIM models

. The use of information technology is currently a prerequisite for the successful implementation of any project in various spheres of human activity. Building information modelling (BIM) allows you to use a virtual model of a building, covering the entire life cycle of a building, starting from design, and ending with its demolition. However, as in any field, BIM technology has advantages and disadvantages. Since the models are often detailed and complex 3D models, the extraction of the coordinates of characteristic points for geodetic purposes is more difficult as in the case of 2D drawings. In this article, we provide practical information on extracting geometric parameters of objects from a BIM model in the Industry Foundation Classes (IFC) format. Three objects (wall, structural opening, and column) were selected as examples. The results obtained showed that the applied approach provides reliable data on the geometry of the objects used.


Introduction
The use of information technology is currently a prerequisite for the successful implementation of any project in various spheres of human activity.Building Information Modeling (BIM) is one of the most promising developments in the architecture, engineering, and construction (AEC) industries.With BIM technology, an accurate virtual model of a building is constructed digitally.When completed, the computer-generated model contains precise geometry and relevant data to support the construction, fabrication, and procurement activities required to realize the building.When implemented appropriately, BIM facilitates a more integrated design and construction process that results in better quality buildings at lower cost and reduced project duration [1].
Nowadays the most widely used file exchange format for BIM is the Industry Foundation Classes (IFC).This format has gained its popularity due to an open specification for data exchange in the field of construction and facility management [2].The developer of this format is the buildingSMART alliance, formerly known as the International Alliance of Interaction (IAI).The central principle of this alliance is the openBIM concept -the principle of openness and unification of data for all project participants, regardless of the software used to solve a particular task.The concept implies transparent, open data, avoiding loss and duplication of information.In addition, the IFC format has the following features: 1.The ability to manually configure the attributes of objects.Due to the openness for editing the IFC file, it is possible to fine-tune any entity to suit your needs without using a BIM platform [3].
2. Reading (viewing) projects.The IFC format is most often used as a visualization of the project through viewing programs for the purpose of checking the original project.At the same time, after importing, the project file is initially closed for writing and cannot be accidentally changed.
3. Support and development prospects.The format is being developed by the joint efforts of an alliance of the largest CAD companies with the support of universities around the world.
4. IFC is a data exchange format and an interface for converting entities of one software into entities of another.As a result of the double conversion, despite the OpenBIM concept, there are errors and data loss due to imperfections in the algorithms for importing and exporting BIM platforms [4].
Currently, the newest version of IFC is IFC 4.3.xdev, however the IFC 4.4.0 is already being developed [5].A BIM model exported into the IFC format was used in this work as an example (Fig. 1).The aim of the article is to extract geometric information from an IFC format file to use the obtained data in the execution of selected geodetic works.

Wall geometry extraction from IFC
According to the definition by the International Organization for Standardization (ISO), a wall is a vertical structure, usually, stone or concrete, that restricts or separates the structure and performs load bearing or retaining functions [6].
In contrast to the definition given by [6], the definition of a wall in buildingSMART is supplemented by the following: "... Walls are usually vertical or almost vertical flat elements, often designed for bearing structural loads.At the same time, the wall should not be a carrier ..." [7].There is a division into IfcWallStandartCase and IfcWall in the buildingSMART catalogue.So, IfcWallStandartCase is used for all occurrences of walls that have a constant thickness along the wall path and where the thickness parameter can be fully described by a set of material layers.These walls are always represented geometrically using the SweptSolid geometry if a three-dimensional geometric representation is assigned.IfcWall, is used for all other wall occurrences for walls with varying thickness along the wall path (for example, polygonal walls), or walls with non-rectangular cross-sections.The information provided in IfcWall contained the following information stored as text: #518=IFCWALL('3EiGoFx85EV8Kh5UhCp_73',#42,'BasicWall:SN.257_WALL_RCO_250:443268',$,'BasicWall:SN.257_WALL_RCO_250',#478,#514,'443268',.NOTDEFINED).
The information stored in the line is the following: − #518 -the sequence number of the line in the IFC file.− IFCWALL -internal data type.− '3EiGoFx85EV8Kh5UhCp_73' -IFC-GUID is a globally unique identifier that provides a way to uniquely identify an object.
− #42 -Information about the file.This includes information about the organization and the user who created this object.
− $ -a symbol indicating the absence of an optional element.− 'BasicWall:SN.257_WALL_RCO_250'-the type of object specified by the user.− #478 -information about the location of the object.− #514 -information about the shape of the object.− 443268 -object tag.− NOTDEFINED -preferred object type.
To trace the entire connection of storing all geometry information, it is necessary to follow the links from the initialization of the object to the final line with data about the coordinate system used.The initialization string is located at position #478, has the name IfcLocalPlacement and contains two links: #136 and #477 (both are IFCLocalPlacement).
From the [7], we understand that IfcLocalPlacement indicates the location of the object.In this case, the location consists of two components: information about the relative object of which the current object will be constructed (PlacementRelTo), as well as information about the object itself (RelativePlacement).If there is no PlacementRelTo, it means that the object is located absolutely (without connecting to another object).Based on this definition, it was assumed that the information contained in line #136 and all subsequent references within it refers to information about a relative object.And the information contained in line #477 refers to information about the location of the object itself (Fig. 2).

Fig. 2.
Definition of IfcLocalPlacement in a three-dimensional coordinate system (XYZ (red)-the coordinate system of the object itself (RelativePlacement).XYZ (black) -the coordinate system of a relative object (PlacementRelTo) Wall direction -the direction of the wall or a unit vector.).IFCLocalPlacement(#33,#135).At the end of this iteration, we come to line #146 (#146= IFCAxis2Placement3D(#6,$,$), which represents the location and orientation for placing elements in three-dimensional space.The object is characterized by a point having coordinates in a two-or three-dimensional rectangular Cartesian coordinate system (IfcCartesianPoint), two axes (IfcDirection), with one of the axes representing the Z-axis direction of a local coordinate system, and the second -the X-axis direction of local coordinate system.It is also worth noting that the IfcDirection components are not normalized, so if a unit vector is needed, it should be normalized first and used only after.If there are no IfcDirection elements, as in our case, this means that the axes are set by default and equal to X-axis [1., 0., 0.,], Y-axis [0., 1., 0.,], Z-axis [0., 0., 1.,].The location of the object itself contains an identical set of parameters (a point and two vectors).After determining the information about the location of the object, it is necessary to determine the remaining elements to be able to recreate the desired object independently.Therefore, the next step for analysis is information about the shape and dimension of the object.All information about the shape of the object is presented in the IfcProductDefinitionShape. In our case, this description is presented in line #514 (#514= IfcProductDefinitionShape($,$,(#483,#512))).Shape-related information includes shape representation, related representation information, and assignment to representation layers or elements of a topological representation for connectivity systems.Based on the example presented, the information about the form was divided into two links (#483 and #512, with the same name IfcShapeRepresentation). Despite the similarity of the names, in the first case (#483) was presented information about the object axis, and in the second (#512)information about the shape of the object.Since information about the shape of the object itself is considered the most important, the second case of IfcShapeRepresentation (#512) will be considered here, but their data structure is the same, so all explanations can be applied to the first case (#483).
#512 IfcShapeRepresentation -represents the concept of a specific geometric representation of a product or product component in the context of a specific geometric representation (definition from buildingSMART).And, indeed, if we look at the contents of line #512 (#512= IfcShapeRepresentation(#105,'Body','SweptSolid',(#502))), we can see the following parameters: 1. #105 is the first element of the string containing information about the subcontext.Since each object has several instances of IfcRepresentation subtypes, each of which is assigned to different geometric representations, then using the information about the subcontext, you can choose the most appropriate representation for displaying the geometric shape of the object, depending on the target view and scale.This element contains attributes that represent information about the form of representation: 1.1.Parent context.The most important attribute containing information about the coordinate system, accuracy, dimension of spatial coordinates and true north.
1.2.Information about the scale.1.3.Updated information about the target form.1.4.User-defined form (this parameter may be missing).2. Information about the object concerning which all information is provided (Axis, Body, etc.).
3. Representation types for shape representation.4.And the most important element is the location.In our case, this value corresponds to the string #502 IfcExtrudedAreaSolid.
From the definition provided by [7], IfcExtrudedAreaSolid is the body of an elongated area defined by covering a bounded flat surface.Having considered the structure of the element (#502= IFCExtrudedAreaSolid(#500,#501,#20,2590.31254649137)), we can observe the following parameters: 1. IfcArbitraryClosedProfileDef -defines an arbitrary two-dimensional profile for the use within the swept surface geometry, the swept area solid or a sectioned spine.It is given by an outer boundary from which the surface or solid can be constructed.
2. The direction in which the surface should be swept.
3. The distance the surface is to be swept (wall height).As a result of the above procedures, the following data presented in Table 1.
Table 1.Extracted geometry information of the Wall from IFC.There are two different types of opening elements: − An opening, where the thickness of the opening is greater or equal to the thickness of the element.

Name
− A recess or niche, where the thickness of the recess is smaller than the thickness of the element.
Since the description of IfcOpeningElement is identical to the description of IfcWall, the structure of extracting information about the location of the opening is identical to the structure of extracting information about the location of the wall, except for one thing.Since the openings are "inside" the wall, they have two PlacementRelTo objects.The first PlacementRelTo object for openings will be the wall PlacementRelTo object, and the second will be the wall RelativePlacement.At the same time, openings also have their own Relative Placement (Fig. 3).

Fig. 3.
The structure of the location information in structural opening.PlacementRelTo is highlighted in a red rectangle.RelativePlacement -into a green rectangle.
Unlike the almost identical structure of location information with IfcWall, the structure of information about the shape of the opening has more differences.All information about the shape of the object is also presented in the IfcProductDefinitionShape. In our case, this description is presented in line #1336 (#1336= IfcProductDefinitionShape($,$,(#1332))).Due to the entry of the opener into the wall, there is no need for information about the axes here to represent the shape and space of the object.Further, the description of the object's shape has an identical IfcWall structure, up to the moment of the shape's location.
IfcRectangleProfileDef is an entity used for describing the location of the object's centre, which in our case is in line #1314.According to [7], this attribute defines a rectangle as a profile definition used by the geometry of the sweeping surface or the solid body of the sweeping area.The attribute itself includes the following parameters: 1. Name. 2. location (described by IfcCartesianPoint and IfcDirection).
3. The length of the rectangle in the direction of the X and Y axes.A feature of this attribute is the change in the direction of the axes.When an opening is located, the directions of the main axes of the object are changed relative to the relative coordinate system used for the entire BIM model (since the direction of the axes of the wall coordinate system coincides with the direction of the axes of the relative coordinate system).Thus, the X-axis of the structural opening corresponds to the Z-axis of the wall, the Y-axis of the structural opening corresponds to the X-axis of the wall, and the Z-axis of the structural opening corresponds to the Y-axis of the wall (Fig. 4).The result of the performed work is presented in Table 2.The extent of the rectangle in the direction of the x-axis and y-axis 2150 and 900
As can be seen from the example, the structure of the columns is identical to the structure of the walls, so the data extraction process is identical to the data extraction process from IfcWall.The only difference is the representation of the object's shape.If the column has a cylindrical shape, the IfcCircleProfileDef attribute is used, describing the shape of the column using a point (IfcCartesianPoint), direction (IfcDirection) and radius.If the column has a rectangular shape, the IfcRectangleProfileDef attribute is used, describing the shape of the column using a point (IfcCartesianPoint), direction (IfcDirection) and the length of the rectangle in the direction of the X and Y axes.At the same time, the height, regardless of the column's shape, is represented in a separate attribute (IfcExtrudedAreaSolid).
Thus, the extracted data, stored in the line for a column has the following form: The coordinate system of the wall The The column restored in the AutoCAD environment based on the extracted data had the form (Fig. 5).

Conclusion
The aim of this study was to export geometric information from a BIM model in to IFC format.In this model, a wall, a construction opening, and a column were chosen as examples.
The search and extraction of the data were done manually.The results showed that the applied approach provides reliable data on the geometry of the objects used.The obtained data can be used to check the geometric parameters of construction objects.However, to completely use such data, it is necessary to automate the extraction procedure and as a further study we are going to use Matlab software to solve this task.

Following
the link to the number #136, we could find that it also has the name IfcLocalPlacement and contains an identical set of parameters (#136 =

Fig. 4 .
Fig. 4. Scheme of the IfcOpeningElement axes relative to the wall coordinate system.