IFC geometrical concepts
IFC is a standard with a rich set of geometric primitives, with core concepts defined in the geometry, presentation, material, topology and profile resource subschemas. But also outside of these modules, there are various concepts that have geometrical implications such as openings and space boundary relationships in the productextension subschema. This listing below tries to provide a comprehensive overview broken down per the categories below:
-
Relational; typically IfcRelationship between elements subtypes, but also clearance geometry which is a potential additional shape representation identifier
-
Product-level; resources applicable the IfcProduct such as material-based styling; openings
-
Item-level; the individual items that make up representation of the element; which are in turn potentially affected by product-level features such as openings and styling
-
Context; provides additional information on individual items such as precision, target scale and semantic use of the geometry
-
Geo-referencing;
Prevalence is measured as a text-based scan through a set of 1000 files (500 for novel constructs). The number indicates percentage of model featuring this entity; and then the average number of instances for those models that contain any. See second table for more details.
| Level | Concept | Prevalence | Notes | Related terms from ISO / OGC (SFA, GeoSPARQL, GML, …) |
|---|---|---|---|---|
Relational |
Space boundaries (connection geometry) |
12.6% (1676) |
|
|
Relational |
Interferences |
1.4% (3) |
|
|
Relational |
Metric constraints |
0% |
|
|
Relational |
Clearance geometry |
0% |
|
|
Product |
Relative positioning |
97.6% (1298) |
|
gml:AffineCS |
Product |
Linear positioning |
4.8% (527) |
|
ISO 19148:2021 |
Product |
Grid placement |
0% |
|
|
Product |
Openings |
49.1% (168) |
|
|
Product |
Material association |
71% (324) |
|
|
Product |
Parametric geometry as geometry-related semantics via property sets (e.g. |
29% (73) |
Semantic parameters that can be used to drive or reconstruct geometry when explicit representations are absent. |
|
Product |
Product-level composite curves defining the 'business-logic' of parametric alignment segment nesting within a curve |
4.2% (504) |
Decomposition of IfcAlignment into IfcAlignmentSegment with parametric geometry (typically redundant with item-level curves). |
OGC LandInfra/InfraGML alignment model |
Product |
Aggregation of product into assemblies: composition ( |
96.9% (29) |
Product-level aggregation (e.g., ports, sub-elements, segments) |
|
Item |
Basic 0D/1D/2D items: points, curves, faces (IfcCartesianPoint, IfcPolyline, IfcCompositeCurve, IfcFace) |
99.2% (34194) |
Simple representations or underlying points, polylines, composite curves (including circular/arc segments), and faces used in higher-level geometry. |
SFA: Point, LineString, MultiLineString, Polygon; GML: gml:Point, gml:Curve, gml:LineString |
Item |
Profiles: parametric (e.g I shape) / arbitrary / derived / composite (IfcProfileDef, IfcArbitraryProfileDef, IfcDerivedProfileDef, IfcCompositeProfileDef) [Note: not strictly an independent IfcRepresentationItem] |
76.9% (763) |
Cross-section definitions used by sweeps and structural members; parametric catalog profiles and arbitrary section shapes. |
|
Item |
Annotation geometry: text literals, hatches and fills |
11.6% (101) |
|
|
Item |
Explicit (BRep) representations of 3D faceted solids and surfaces |
43.9% (876) |
|
SFA: PolyhedralSurface |
Item |
Explicit (BRep) representations of 3D curved solids and surfaces |
6.5% (112) |
Advanced BRep: with (e.g) NURBS faces (IfcAdvancedFace) |
|
Item |
Explicit mesh/polyhedron representations (called tessellation) |
12.6% (163) |
|
SFA: PolyhedralSurface gml:TriangulatedSurface |
Item |
TIN / surface models |
2% (1) |
|
gml:Tin |
Item |
Swept / procedural solids: extrusion, revolution, sweeps along curve (disk, arbitrary, fixed reference), sectioned solids and surfaces |
75.5% (703) |
3D solids defined by sweeping profiles along vectors or curves: straight/linear extrusions, revolutions, sweeps along curves (swept disk, arbitrary orientation, fixed reference), tapered forms, sectioned solids/surfaces. Note that this is a fairly large category with many items and combinatorial possibilities lumped into one. |
|
Item |
Axis geometry |
47.6% (321) |
Bounded curve geometries as (often) a secondary representation describing the longitudinal direction of a solid or element. Material layer sets are defined relative to this axis. |
|
Item |
Boolean operations (CSG trees) |
30.6% (122) |
Solids defined as binary trees combining operands via union, intersection, difference; often nested and require recursive traversal. |
SFA: ST_Union, ST_Intersection, ST_Difference |
Item |
CSG primitives |
1.7% (8) |
|
|
Item |
Surface-only geometry for connection / space boundaries and advanced face surfaces (extrusion, revolution, bounded, NURBS) |
31.8% (1521) |
Surfaces used without explicit solid closure, e.g. for space boundaries or analytical/architectural surfaces. |
gml:Surface |
Item |
Styling by item as a whole (IfcStyledItem, IfcSurfaceStyle, IfcCurveStyle) |
68.3% (1458) |
Assignment of colors, line styles to geometric items or tessellated faces as a whole |
|
Item |
Granular styling by sub-item (IfcSurfaceStyle, IfcIndexedColourMap) |
- |
E.g the application of a different color to a face within a shell, or per-face colors in tesselations using IfcIndexedColourMap, or retaining distinct surface styles after applying boolean operations |
|
Item |
Styling by item: Textures |
0.8% (2) |
|
|
Item |
Mapped items / reusable definitions |
46.3 1247 |
|
|
Item |
(Non-)uniform scaling and mirroring |
- |
|
|
Item |
Composite representations (IfcGeometricSet, IfcCompositeProfileDef, multiple shape representation items) |
51.4% (231) |
Sets of curves, surfaces, and points combined into a single representation; multi-rep shape representations for one object. |
gml:MultiCurve, gml:MultiSurface, gml:CompositeCurve, gml:CompositeSurface |
Item |
Topological representations for analytical structures |
0.3% (760) |
|
|
Item |
Point clouds and coverages |
0.2% (1) |
|
|
Context |
Representation context (IfcGeometricRepresentationContext): identifier, target scale, clearance geometries, subcontexts |
- |
Defines modeling context: dimensionality, precision, world coordinate system, true north, representation identifiers; may host clearance contexts. |
|
Context |
Tolerance and precision settings |
- |
|
|
Georeferencing |
Local engineering CRS (IfcGeometricRepresentationContext.WorldCoordinateSystem, true north) |
- |
Defines the local engineering coordinate system |
|
Georeferencing |
Map/projection-based georeferencing incl. vertical reference |
12.4% (2) |
|
ISO 19111 referencing by coordinates and transformations; SFA: SRID on geometries. |
Georeferencing |
Postal address |
38.6% (3) |
|
|
Georeferencing |
IfcSite reference coordinates |
- |
|
Methodology for testing prevalence.
Testing the prevalence of entities in existing sample models is often criticized because it is hard to find a body of representative IFC models (every tool and vendor cater to their own niche) and prevalence does not equate value. Lastly, per definition, an approach like this is backwards looking and not forward looking. At the same time, the investigation into 3D GeoSPARQL is explicitly use-case driven.
A random sample of 1_000 files (dataset 1) is taken from a collection of models for which it is allowed to publish in aggregate form. For novel concepts such as (IfcLinearPlacement, IfcRelInterferes, IfcAlignmentSegment, …) a 500 file sample of IFC4.3 files is selected (dataset 2; because the amount of models for older schema versions is larger). It is possible that there are invalid or partial files in this sample, there is no verdict on quality, correctness or applicability of these files. Example files from the specification can have a distorting impact on the sample, also there is no filtering for (near-) duplicates. Some values such as IfcSite.RefLatitude -Longitude are well known to contain placeholder values on older exports such as based on the headquarters of the software vendor.
For performance reasons we don’t use an IFC parser for testing the prevalence of entities. Therefore, in theory it is possible that we match fragments of comments or human readable text in the model, but this is given the patterns highly unlikely. We use ripgrep rg to query the model as text files on disk. Due to the text-based parsing we cannot fully asses the context in which entities are used - in particular entities like IfcRelAggregates are discussed here in an building-element context, but are also found in the spatial structure and therefore the prevalence is reported higher.
| Query string | Dataset index | % of models | avg nr instances when used |
|---|---|---|---|
IFCRELAGGREGATES |
1 |
96.9 |
29 |
IFCCARTESIANPOINT |
1 |
99.2 |
34194 |
PROFILEDEF |
1 |
76.9 |
763 |
IFCANNOTATIONFILLAREA|IFCANNOTATIONSURFACE|IFCDRAUGHTINGCALLOUT|IFCFILLAREASTYLEHATCHING|IFCTEXTLITERAL |
1 |
11.6 |
101 |
IFCFACETEDBREP |
1 |
43.9 |
876 |
IFCADVANCEDBREP |
1 |
6.5 |
112 |
IFCTESSELLATEDFACESET|IFCTRIANGULATEDFACESET|IFCPOLYGONALFACESET |
1 |
12.6 |
163 |
IFCTRIANGULATEDIRREGULARNETWORK |
2 |
2 |
1 |
IFCEXTRUDEDAREASOLID|IFCREVOLVEDAREASOLID|IFCFIXEDREFERENCESWEPTAREASOLID|IFCSURFACECURVESWEPTAREASOLID|IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID |
1 |
75.5 |
703 |
IFCSHAPEREPRESENTATION.*'Axis |
1 |
47.6 |
321 |
IFCBOOLEANRESULT|IFCBOOLEANCLIPPINGRESULT |
1 |
30.6 |
122 |
IFCBLOCK|IFCRECTANGULARPYRAMID|IFCRIGHTCIRCULARCONE|IFCRIGHTCIRCULARCYLINDER|IFCSPHERE |
1 |
1.7 |
8 |
IFCCURVEBOUNDEDPLANE|IFCCURVEBOUNDEDSURFACE|IFCBSPLINESURFACE|IFCCYLINDRICALSURFACE|IFCPLANE\(|IFCSPHERICALSURFACE|IFCTOROIDALSURFACE|IFCSURFACEOFLINEAREXTRUSION|IFCSURFACEOFREVOLUTION |
1 |
31.8 |
1521 |
IFCSTYLEDITEM|IFCSURFACESTYLE|IFCCURVESTYLE |
1 |
68.3 |
1458 |
- |
|||
IFCBLOBTEXTURE|IFCIMAGETEXTURE|IFCPIXELTEXTURE |
1 |
0.8 |
2 |
IFCMAPPEDITEM |
1 |
46.3 |
1247 |
- |
|||
IFCGEOMETRICSET|IFCCOMPOSITEPROFILEDEF|IFCGEOMETRICCURVESET|IFCSHAPEREPRESENTATION\(.\(., |
1 |
51.4 |
231 |
IFCTOPOLOGYREPRESENTATION |
1 |
0.3 |
760 |
IFCSHAPEREPRESENTATION.*'Point |
1 |
0.2 |
1 |
- |
|||
- |
|||
- |
|||
IFCPROJECTEDCRS|IFCGEOGRAPHICCRS|IFCMAPCONVERSION|IFCRIGIDOPERATION |
2 |
12.4 |
2 |
IFCPOSTALADDRESS|Pset_Address |
1 |
38.6 |
3 |
- |