IFC 4.3.0.0 (IFC4X3) final

8.9.3.3 IfcAxis2Placement3D

8.9.3.3.1 Semantic definition

The IfcAxis2Placement3D provides location and orientations to place items in a three-dimensional space. The attribute Axis defines the Z direction, RefDirection the X direction. The Y direction is derived.

If the attribute values for Axis and RefDirection are not given, the placement defaults to P[1] (x-axis) as [1.,0.,0.], P[2] (y-axis) as [0.,1.,0.] and P[3] (z-axis) as [0.,0.,1.].

axis2 placement 2D
Figure 8.9.3.3.A — Axis2 placement 3D

Figure 8.9.3.3.A illustrates the definition of the IfcAxis2Placement3D within the three-dimensional coordinate system.

8.9.3.3.2 Entity inheritance

8.9.3.3.3 Attributes

# Attribute Type Description
IfcRepresentationItem (2)
LayerAssignment SET [0:1] OF IfcPresentationLayerAssignment FOR AssignedItems

Assignment of the representation item to a single or multiple layer(s). The LayerAssignments can override a LayerAssignments of the IfcRepresentation it is used within the list of Items.

StyledByItem SET [0:1] OF IfcStyledItem FOR Item

Reference to the IfcStyledItem that provides presentation information to the representation, e.g. a curve style, including colour and thickness to a geometric curve.

IfcPlacement (2)
1 Location IfcPoint

The geometric position of a reference point, such as the center of a circle, of the item to be located.

* Dim IfcDimensionCount

This attribute is formally derived.

Location.Dim

The space dimensionality of this class, derived from the dimensionality of the location.

Click to show 4 hidden inherited attributes Click to hide 4 inherited attributes
IfcAxis2Placement3D (3)
2 Axis OPTIONAL IfcDirection

The exact direction of the local Z Axis.

3 RefDirection OPTIONAL IfcDirection

The direction used to determine the direction of the local X Axis. If necessary an adjustment is made to maintain orthogonality to the Axis direction. If Axis and/or RefDirection is omitted, these directions are taken from the geometric coordinate system.

* P LIST [3:3] OF IfcDirection

This attribute is formally derived.

IfcBuildAxes(Axis, RefDirection)

The normalized directions of the placement X Axis (P[1]) and the placement Y Axis (P[2]) and the placement Z Axis (P[3]).

Table 8.9.3.3.V

8.9.3.3.4 Formal propositions

Name Description
AxisAndRefDirProvision

Either both, Axis and RefDirection are not given and therefore defaulted, or both shall be given.

NOT ((EXISTS (Axis)) XOR (EXISTS (RefDirection)))
AxisIs3D

The Axis when given should only reference a three-dimensional IfcDirection.

(NOT (EXISTS (Axis))) OR (Axis.Dim = 3)
AxisToRefDirPosition

The Axis and RefDirection shall not be parallel or anti-parallel.

(NOT (EXISTS (Axis))) OR (NOT (EXISTS (RefDirection))) OR (IfcCrossProduct(Axis,RefDirection).Magnitude > 0.0)
LocationIs3D

The dimensionality of the placement location shall be 3.

SELF\IfcPlacement.Location.Dim = 3
LocationIsCP

No description available.

'IFC4X3.IFCCARTESIANPOINT' IN TYPEOF(SELF\IfcPlacement.Location)
RefDirIs3D

The RefDirection when given should only reference a three-dimensional IfcDirection.

(NOT (EXISTS (RefDirection))) OR (RefDirection.Dim = 3)
Table 8.9.3.3.W

8.9.3.3.5 Examples

8.9.3.3.6 Formal representation

ENTITY IfcAxis2Placement3D
 SUBTYPE OF (IfcPlacement);
	Axis : OPTIONAL IfcDirection;
	RefDirection : OPTIONAL IfcDirection;
 DERIVE
	 P : LIST [3:3] OF IfcDirection := IfcBuildAxes(Axis, RefDirection);
 WHERE
	AxisAndRefDirProvision : NOT ((EXISTS (Axis)) XOR (EXISTS (RefDirection)));
	AxisIs3D : (NOT (EXISTS (Axis))) OR (Axis.Dim = 3);
	AxisToRefDirPosition : (NOT (EXISTS (Axis))) OR (NOT (EXISTS (RefDirection))) OR (IfcCrossProduct(Axis,RefDirection).Magnitude > 0.0);
	LocationIs3D : SELF\IfcPlacement.Location.Dim = 3;
	LocationIsCP : 'IFC4X3.IFCCARTESIANPOINT' IN TYPEOF(SELF\IfcPlacement.Location);
	RefDirIs3D : (NOT (EXISTS (RefDirection))) OR (RefDirection.Dim = 3);
END_ENTITY;

8.9.3.3.7 Changelog

  • where_rules, AxisAndRefDirProvision
  • where_rules, AxisIs3D
  • where_rules, AxisToRefDirPosition
  • where_rules, LocationIs3D
  • where_rules, RefDirIs3D
  • where_rules, WR1
  • where_rules, WR2
  • where_rules, WR3
  • where_rules, WR4
  • where_rules, WR5
  • where_rules, LocationIsCP