![]() |
<LandXML> | Transfer file | ||||||
![]() |
<Units><Metric> | Units (Metric) | ||||||
![]() |
<CoordinateSystem> | Coordinate and elevation system | ||||||
![]() |
<Start> | Base point | ||||||
![]() |
<Project> | Project | ||||||
![]() |
<Feature> | "IM_codings" extension type coding systems | ||||||
![]() |
<Application> | Application | ||||||
![]() |
<Author> | Authors | ||||||
![]() |
<CgPoints> | Collection of coordinate geometry points on planned surface (on a breakline or a plan feature) | ||||||
![]() |
<CgPoint> | Coordinate geometry point on planned surface designated as control point with tolerance | ||||||
![]() |
<Feature> | "IM_coding" extension type coding | ||||||
![]() |
<Feature> | "IM_cgpoints" extension tolerance information | ||||||
![]() |
<Survey> | Survey data group | ||||||
![]() |
<SurveyHeader> | Header information of the survey data | ||||||
![]() |
<Equipment> | Survey equipment data | ||||||
![]() |
<InstrumentDetails> | General instrument details | ||||||
![]() |
<Corrections> | Measurement accuracy information | ||||||
![]() |
<Feature> | "IM_survey" extension survey accuracy data | ||||||
![]() |
<CgPoints> | Collection of coordinate geometry points on a surface | ||||||
![]() |
<CgPoints> | Collection of coordinate geometry points with same asbuilt data | ||||||
![]() |
<CgPoint> | Coordinate geometry point as measured | ||||||
![]() |
<Feature> | "IM_coding" extension type coding | ||||||
![]() |
<Feature> | "IM_cgpoints" extension survey information | ||||||
![]() |
<FeatureDictionary> | Definition dictionary of extensions |
An Inframodel file of any plan contains the header information described in the section 1.
This section describes as-built data that can include both planned control points with tolerances, and the measured values with metadata (survey and its accuracy). Also the diffence vectors between planned (designed) and measured can be captured.
Collections of coordinate geometry points grouping control points on a planned surface, on a breakline or on a plan feature, with same tolerance values, are set in <CgPoints> elements. Each collection has a unique name and a code, and these collections can be nested; code is set to "control" in root level control points collection, and to any approriate value in each subcollection. Optionally, a description can be given and a state can be set (usually "proposed" for planned points) for any collection of control points. Additionally, the collection may include an IM_coding <Feature> element classifying the surface, breakline or planimetric feature where the control points are assigned to. The tolerance values are set in IM_cgpoints <Feature> element.
Attributes of <CgPoints>:
![]() |
desc | description | e.g. [tolerances on surface ARP] |
![]() |
name | unique name | e.g. [!Tmv9u3vjj5jb-9jjfgd] |
![]() |
state | state |
[abandoned] [destroyed] [existing] [proposed] |
![]() |
code | code | [control] |
Each individual control point is set under <CgPoint> element, and shall have name that is a Universal Unique Identifier (UUID as defined in ISO/IEC 9834-8:2005), and shall be generated in compressed form as explained for IFC Globally Unique Identifier (GUID). When the name is a GUID, a human-readable name shall be given in description. Additionally, surveyOrder (sequence number) shall be set.
Attributes of <CgPoint> for control point declaration:
![]() |
name | globally unique identifier | e.g. [45AB2420-3A5A-4069-AFDA-080024305ABC] |
![]() |
desc | description | e.g. [point 1] |
![]() |
timeStamp | optional time when set (UTC) | e.g. [2017-01-23T13:00:04Z] |
![]() |
surveyOrder | sequence number | e.g. [1] |
Each control point shall have its planned 3D location set:
<CgPoint>northing easting elevation</CgPoint>
Tolerance values for all the control points under <CgPoints> collection element are set in IM_cgpoints <Feature> element.
Horizontal tolerance is given either
1) as allowable deviation toleranceXY without specified direction from a given point <CgPoint>northing easting</CgPoint>
2) or as allowable deviations from a given point <CgPoint>northing easting</CgPoint> in specified direction dirA (e.g. along a referenced alignment) as toleranceAmin and toleranceAmax, and in perpendicular (offset) direction toleranceBmin and toleranceBmax. Both directions, dirA and perpendicular, or only one of these may be specified. Also, in both directions it is possible to specify either min or max toleance, or both. If any of these are specified, also dirA shall be.
In both cases, horizontal tolerances can be coupled with vertical tolerance values toleranceZmin and toleranceZmax. The required combination of tolerance values to be set in IM_cgpoints <Feature> must be agreed for each use case separately (in Common InfraBIM Requirements or other such guidelines).
Details of control point tolerances in "IM_cgpoints" <Feature>:
![]() |
name | optional name | e.g. [9] | |||
![]() |
code | code | [IM_cgpoints] | |||
![]() |
source | source | [inframodel] | |||
Parameters
<Property> | ||||||
![]() |
label | [toleranceXY] | tolerance in horizontal plane from set northing easting in distance units (non-negative number) |
value | e.g. [0.02] | |
![]() |
label | [toleranceAmin] | horizontal tolerance in direction dirA (e.g. along referenced alignment) in distance units (behind = non-positive number) |
value | e.g. [-0.02] | |
![]() |
label | [toleranceAmax] | horizontal tolerance in direction dirA (e.g. along referenced alignment) in distance units (ahead = non-negative number) |
value | e.g. [0.02] | |
![]() |
label | [toleranceBmin] | horizontal tolerance in direction perpendicular to dirA (e.g. towards/from referenced alignment) in distance units (left = non-positive number) |
value | e.g. [-0.03] | |
![]() |
label | [toleranceBmax] | horizontal tolerance in direction perpendicular to dirA (e.g. towards/from referenced alignment) in distance units (rigth = non-negative number) |
value | e.g. [0.02] | |
![]() |
label | [toleranceZmin] | height tolerance below set elevation in height units (non-positive number) |
value | e.g. [-0.01] | |
![]() |
label | [toleranceZmax] | height tolerance above set elevation in height units (non-negative number) |
value | e.g. [0.03] | |
![]() |
label | [alignmentRef] | name of the referenced alignment |
value | e.g. [stationing reference line] | |
![]() |
label | [dirA] | direction of positive A tolerance (e.g. derived from direction of referenced alignment) in direction units |
value | ||
![]() |
label | [geometryType] | type of geometry that the control point is part of |
value | e.g. [pointGroup | polyline | closedPolyline] |
Measured as-built data is grouped in survey collection for each surface under <Survey> element. No attributes of <Survey> are required to be used in Inframodel, but optionally a description may be given.
The mandatory element <SurveyHeader> under <Survey> has a mandatory name (to give name to the survey data set) and optional purpose (to be set "asbuilt").
Attributes of <SurveyHeader>:
![]() |
name | unique name | e.g. [sd123345] |
![]() |
purpose | survey purpose |
[asbuilt] |
Under each <Survey> element, an <Equipment> element (no attributes) shall specify the details of the survey instrument used as <InstrumentDetails>, with attributes id (mandatory identification) and optional manufacturer, model and serialNumber. These details are extended further under <Corrections> element (no attributes used in Inframodel) in "IM_survey" extension <Feature>.
Attributes of <InstrumentDetails>:
![]() |
id | instrument identifier | e.g. [_33EC2020-3AEA-A069-A2DD-08002B303555] |
![]() |
manufacturer | instrument manufacturer | e.g. [Daewoo] |
![]() |
model | instrument model name | e.g. [A123] |
![]() |
serialNumber | instrument serial number |
e.g. [1234222] |
Details of <InstrumentDetails>.<Corrections> in "IM_survey <Feature>:
![]() |
name | optional name | e.g. [9] | |||
![]() |
code | code | [IM_survey] | |||
![]() |
source | source | [inframodel] | |||
Parameters
<Property> | ||||||
![]() |
label | [accuracyType] | accuracy of survey method |
value | e.g. [2031] | |
![]() |
label | [accuracyDescription] | verbal description of accuracy type of survey method |
value | e.g. [Kaivukone toteumamittaus, takymetriohjaus] |
The Finnish RAK survey code list is recommended to be used for accuracyType and corresponding accuracyDescription in Inframodel transfer.
![]() |
<Equipment> | schema documentation | |
![]() |
<InstrumentDetails> | schema documentation | |
![]() |
<Corrections> | schema documentation |
The survey points belonging to the survey are grouped under <Survey>.<CgPoints> element with attributes described above in 10.2: the name is used to identify the correspoding collection of control points, and code can be set to "survey" at the root of nested collections.
Within the survey points collection, another <CgPoints> element is used as a wrapper, to pair <CgPoint> elements with an "IM_cgpoints" <Feature>, and optionally also an "IM_coding" <Feature>. Each survey point <CgPoint> shall have a unique name, and pntRef shall be used to identify the corresponding control point (set as explained in 10.2.1), as well as timeStamp when surveyed (always as UTC) and surveyOrder (sequence number).
Attributes of <CgPoint> for measured survey data:
![]() |
name | unique name | e.g. [cgp123442] |
![]() |
desc | description | e.g. [point 1] |
![]() |
pntRef | reference to the corresponding control point by its unique name | e.g. [45AB2420-3A5A-4069-AFDA-080024305ABC] |
![]() |
timeStamp | time when measured (UTC) | e.g. [2014-01-21T05:44:44Z] |
![]() |
surveyOrder | sequence number | e.g. [1] |
3D location as surveyd is set in:
<CgPoint>northing easting elevation</CgPoint>
Details of as-built survey point in "IM_cgpoints" <Feature>:
![]() |
name | optional name | e.g. [9] | |||
![]() |
code | code | [IM_cgpoints] | |||
![]() |
source | source | [inframodel] | |||
Parameters
<Property> | ||||||
![]() |
label | [differenceXY] | horizontal difference between planned and measured point in distance units |
value | e.g. [-0.014] | |
![]() |
label | [dirDifferenceXY] | direction of horizontal difference between planned and measured point in direction units |
value | ||
![]() |
label | [differenceA] | horizontal difference in direction dirA between planned and measured point in distance units |
value | e.g. [-0.014] | |
![]() |
label | [differenceB] | horizontal difference in direction perpendicular to dirA between planned and measured point in distance units |
value | e.g. [0.011] | |
![]() |
label | [differenceZ] | difference in elevation between planned and measured point in height units |
value | e.g. [-0.01] | |
![]() |
label | [alignmentRef] | name of the referenced alignment |
value | e.g. [stationing reference line] | |
![]() |
label | [dirA] | direction of positive A difference (e.g. derived from direction of referenced alignment) in direction units |
value | ||
![]() |
label | [geometryType] | type of geometry that the survey point is part of |
value | e.g. [pointGroup | polyline | closedPolyline] |