The concept of 'Geometric representation' describes the method for assigning geometric representations to an object. In theory it is possible to attach any number of different geometric representations to an object, where each object creates its own instance of the 'Geometric representation' concept. I practice we have to agree what type of geometric representation is used with each object type - this is done through the Geometry Use Definitions that are defined in the IFC documentation. In addition to these pre defined representation it is possible to define custom geometry use definitions for specific uses.
The following is a list of all specified geometric representations. This is a subset from all the possibilities in the IFC model. Also other representations can be used, but they have to be used in addition to the ones specified here. As a minimum the bounding box geometry has to be provided with any unspecified geometry type.
Geometry type Extrusion Profile Segments Clipped SlantedBoundingBox Extruded solid Linear Rectangular 1 No No Extruded solid Linear Circular 1 No No Extruded solid Linear Arbitrary 1 No No Extruded solid Linear Curved 1 No No Extruded solid Linear Rectangular n No No Extruded solid Linear Circular n No No Extruded solid Linear Arbitrary n No No Extruded solid Linear Curved n No No Extruded solid Linear Rectangular 1 No Yes Extruded solid Linear Circular 1 No Yes Extruded solid Linear Arbitrary 1 No Yes Extruded solid Linear Curved 1 No Yes Extruded solid Linear Rectangular 1 Yes No Extruded solid Linear Circular 1 Yes No Extruded solid Linear Arbitrary 1 Yes No Extruded solid Linear Curved 1 Yes No Extruded solid Linear Rectangular 1 Yes Yes Extruded solid Linear Circular 1 Yes Yes Extruded solid Linear Arbitrary 1 Yes Yes Extruded solid Linear Curved 1 Yes Yes Extruded solid Revolved Rectangular 1 No No Extruded solid Revolved Rectangular 1 Yes No Brep 2D Geometry The IFC model contains several identification values for geometry, but unfortunately they can't really be used to identify the geometry. On one side the IFC specifications define how some of these identifiers should be used, but those specifications are rather in the way of using the identifiers than helping to use them. On the other hand the R1.5.1 implementations are made such, that using intelligent identifiers is not possible if we want to maintain compatibility with R1.5.1. These are the IAI defined identifiers that should be used for R1.5.1 compatibility
- BoundingBox
- IfcShapeRepresentation.ContextIdentifier = "IAI"
- IfcShapeRepresentation.ContextType = "BoundingBox"
- Extruded solid
- In most cases (please see IAI documentation for details)
- IfcShapeRepresentation.ContextIdentifier = "IAI"
- IfcShapeRepresentation.ContextType = "Advanced"
- In a few cases
- IfcShapeRepresentation.ContextIdentifier = "IAI"
- IfcShapeRepresentation.ContextType = "Standard"
- Brep
- IfcShapeRepresentation.ContextIdentifier = "IAI"
- IfcShapeRepresentation.ContextType = "Brep"
Identifying the geometry we find in an IFC file is important, because the geometry needs to be mapped to a internal representation in the programs. Different types of geometry require a different mapping and the geometry has to be identified in order to use the right mapping in each case. The following is a list of identification values and methods that can be used:
- BoundingBox
- IfcShapeRepresentation.Items contains one item of type IfcBoundingBox
- Extruded solid
- IfcShapeRepresentation.Items contains one item of type
- IfcAttDrivenExtrudedSolid
- IfcAttDrivenClippedExtrudedSolid
- IfcAttDrivenRevolvedSolid
- IfcAttDrivenClippedRevolvedSolid
- Extrusion
- The extrusion is linear if the item in IfcShapeRepresentation.Items is of type
- IfcAttDrivenExtrudedSolid
- IfcAttDrivenClippedExtrudedSolid
- The extrusion is revolved if the item in IfcShapeRepresentation.Items is of type
- IfcAttDrivenRevolvedSolid
- IfcAttDrivenClippedRevolvedSolid
- Profile
- The profile is rectangular if the IfcAttDrivenExtrudedSegment.ProfileDef is of type IfcRectangleProfileDef
- The profile is circular if the IfcAttDrivenExtrudedSegment.ProfileDef is of type IfcCircleProfileDef
- The profile is arbitrary if the IfcAttDrivenExtrudedSegment.ProfileDef is of type IfcArbitraryProfileDef and the IfcArbitraryProfileDef.CurveForSurface is of type IfcPolyline
- The profile is curved if the IfcAttDrivenExtrudedSegment.ProfileDef is of type IfcArbitraryProfileDef and the IfcArbitraryProfileDef.CurveForSurface is of type IfcCompositeCurve
- Segments
- The number of segments is the number of items in
- IfcAttDrivenExtrudedSolid.Segments
- IfcAttDrivenClippedExtrudedSolid.Segments
- IfcAttDrivenRevolvedSolid.Segments
- IfcAttDrivenClippedRevolvedSolid.Segments
- Clipped
- The solid is not clipped if the item in IfcShapeRepresentation.Items is of type
- IfcAttDrivenExtrudedSolid
- IfcAttDrivenRevolvedSolid
- The solid is clipped if the item in IfcShapeRepresentation.Items is of type
- IfcAttDrivenClippedExtrudedSolid
- IfcAttDrivenClippedRevolvedSolid
- Slanted
- There is no single value that can be used to determine if a solid is slanted or not. To be most exact the direction of the Z-axis of the extruded segment should be compared with the direction of the global Z-axis, or with the directions of the 'parent' element depending on the context. The 'light weight' solution is to examine the coordinate transformations of the extruded segment. If the transformations of the Z-axis (IfcAxis2Placement3D.Axis) only contain the values 1, -1 and 0, then the solid is most probably not slanted.
- Brep
- IfcShapeRepresentation.Items contains any number of items of type IfcFacetedBrep
- 2D Geometry
- IfcShapeRepresentation.ContextIdentifier = "BLIS"
- IfcShapeRepresentation.ContextType = "2D_Geometry"
- IfcShapeRepresentation.Items can contain any number of items of type
- IfcPolyline
- IfcCompositeCurve
- IfcCircle
- IfcEllipse
View considerations
- Arch. design >> Quantities take off / cost estimating
- Dimensions and quantities can be extracted from the geometry without actually displaying or even understanding the geometry. The attribute driven geometry maps certain geometry elements to a semantic meaning, e.g. the extrusion depth = wall length.
- Geometry gives the possibility to show the location of quantities (e.g. a wall) to the user to make it easier to understand the building model
- Arch. design >> Thermal load calculations / HVAC system design
- Geometry is the most valuable input to HVAC simulation / design software the IFC model has to offer. Well, actually geometry plus the relationships between different objects that have geometry, e.g. walls and openings.
Used by views
- This concept is used by all views.
IfcProductDefinitionShape
GlobalId
OwnerHistory
Owner history [all]
ShapeRepresentations
IfcShapeRepresentation
ContextOfItems
IfcGeometricRepresentationContext
GlobalId
ContextIdentifier
ContextType
CoordinateSpaceDimension
RepresentationIdentifier
RepresentationType
Items
2D geometry [1,5]
Bounding box geometry [all]
Brep geometry [3,5]
Extruded solid: arbitrary [all]
Extruded solid: arbitrary, clipped [3,5]
Extruded solid: arbitrary, clipped, slanted [3,5]
Extruded solid: arbitrary, multiple segments [3,5]
Extruded solid: arbitrary, slanted [3,5]
Extruded solid: circular [1,3,5]
Extruded solid: circular, clipped [3,5]
Extruded solid: circular, clipped, slanted [3,5]
Extruded solid: circular, multiple segments [3,5]
Extruded solid: circular, slanted [3,5]
Extruded solid: curved [1,2,3,5]
Extruded solid: curved, clipped [3,5]
Extruded solid: curved, clipped, slanted [3,5]
Extruded solid: curved, multiple segments [3,5]
Extruded solid: curved, slanted [3,5]
Extruded solid: rectangular [1,3,5]
Extruded solid: rectangular, clipped [3,5]
Extruded solid: rectangular, clipped, slanted [3,5]
Extruded solid: rectangular, multiple segments [3,5]
Extruded solid: rectangular, slanted [3,5]
Revolved solid: rectangular [1,3,5]
Revolved solid: rectangular, clipped [3,5]
2D boundary: arbitrary [1,3,5]
Uses concepts
Owner history [all]
Used by concepts
Beam
Cabinet
Column
Counter or shelf
Electrical appliance
Electrical fixture
Floor slab
Flow controller
Flow equipment
Flow fitting
Flow segment
Flow terminal
Furniture
Opening element
Plumbing fixture
Proxy [product with geometry]
Roof slab
Simple door
Simple window
Space
Space boundary
Stair
Wall
Copyright © 2000-2002 BLIS-Project [BLIS, Registered Organization]
Author: Jiri Hietanen (jiri.hietanen@qpartner.com)
All rights reserved.