IFC 4.3.x development

8.18.3.14 IfcShapeRepresentation

Change log

IFC4

additionswhere_rulesCorrectContext
additionswhere_rulesCorrectItemsForType
additionswhere_rulesHasRepresentationIdentifier
additionswhere_rulesHasRepresentationType
additionswhere_rulesNoTopologicalItem
deletionswhere_rulesWR21
deletionswhere_rulesWR22
deletionswhere_rulesWR23
deletionswhere_rulesWR24

IFC4X1

modificationswhere_rules CorrectContext definition Changed from 'ifc4.ifcgeometricrepresentationcontext' in typeof(self\IfcRepresentation.ContextOfItems) to 'ifc4x1.ifcgeometricrepresentationcontext' in typeof(self\IfcRepresentation.ContextOfItems)
modificationswhere_rules NoTopologicalItem definitionChanged from sizeof(query(temp <* Items | ('ifc4.ifctopologicalrepresentationitem' in typeof(temp)) and (not(sizeof(['ifc4.ifcvertexpoint','ifc4.ifcedgecurve','ifc4.ifcfacesurface']*typeof(temp)) = 1)))) = 0 to sizeof(query(temp <* Items | ('ifc4x1.ifctopologicalrepresentationitem' in typeof(temp)) and (not(sizeof(['ifc4x1.ifcvertexpoint','ifc4x1.ifcedgecurve','ifc4x1.ifcfacesurface']*typeof(temp)) = 1)))) = 0

IFC4X2

modificationswhere_rules CorrectContext definition Changed from 'ifc4x1.ifcgeometricrepresentationcontext' in typeof(self\IfcRepresentation.ContextOfItems) to 'ifc4x2.ifcgeometricrepresentationcontext' in typeof(self\IfcRepresentation.ContextOfItems)
modificationswhere_rules NoTopologicalItem definitionChanged from sizeof(query(temp <* Items | ('ifc4x1.ifctopologicalrepresentationitem' in typeof(temp)) and (not(sizeof(['ifc4x1.ifcvertexpoint','ifc4x1.ifcedgecurve','ifc4x1.ifcfacesurface']*typeof(temp)) = 1)))) = 0 to sizeof(query(temp <* Items | ('ifc4x2.ifctopologicalrepresentationitem' in typeof(temp)) and (not(sizeof(['ifc4x2.ifcvertexpoint','ifc4x2.ifcedgecurve','ifc4x2.ifcfacesurface']*typeof(temp)) = 1)))) = 0

IFC4X3_RC3

modificationswhere_rules CorrectContext definition Changed from 'ifc4x2.ifcgeometricrepresentationcontext' in typeof(self\IfcRepresentation.ContextOfItems) to 'ifc4x3_rc3.ifcgeometricrepresentationcontext' in typeof(self\IfcRepresentation.ContextOfItems)
modificationswhere_rules NoTopologicalItem definitionChanged from sizeof(query(temp <* Items | ('ifc4x2.ifctopologicalrepresentationitem' in typeof(temp)) and (not(sizeof(['ifc4x2.ifcvertexpoint','ifc4x2.ifcedgecurve','ifc4x2.ifcfacesurface']*typeof(temp)) = 1)))) = 0 to sizeof(query(temp <* Items | ('ifc4x3_rc3.ifctopologicalrepresentationitem' in typeof(temp)) and (not(sizeof(['ifc4x3_rc3.ifcvertexpoint','ifc4x3_rc3.ifcedgecurve','ifc4x3_rc3.ifcfacesurface']*typeof(temp)) = 1)))) = 0

8.18.3.14.1 Semantic definitions at the entity

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 1 indicates the defined list of values for RepresentationIdentifier.

Identifier  
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 3D annotations not representing elements
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, e.g. of an analytical surface, of an elementplane)
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

Table 1 — Representation identifiers

Several representation types for shape representation are included as predefined values for RepresentationType. Table 2 indicates the defined list of values for RepresentationType.

