8.18.3.17 IfcShapeRepresentation
8.18.3.17.1 Semantic definition
The IfcShapeRepresentation represents the concept of a particular geometric representation of a product or a product component within a specific geometric representation context. The inherited attribute RepresentationType is used to define the geometric model used for the shape representation (e.g. 'SweptSolid', or 'Brep'), the inherited attribute RepresentationIdentifier is used to denote the kind of the representation captured by the IfcShapeRepresentation (e.g. 'Axis', 'Body', etc.).
Several representation identifiers for shape representation are included as predefined values for RepresentationIdentifier. Table 8.18.3.17.A indicates the defined list of values for RepresentationIdentifier.
Identifier | Description |
---|---|
CoG | Point to identify the center of gravity of an element. This value can be used for validation purposes. |
Box | Bounding box as simplified 3D box geometry of an element |
Annotation | 2D or 3D annotations |
Axis | 2D or 3D Axis, or single line, representation of an element |
FootPrint | 2D Foot print, or double line, representation of an element, projected to ground view |
Profile | 3D line representation of a profile being planar, e.g. used for door and window outlines |
Surface | 3D Surface representation (an analytical surface of an element plane) |
Reference | 3D representation that is not part of the Body representation. This is used, e.g., for opening geometries, if there are to be excluded from an implicit Boolean operation. |
Body | 3D Body representation, e.g. as wireframe, surface, or solid model, of an element |
Body-FallBack | 3D Body representation, e.g. as tessellation, or other surface, or boundary representation, added in addition to the solid model (potentially involving Boolean operations) of an element |
Clearance | 3D clearance volume of the element. Such clearance region indicates space that should not intersect with the 'Body' representation of other elements, though may intersect with the 'Clearance' representation of other elements. |
Lighting | Representation of emitting light as a light source within a shape representation |
Several representation types for shape representation are included as predefined values for RepresentationType. Table 8.18.3.17.B indicates the defined list of values for RepresentationType.
Type | Description |
---|---|
Point | 2 or 3 dimensional point(s). Points can be represented by a point list |
PointCloud | 3 dimensional points represented by a point list. DEPRECATED. Use 'Point' instead. |
Curve | 2 or 3 dimensional curve(s) |
Curve2D | 2 dimensional curve(s) |
Curve3D | 3 dimensional curve(s) |
Surface | 2 or 3 dimensional surface(s) |
Surface2D | 2 dimensional surface(s) (a region on ground view) |
Surface3D | 3 dimensional surface(s) |
SectionedSurface | swept surface(s) created by sweeping open profiles along a directrix |
FillArea | 2D region(s) represented as a filled area (hatching) |
Text | text defined as text literals |
AdvancedSurface | 3 dimensional b-spline surface(s) |
GeometricSet | points, curves, surfaces (2 or 3 dimensional) |
GeometricCurveSet | points, curves (2 or 3 dimensional) |
Annotation2D | points, curves (2 or 3 dimensional), hatches and text (2 dimensional) |
SurfaceModel | face based and shell based surface model(s), or tessellated surface model(s) |
Tessellation | Tessellated surface representation(s) only |
Segment | partial geometry of curves that shall not be rendered separately from the main curve |
SolidModel | including swept solid, Boolean results and Brep bodies; more specific types are: |
SweptSolid | swept area solids, by extrusion and revolution, excluding tapered sweeps |
AdvancedSweptSolid | swept area solids created by sweeping a profile along a directrix, and tapered sweeps |
Brep | Faceted Brep's with and without voids |
AdvancedBrep | Brep's based on advanced faces, with b-spline surface geometry, with and without voids |
CSG | Boolean results of operations between solid models, half spaces and Boolean results |
Clipping | Boolean differences between swept area solids, half spaces and Boolean results |
BoundingBox | simplistic 3D representation by a bounding box |
SectionedSpine | cross section based representation of a spine curve and planar cross sections. It can represent a surface or a solid and the interpolations of the between the cross sections is not defined |
LightSource | light source with (depending on type) position, orientation, light colour, intensity and attenuation |
MappedRepresentation | representation based on mapped item(s), referring to a representation map. Note: it can be seen as an inserted block reference. The shape representation of the mapped item has a representation type declaring the type of its representation items. |
8.18.3.17.2 Entity inheritance
8.18.3.17.3 Attributes
# | Attribute | Type | Description |
---|---|---|---|
IfcRepresentation (7) | |||
1 | ContextOfItems | IfcRepresentationContext |
Definition of the representation context for which the different subtypes of representation are valid. |
2 | RepresentationIdentifier | OPTIONAL IfcLabel |
The optional identifier of the representation as used within a project. |
3 | RepresentationType | OPTIONAL IfcLabel |
The description of the type of a representation context. The representation type defines the type of geometry or topology used for representing the product representation. More information is given at the subtypes IfcShapeRepresentation and IfcTopologyRepresentation. The supported values for context type are to be specified by implementers agreements. |
4 | Items | SET [1:?] OF IfcRepresentationItem |
Set of geometric representation items that are defined for this representation. |
RepresentationMap | SET [0:1] OF IfcRepresentationMap FOR MappedRepresentation |
Use of the representation within an IfcRepresentationMap. If used, this IfcRepresentation may be assigned to many representations as one of its Items using an IfcMappedItem. Using IfcRepresentationMap is the way to share one representation (often of type IfcShapeRepresentation) by many products. |
|
LayerAssignments | SET [0:?] OF IfcPresentationLayerAssignment FOR AssignedItems |
Assignment of the whole representation to a single or multiple layer(s). The LayerAssigments can be overridden by LayerAssigments of the IfcRepresentationItem's within the list of Items. |
|
OfProductRepresentation | SET [0:?] OF IfcProductRepresentation FOR Representations |
Reference to the product representations to which this individual representation applies. In most cases it is the reference to one or many product shapes, to which this shape representation is applicable. |
|
Click to show 7 hidden inherited attributes Click to hide 7 inherited attributes | |||
IfcShapeModel (1) | |||
OfShapeAspect | SET [0:1] OF IfcShapeAspect FOR ShapeRepresentations |
Reference to the shape aspect, for which it is the shape representation. |
8.18.3.17.4 Formal propositions
Name | Description |
---|---|
CorrectContext |
The context to which the IfcShapeRepresentation is assign, shall be of type IfcGeometricRepresentationContext. |
|
|
CorrectItemsForType |
Checks the proper use of Items according to the RepresentationType. |
|
|
HasRepresentationIdentifier |
A representation identifier should be provided for the shape representation. |
|
|
HasRepresentationType |
A representation type should be provided for the shape representation. |
|
|
NoTopologicalItem |
No topological representation item shall be directly used for shape representations, with the exception of IfcVertexPoint, IfcEdgeCurve, IfcFaceSurface. |
|
8.18.3.17.5 Formal representation
ENTITY IfcShapeRepresentation
SUBTYPE OF (IfcShapeModel);
WHERE
CorrectContext : 'IFC4X3_DEV_7e95fe8.IFCGEOMETRICREPRESENTATIONCONTEXT'
IN TYPEOF(SELF\IfcRepresentation.ContextOfItems);
CorrectItemsForType : IfcShapeRepresentationTypes(SELF\IfcRepresentation.RepresentationType, SELF\IfcRepresentation.Items);
HasRepresentationIdentifier : EXISTS(SELF\IfcRepresentation.RepresentationIdentifier);
HasRepresentationType : EXISTS(SELF\IfcRepresentation.RepresentationType);
NoTopologicalItem : SIZEOF(QUERY(temp <* Items |
('IFC4X3_DEV_7e95fe8.IFCTOPOLOGICALREPRESENTATIONITEM' IN TYPEOF(temp))
AND (NOT(SIZEOF(
['IFC4X3_DEV_7e95fe8.IFCVERTEXPOINT',
'IFC4X3_DEV_7e95fe8.IFCEDGECURVE',
'IFC4X3_DEV_7e95fe8.IFCFACESURFACE'] * TYPEOF(temp)) = 1))
)) = 0;
END_ENTITY;