IFC 4.3.x development

8.18.3.4 IfcGeometricRepresentationSubContext

Change log

IFC4

additionswhere_rulesNoCoordOperation
additionswhere_rulesParentNoSub
additionswhere_rulesUserTargetProvided
deletionswhere_rulesWR31
deletionswhere_rulesWR32

IFC4X1

modificationswhere_rules ParentNoSub definitionChanged from not('ifc4.ifcgeometricrepresentationsubcontext' in typeof(ParentContext)) to not('ifc4x1.ifcgeometricrepresentationsubcontext' in typeof(ParentContext))

IFC4X2

modificationswhere_rules ParentNoSub definitionChanged from not('ifc4x1.ifcgeometricrepresentationsubcontext' in typeof(ParentContext)) to not('ifc4x2.ifcgeometricrepresentationsubcontext' in typeof(ParentContext))

IFC4X3_RC3

modificationswhere_rules ParentNoSub definitionChanged from not('ifc4x2.ifcgeometricrepresentationsubcontext' in typeof(ParentContext)) to not('ifc4x3_rc3.ifcgeometricrepresentationsubcontext' in typeof(ParentContext))

8.18.3.4.1 Semantic definitions at the entity

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.

NOTE  If the IfcShapeRepresentation using this sub context has_IfcStyledItem_'s assigned to the Items, the presentation style information (e.g. IfcCurveStyle, IfcTextStyle) associated with the IfcStyledItem is given in target plot dimensions. For example, a line thickness (IfcCurveStyle.CurveWidth) is given by a thickness measure relating to the thickness for a plot within the (range of) target scale.

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 attrubute defined at IfcShapeRepresentation.

NOTE  The provision of a model view (IfcGeometricRepresentationContext.ContextType = 'Model') is mandatory. Instances of IfcGeometricRepresentationSubContext relate to it as its ParentContext.

EXAMPLE  Instances of IfcGeometricRepresentationSubContext can be used to handle the multi-view blocks or macros, which are used in CAD programs to store several scale and/or view dependent geometric representations of the same object. The application can then choose the most appropriate representation for showing the geometric shape of the product, depending on the target view and scale.

HISTORY  New entity in IFC2x2.

8.18.3.4.1 Attributes

# Attribute Type Description
IfcRepresentationContext
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.
RepresentationsInContextSET [0:?] OF IfcRepresentation FOR ContextOfItems All shape representations that are defined in the same representation context.
IfcGeometricRepresentationContext
3 CoordinateSpaceDimensionIfcDimensionCount 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.

> NOTE  It can be used to provide better numeric stability if the placement of the building(s) is far away from the origin. In most cases however it would be set to origin: (0.,0.,0.) and directions x(1.,0.,0.), y(0.,1.,0.), z(0.,0.,1.).

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.

> NOTE  If a geographic placement is provided using IfcMapConversion then the true north is for information only. In case of inconsistency, the value provided with IfcMapConversion shall take precedence.
HasSubContexts SET [0:?] OF IfcGeometricRepresentationSubContext FOR ParentContextThe 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 refering to the same instance of IfcCoordinateReferenceSystem.
IfcGeometricRepresentationSubContext
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.

> NOTE  Scale indicates the target plot scale for the representation sub context, all annotation styles are given in plot dimensions according to this target plot scale.

> If multiple instances of IfcGeometricRepresentationSubContext are given having the same TargetView value, the target plot scale applies up to the next smaller scale, or up to unlimited small scale.

> NOTE  Scale 1:100 (given as 0.01 within TargetScale) is bigger then 1:200 (given as 0.005 within TargetScale).
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 INVALID
3 CoordinateSpaceDimensionINVALID
6 TrueNorth INVALID
4 Precision INVALID

8.18.3.4.2 Entity inheritance

dot_inheritance IfcGeometricRepresentationSubContext IfcGeometricRepresentationSubContext IfcGeometricRepresentationContext IfcGeometricRepresentationContext IfcGeometricRepresentationSubContext->IfcGeometricRepresentationContext IfcRepresentationContext IfcRepresentationContext IfcGeometricRepresentationContext->IfcRepresentationContext

8.18.3.4.3 Formal representations

ENTITY IfcGeometricRepresentationSubContext
 SUBTYPE OF (IfcGeometricRepresentationContext);
	ParentContext : IfcGeometricRepresentationContext;
	TargetScale : OPTIONAL IfcPositiveRatioMeasure;
	TargetView : IfcGeometricProjectionEnum;
	UserDefinedTargetView : OPTIONAL IfcLabel;
 DERIVE
	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);
 WHERE
	ParentNoSub : NOT('IFC4X3_DEV.IFCGEOMETRICREPRESENTATIONSUBCONTEXT' IN TYPEOF(ParentContext));
	UserTargetProvided :  (TargetView <> IfcGeometricProjectionEnum.USERDEFINED) OR 
((TargetView =  IfcGeometricProjectionEnum.USERDEFINED) AND EXISTS(UserDefinedTargetView)) ;
	NoCoordOperation : SIZEOF(SELF\IfcGeometricRepresentationContext.HasCoordinateOperation) = 0;
END_ENTITY;