Class Ifc4::IfcGeometricRepresentationContext

Nested Relationships

This class is a nested type of Struct Ifc4.

Inheritance Relationships

Base Type

Derived Type

Class Documentation

class Ifc4::IfcGeometricRepresentationContext : public Ifc4::IfcRepresentationContext

Definition from ISO/CD 10303-42:1992: A geometric representation context is a representation context in which the geometric representation items are geometrically founded. A geometric representation context is a distinct coordinate space, spatially unrelated to other coordinate spaces.

IfcGeometricRepresentationContext defines the context that applies to several shape representations of products within a project. It defines the type of the context in which the shape representation is defined, and the numeric precision applicable to the geometric representation items defined in this context. In addition it can be used to offset the project coordinate system from a global point of origin, using the WorldCoordinateSystem attribute.

As shown in Figure 329, the TrueNorth attribute should be provided if the y axis of the WorldCoordinateSystem does not point to the global northing. Direction of the true north, or geographic northing direction, relative to the underlying project coordinate system as established by the attribute WorldCoordinateSystem. It is given by a 2 dimensional direction within the xy-plane of the project coordinate system. If not resent, it defaults to [0.,1.] - i.e. the positive Y axis of the project coordinate system equals the geographic northing direction. The direction is provided within project coordinate system and identifies the true north direction (see figure).

Figure 329 — Geometric representation context true north

NOTEThe inherited attribute ContextType shall have one of the following recognized values: ‘Sketch’, ‘Outline’, ‘Design’, ‘Detail’, ‘Model’, ‘Plan’, ‘NotDefined’.

The use of one instance of IfcGeometricRepresentationContext to represent the model (3D) view is mandatory, the use of a second instance of IfcGeometricRepresentationContext to represent the plan (2D) view is optional (but needs to be given, if there are scale dependent plan views), the additional scale or view dependent contexts need to be handled by using the subtype IfcGeometricRepresentationSubContext pointing to the model view (or the plan view) as the ParentContext.

Figure 330 illustrates use of representation contexts defined at IfcProject for 3D model and 2D plan context, including sub context definitions for different target scales.

Figure 330 — Geometric representation context use

NOTE The definition of this class relates to the ISO 10303 entity geometric_representation_context. Please refer to ISO/IS 10303-42:1994 for the final definition of the formal standard.

HISTORYNew Entity in IFC Release 2.0

IFC2x3 CHANGEApplicable values for ContextType are only ‘Model’, ‘Plan’, and’NotDefined’. All other sub contexts are now handled by the new subtype in IFC2x Edition 2 IfcGeometricRepresentationSubContext. Upward compatibility for file based exchange is guaranteed.

Subclassed by Ifc4::IfcGeometricRepresentationSubContext

Public Functions

int CoordinateSpaceDimension() const

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

void setCoordinateSpaceDimension(int v)
bool hasPrecision() const

Whether the optional attribute Precision is defined for this IfcGeometricRepresentationContext.

double Precision() const

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.

void setPrecision(double v)
::Ifc4::IfcAxis2Placement *WorldCoordinateSystem() const

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.).

void setWorldCoordinateSystem(::Ifc4::IfcAxis2Placement *v)
bool hasTrueNorth() const

Whether the optional attribute TrueNorth is defined for this IfcGeometricRepresentationContext.

::Ifc4::IfcDirection *TrueNorth() const

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 resent, it defaults to 0. 1. - i.e. the positive Y axis of the project coordinate system equals the geographic northing direction.

void setTrueNorth(::Ifc4::IfcDirection *v)
IfcTemplatedEntityList<IfcGeometricRepresentationSubContext>::ptr HasSubContexts() const
IfcTemplatedEntityList<IfcCoordinateOperation>::ptr HasCoordinateOperation() const
const IfcParse::entity &declaration() const
IfcGeometricRepresentationContext(IfcEntityInstanceData *e)
IfcGeometricRepresentationContext(boost::optional<std::string> v1_ContextIdentifier, boost::optional<std::string> v2_ContextType, int v3_CoordinateSpaceDimension, boost::optional<double> v4_Precision, ::Ifc4::IfcAxis2Placement *v5_WorldCoordinateSystem, ::Ifc4::IfcDirection *v6_TrueNorth)

Public Static Functions

const IfcParse::entity &Class()