Class Ifc4::IfcGridPlacement¶
Defined in File Ifc4.h
Nested Relationships¶
This class is a nested type of Struct Ifc4.
Inheritance Relationships¶
Base Type¶
public Ifc4::IfcObjectPlacement
(Class Ifc4::IfcObjectPlacement)
Class Documentation¶

class
Ifc4
::
IfcGridPlacement
: public Ifc4::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 xaxis 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 yaxis of the IfcGridPlacement is the orthogonal complement to the xaxis. The plane defined by the x and y axis shall be coplanar to the xy plane of the local placement of the IfcGrid. The direction of the zaxis is the orientation of the cross product of the xaxis and the yaxis, i.e. the zaxis of the IfcGridPlacement shall be colinear to the zaxis 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 xaxis 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 xaxis 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 xaxis 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

::Ifc4::IfcVirtualGridIntersection *
PlacementLocation
() const¶ Placement of the object coordinate system defined by the intersection of two grid axes.

void
setPlacementLocation
(::Ifc4::IfcVirtualGridIntersection *v)¶

bool
hasPlacementRefDirection
() const¶ Whether the optional attribute PlacementRefDirection is defined for this IfcGridPlacement.

::Ifc4::IfcGridPlacementDirectionSelect *
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
(::Ifc4::IfcGridPlacementDirectionSelect *v)¶

IfcGridPlacement
(IfcEntityInstanceData *e)¶

IfcGridPlacement
(::Ifc4::IfcVirtualGridIntersection *v1_PlacementLocation, ::Ifc4::IfcGridPlacementDirectionSelect *v2_PlacementRefDirection)¶

typedef IfcTemplatedEntityList<IfcGridPlacement>