Class Ifc4x1::IfcVirtualElement

Nested Relationships

This class is a nested type of Struct Ifc4x1.

Inheritance Relationships

Base Type

Class Documentation

class Ifc4x1::IfcVirtualElement : public Ifc4x1::IfcElement

A virtual element is a special element used to provide imaginary boundaries, such as between two adjacent, but not separated, spaces. Virtual elements are usually not displayed and does not have quantities and other measures. Therefore IfcVirtualElement does not have material information and quantities attached.

NOTE The main purpose of IfcVirtualElement is the provision of a virtual space boundary. The IfcVirtualElement may provide the 2D curve or 3D surface representation of the virtual space connection and is referenced by two instances of IfcRelSpaceBoundary, each pointing to one of the two adjacent IfcSpaces.

HISTORY New entity in IFC Release 2x2 Addendum. IFC2x2 CHANGE: The entity IfcVirtualElement has been added. Upward compatibility for file based exchange is guaranteed.

Space Boundary Use Definition The IfcVirtualElement is mainly used to define a virtual boundary between two spaces. Figure 63 describes how to use IfcRelSpaceBoundary in conjunction with IfcVirtualElement to define space boundaries.

Figure 63 — Virtual element space boundaries

Geometry Use Definition The geometric representation of any IfcVirtualElement is given by the IfcProductDefinitionShape and IfcLocalPlacement allowing multiple geometric representations. Included are: Local Placement The local placement for IfcVirtualElement is defined in its supertype IfcProduct. It is defined by the IfcLocalPlacement, which defines the local coordinate system that is referenced by all geometric representations.

The PlacementRelTo relationship of IfcLocalPlacement shall point (if given) to the local placement of the same IfcSpatialStructureElement that is used in the ContainedInStructure inverse attribute or to a referenced spatial structure element at a higher level. If the relative placement is not used, the absolute placement is defined within the world coordinate system.

Geometric Representation Currently, the use of ‘FootPrint’ and ‘Surface’ representation is supported. FootPrint Representation The 2D geometric representation of IfcVirtualElement is defined using the ‘FootPrint’ representation.

IfcShapeRepresentation.RepresentationIdentifier = ‘FootPrint’. IfcShapeRepresentation.RepresentationType = ‘Curve2D’ or ‘GeometricCurveSet’ .

The following constraints apply to the 2D FootPrint representation:

‘Curve2D’: IfcPolyline, IfcTrimmedCurve or IfcCompositeCurve ‘GeometricCurveSet’: a list of 2D curves within the constraints shown above.

Surface Representation The 3D geometric representation of IfcVirtualElement is defined using a surface geometry.

IfcShapeRepresentation.RepresentationIdentifier = ‘Surface’. IfcShapeRepresentation.RepresentationType = ‘Surface3D’ or ‘GeometricSet .

The following constraints apply to the 3D surface representation:

‘Surface3D’: IfcSurfaceOfLinearExtrusion, IfcCurveBoundedPlane, IfcCurveBoundedSurface, IfcRectangularTrimmedSurface in case of an IfcSurfaceOfLinearExtrusion

Profile: IfcArbitraryOpenProfileDef Extrusion: The extrusion direction shall be vertically, i.e., along the positive Z Axis of the co-ordinate system of the containing spatial structure element.

in case of an IfcCurveBoundedPlane, IfcCurveBoundedSurface, IfcRectangularTrimmedSurface

Extrusion: The BasisSurface shall be a surface that is upright, i.e. standing perpendicular to the xy place of the co-ordinate system of the containing spatial structure element.

‘GeometricSet’: a list of 3D surfaces within the constraints shown above.

Public Types

typedef IfcTemplatedEntityList<IfcVirtualElement> list

Public Functions

const IfcParse::entity &declaration() const
IfcVirtualElement(IfcEntityInstanceData *e)
IfcVirtualElement(std::string v1_GlobalId, ::Ifc4x1::IfcOwnerHistory *v2_OwnerHistory, boost::optional<std::string> v3_Name, boost::optional<std::string> v4_Description, boost::optional<std::string> v5_ObjectType, ::Ifc4x1::IfcObjectPlacement *v6_ObjectPlacement, ::Ifc4x1::IfcProductRepresentation *v7_Representation, boost::optional<std::string> v8_Tag)

Public Static Functions

const IfcParse::entity &Class()