Type  
Point 2 or 3 dimensional point(s)
PointCloud 3 dimensional points prepresented by a point list
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)
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
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

additional types

some additional representation types are provided:
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.

Table 2 — Representation types

NOTE  The definition relates to shape_representation defined in ISO 10303-41.

HISTORY  New entity in IFC1.5.

IFC4 CHANGE  The RepresentationType's 'Point', 'PointCloud', 'Curve', 'Curve3D', 'Surface', 'Surface2D', 'Surface3D', 'FillArea', 'Text', 'Tessellation', 'AdvancedBrep', 'LightSource', and the RepresentationIdentifier 'Body-FallBack', 'Profile', 'Clearance', 'Lighting' have been added.

Formal Propositions

CorrectContext

The context to which the IfcShapeRepresentation is assign, shall be of type IfcGeometricRepresentationContext.

NoTopologicalItem

No topological representation item shall be directly used for shape representations, with the exception of IfcVertexPoint, IfcEdgeCurve, IfcFaceSurface.

HasRepresentationType

A representation type should be provided for the shape representation.

HasRepresentationIdentifier

A representation identifier should be provided for the shape representation.

CorrectItemsForType

Checks the proper use of Items according to the RepresentationType.

# Attribute Type Description
IfcRepresentation
1 ContextOfItems IfcRepresentationContext Definition of the representation context for which the different subtypes of representation are valid.
2 RepresentationIdentifierOPTIONAL 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.

> IFC2x3 CHANGE  The inverse attribute LayerAssignments has been added
LayerAssignments SET [0:?] OF IfcPresentationLayerAssignment FOR AssignedItemsAssignment 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.

> NOTE  Implementation agreements can restrict the maximum number of layer assignments to 1.

> IFC2x3 CHANGE  The inverse attribute LayerAssignments has been added
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.

> IFC4 CHANGE Inverse relationship cardinality relaxed to be 0:N.
IfcShapeModel
OfShapeAspect SET [0:1] OF IfcShapeAspect FOR ShapeRepresentations Reference to the shape aspect, for which it is the shape representation.

8.18.3.14.1 Entity inheritance

dot_inheritance IfcShapeRepresentation IfcShapeRepresentation IfcShapeModel IfcShapeModel IfcShapeRepresentation->IfcShapeModel IfcTopologyRepresentation IfcTopologyRepresentation IfcTopologyRepresentation->IfcShapeModel IfcRepresentation IfcRepresentation IfcShapeModel->IfcRepresentation IfcStyleModel IfcStyleModel IfcStyleModel->IfcRepresentation

8.18.3.14.2 Formal representations

ENTITY IfcShapeRepresentation
 SUBTYPE OF (IfcShapeModel);
 WHERE
	CorrectContext : 'IFC4X3_DEV_a1492713.IFCGEOMETRICREPRESENTATIONCONTEXT' 
IN TYPEOF(SELF\IfcRepresentation.ContextOfItems);
	NoTopologicalItem : SIZEOF(QUERY(temp <* Items | 
  ('IFC4X3_DEV_a1492713.IFCTOPOLOGICALREPRESENTATIONITEM' IN TYPEOF(temp))
    AND (NOT(SIZEOF(
      ['IFC4X3_DEV_a1492713.IFCVERTEXPOINT',
       'IFC4X3_DEV_a1492713.IFCEDGECURVE',
       'IFC4X3_DEV_a1492713.IFCFACESURFACE'] * TYPEOF(temp)) = 1))
)) = 0;
	HasRepresentationType : EXISTS(SELF\IfcRepresentation.RepresentationType);
	HasRepresentationIdentifier : EXISTS(SELF\IfcRepresentation.RepresentationIdentifier);
	CorrectItemsForType : IfcShapeRepresentationTypes(SELF\IfcRepresentation.RepresentationType, SELF\IfcRepresentation.Items);
END_ENTITY;