Class Ifc2x3::IfcGridPlacement

Nested Relationships

This class is a nested type of Struct Ifc2x3.

Inheritance Relationships

Base Type

Class Documentation

class Ifc2x3::IfcGridPlacement : public Ifc2x3::IfcObjectPlacement

IfcGridPlacement provides a specialization of IfcObjectPlacement in which the placement and axis direction of the object coordinate system is defined by a reference to the design grid as defined in IfcGrid. The location of the object coordinate system is given by the attribute PlacementLocation. It is defined as an IfcVirtualGridIntersection, that is, an intersection between two grid axes with optional offsets. The axis direction of the x-axis of the object coordinate system is given either:

PlacementRefDirection = NIL: by the tangent of the first grid axis (PlacementLocation.IntersectingAxes[1]) at the virtual intersection (maybe using the offset curve, if PlacementLocation.OffsetDistances is given); PlacementRefDirection = IfcDirection: by the explicitly provided direction information; PlacementRefDirection = IfcVirtualGridIntersection: by the tangent between the virtual grid intersection of PlacementLocation and the virtual grid intersection of PlacementRefDirection. Offsets as potentially provided in the IfcVirtualGridIntersection’s of PlacementLocation and PlacementRefDirection have to be taken into account.

The direction of the y-axis of the IfcGridPlacement is the orthogonal complement to the x-axis. The plane defined by the x and y axis shall be co-planar to the xy plane of the local placement of the IfcGrid. The direction of the z-axis is the orientation of the cross product of the x-axis and the y-axis, i.e. the z-axis of the IfcGridPlacement shall be co-linear to the z-axis of the local placement of the IfcGrid.

NOTE The IfcGrid local placement, that can be provided relative to the local placement of another spatial structure element, has to be taken into account for calculating the absolute placement of the virtual grid intersection.

NOTE The PlacementLocation.OffsetDistances[3] and the PlacementRefDirection.OffsetDistances[3] shall either not be assigned or should have the same z offset value.

HISTORY New entity in IFC Release 1.5. The entity name was changed from IfcConstrainedPlacement in IFC Release 2x.

IFC2x4 CHANGE Attribute data type of PlacementRefDirection has been changed to IfcGridPlacementDirectionSelect.

Geometry use definitions The following examples show the usage of placement location and direction for an IfcGridPlacement.

Figure 243 illustrates the case where PlacementRefDirection is not given - the object coordinate system is defined by:

its location: given by the virtual grid intersection of PlacementLocation its x-axis direction: given by the tangent of the first intersecting axis in the offset location of the virtual grid intersection

Figure 243 — Grid placement

Figure 244 illustrates the case where PlacementRefDirection is given as an IfcDirection- the object coordinate system is defined by:

its location: given by the virtual grid intersection of PlacementLocation its x-axis direction: given by the DirectionRatios of the IfcDirection, only the ratios for x and y are taken into account,

Figure 244 — Grid placement with direction

Figure 245 illustrates the case where PlacementRefDirection is given as an IfcVirtualGridIntersection- the object coordinate system is defined by:

its location: given by the virtual grid intersection of PlacementLocation its x-axis direction: given by the tangent of the line between the virtual grid intersection of the PlacementLocation and the virtual grid intersection of the PlacementRefDirection.

Figure 245 — Grid placement with intersection

Public Types

typedef IfcTemplatedEntityList<IfcGridPlacement> list

Public Functions

::Ifc2x3::IfcVirtualGridIntersection *PlacementLocation() const

Placement of the object coordinate system defined by the intersection of two grid axes.

void setPlacementLocation(::Ifc2x3::IfcVirtualGridIntersection *v)
bool hasPlacementRefDirection() const

Whether the optional attribute PlacementRefDirection is defined for this IfcGridPlacement.

::Ifc2x3::IfcVirtualGridIntersection *PlacementRefDirection() const

Reference to either an explicit direction, or a second grid axis intersection, which defines the orientation of the grid placement.

IFC2x4 CHANGE The select of an explict direction has been added.

void setPlacementRefDirection(::Ifc2x3::IfcVirtualGridIntersection *v)
const IfcParse::entity &declaration() const
IfcGridPlacement(IfcEntityInstanceData *e)
IfcGridPlacement(::Ifc2x3::IfcVirtualGridIntersection *v1_PlacementLocation, ::Ifc2x3::IfcVirtualGridIntersection *v2_PlacementRefDirection)

Public Static Functions

const IfcParse::entity &Class()