IFC (IFC4X3) development IfcGeometricRepresentationSubContext Semantic definition

IfcGeometricRepresentationSubContext defines the context that applies to several shape representations of a product being a sub context, sharing the WorldCoordinateSystem, CoordinateSpaceDimension, Precision and TrueNorth attributes with the parent IfcGeometricRepresentationContext.

The IfcGeometricRepresentationSubContext is used to define semantically distinguished representation types for different information content, dependent on the representation view and the target scale. It can be used to control the level of detail of the shape representation that is most applicable to this geometric representation context. In addition the sub context is used to control the later appearance of the IfcShapeRepresentation within a plot view.

Each IfcProduct can then have several instances of subtypes of IfcRepresentation, each being assigned to a different IfcGeometricRepresentationSubContext). The applicable values for the inherited ContextIdentifier attribute shall be identical to the RepresentationIdentifier attribute defined at IfcShapeRepresentation. Entity inheritance Attributes

# Attribute Type Description
IfcRepresentationContext (3)
1 ContextIdentifier OPTIONAL IfcLabel

The optional identifier of the representation context as used within a project.

2 ContextType OPTIONAL IfcLabel

The description of the type of a representation context. The supported values for context type are to be specified by implementers agreements.

RepresentationsInContext SET [0:?] OF IfcRepresentation FOR ContextOfItems

All shape representations that are defined in the same representation context.

IfcGeometricRepresentationContext (6)
3 CoordinateSpaceDimension IfcDimensionCount

The integer dimension count of the coordinate space modeled in a geometric representation context.

4 Precision OPTIONAL IfcReal

Value of the model precision for geometric models. It is a double value (REAL), typically in 1E-5 to 1E-8 range, that indicates the tolerance under which two given points are still assumed to be identical. The value can be used e.g. to sets the maximum distance from an edge curve to the underlying face surface in brep models.

5 WorldCoordinateSystem IfcAxis2Placement

Establishment of the engineering coordinate system (often referred to as the world coordinate system in CAD) for all representation contexts used by the project.

If an geographic placement is provided using IfcMapConversion then the WorldCoordinateSystem atttibute is used to define the offset between the zero point of the local engineering coordinate system and the geographic reference point to which the IfcMapConversion offset relates. In preferred practise both points (also called "project base point" and "survey point") should be coincidental. However it is possible to offset the geographic reference point from the local zero point.

6 TrueNorth OPTIONAL IfcDirection

Direction of the true north, or geographic northing direction, relative to the underlying project coordinate system. It is given by a 2 dimensional direction within the xy-plane of the project coordinate system. If not present, it defaults to 0. 1., meaning that the positive Y axis of the project coordinate system equals the geographic northing direction.

HasSubContexts SET [0:?] OF IfcGeometricRepresentationSubContext FOR ParentContext

The set of IfcGeometricRepresentationSubContexts that refer to this IfcGeometricRepresentationContext.

HasCoordinateOperation SET [0:1] OF IfcCoordinateOperation FOR SourceCRS

Indicates conversion between coordinate systems. In particular it refers to an IfcCoordinateOperation between a Geographic map coordinate reference system, and the engineering coordinate system of this construction project. If there is more then one IfcGeometricRepresentationContext provided to the IfcProject then all contexts shall have an identical instance of IfcCoordinateOperation as HasCoordinateOperation referring to the same instance of IfcCoordinateReferenceSystem.

Click to show 9 hidden inherited attributes Click to hide 9 inherited attributes
IfcGeometricRepresentationSubContext (8)
7 ParentContext IfcGeometricRepresentationContext

Parent context from which the sub context derives its world coordinate system, precision, space coordinate dimension and true north.

8 TargetScale OPTIONAL IfcPositiveRatioMeasure

The target plot scale of the representation to which this representation context applies.

9 TargetView IfcGeometricProjectionEnum

Target view of the representation to which this representation context applies.

10 UserDefinedTargetView OPTIONAL IfcLabel

User defined target view, this attribute value shall be given, if the TargetView attribute is set to USERDEFINED.

5* WorldCoordinateSystem IfcAxis2Placement

This attribute is formally derived.

3* CoordinateSpaceDimension IfcDimensionCount

This attribute is formally derived.

6* TrueNorth IfcDirection

This attribute is formally derived.

NVL(ParentContext.TrueNorth, IfcConvertDirectionInto2D(SELF\IfcGeometricRepresentationContext.WorldCoordinateSystem.P[2]))
4* Precision IfcReal

This attribute is formally derived.

Table Formal propositions

Name Description

An IfcCoordinateOperation shall not be provided to a geometric representation sub context, only to the parent geometric representation context.

SIZEOF(SELF\IfcGeometricRepresentationContext.HasCoordinateOperation) = 0

The parent context shall not be another geometric representation sub context.


The attribute UserDefinedTargetView shall be given, if the attribute TargetView is set to USERDEFINED.

 (TargetView <> IfcGeometricProjectionEnum.USERDEFINED) OR 
((TargetView =  IfcGeometricProjectionEnum.USERDEFINED) AND EXISTS(UserDefinedTargetView)) 
Table Formal representation

ENTITY IfcGeometricRepresentationSubContext
 SUBTYPE OF (IfcGeometricRepresentationContext);
	ParentContext : IfcGeometricRepresentationContext;
	TargetScale : OPTIONAL IfcPositiveRatioMeasure;
	TargetView : IfcGeometricProjectionEnum;
	UserDefinedTargetView : OPTIONAL IfcLabel;
	 SELF\IfcGeometricRepresentationContext.WorldCoordinateSystem : IfcAxis2Placement := ParentContext.WorldCoordinateSystem;
	 SELF\IfcGeometricRepresentationContext.CoordinateSpaceDimension : IfcDimensionCount := ParentContext.CoordinateSpaceDimension;
	 SELF\IfcGeometricRepresentationContext.TrueNorth : IfcDirection := NVL(ParentContext.TrueNorth, IfcConvertDirectionInto2D(SELF\IfcGeometricRepresentationContext.WorldCoordinateSystem.P[2]));
	 SELF\IfcGeometricRepresentationContext.Precision : IfcReal := NVL(ParentContext.Precision,1.E-5);
	NoCoordOperation : SIZEOF(SELF\IfcGeometricRepresentationContext.HasCoordinateOperation) = 0;
	UserTargetProvided :  (TargetView <> IfcGeometricProjectionEnum.USERDEFINED) OR 
((TargetView =  IfcGeometricProjectionEnum.USERDEFINED) AND EXISTS(UserDefinedTargetView)) ;
END_ENTITY; References

Edit on Github

Is this page difficult to understand? Let us know! Changelog

  • where rule, NoCoordOperation
  • where rule, ParentNoSub
  • where rule, UserTargetProvided
  • where rule, WR31
  • where rule, WR32