Navigation

IfcAxis2Placement3D

Definition from ISO/CD 10303-42:1992: The location and orientation in three dimensional space of three mutually perpendicular axes. An axis2_placement_3D (IfcAxis2Placement3D) is defined in terms of a point (inherited from IfcPlacement supertype) and two (ideally orthogonal) axes. It can be used to locate and originate an object in three dimensional space and to define a placement coordinate system. The entity includes a point which forms the origin of the placement coordinate system. Two direction vectors are required to complete the definition of the placement coordinate system. The axis is the placement Z axis direction and the ref_direction (RefDirection) is an approximation to the placement X axis direction.

Definition from IAI: 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.]. The WR5 is added in IFC to ensure that either both attributes (Axis and RefDirection) are given, or omitted.

NOTE Corresponding STEP name: axis2_placement_3d, please refer to ISO/IS 10303-42:1994 for the final definition of the formal standard.

HISTORY New class in IFC Release 1.5, the IFC Release 1.0 entity IfcPlacement_3D was using three normalized and orthogonal axes. This definition is replaced in IFC Release 1.5 by the STEP definition of axis placement.
ISSUE: See issue log for changes made in IFC Release 1.5.1

Illustration

axis2 placement 2D Definition of the IfcAxis2Placement3D within the three-dimensional coordinate system.

EXPRESS specification:

ENTITY IfcAxis2Placement3D
SUBTYPE OF ( IfcPlacement);
Axis  :  OPTIONAL IfcDirection;
RefDirection  :  OPTIONAL IfcDirection;
DERIVE
P  :  LIST [3:3] OF IfcDirection :=  IfcBuildAxes(Axis, RefDirection);
WHERE
WR1  :  SELF\IfcPlacement.Location.Dim = 3;
WR2  :  (NOT (EXISTS (Axis))) OR (Axis.Dim = 3);
WR3  :  (NOT (EXISTS (RefDirection))) OR (RefDirection.Dim = 3);
WR4  :  (NOT (EXISTS (Axis))) OR (NOT (EXISTS (RefDirection))) OR (IfcCrossProduct(Axis,RefDirection).Magnitude > 0.0);
WR5  :  NOT ((EXISTS (Axis)) XOR (EXISTS (RefDirection)));
END_ENTITY;

Attribute definitions:

Axis  :  The exact direction of the local Z Axis.
RefDirection  :  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  :  The normalized directions of the placement X Axis (P[1]) and the placement Y Axis (P[2]) and the placement Z Axis (P[3]).

Formal Propositions:

WR1  :  The dimensionality of the placement location shall be 3.
WR2  :  The Axis when given should only reference a three-dimensional IfcDirection.
WR3  :  The RefDirection when given should only reference a three-dimensional IfcDirection.
WR4  :  The Axis and RefDirection shall not be parallel or anti-parallel.
WR5  :  Either both (Axis and RefDirection) are not given and therefore defaulted, or both shall be given. This is a further constraint in IFC Release 1.5.

References (4):

Name Type Referred through Express-G
IfcAxis2Placement Select
Select relation
Diagram 3
IfcElementarySurface Entity
Attribute 'Position'
Diagram 7
IfcPlacement Entity
Subtype
Diagram 3
IfcSweptSurface Entity
Attribute 'Position'
Diagram 8

Inheritance graph

ENTITY IfcAxis2Placement3D;
ENTITY IfcRepresentationItem;
ENTITY IfcGeometricRepresentationItem;
ENTITY IfcPlacement;
Location  :  IfcCartesianPoint;
DERIVE
Dim  :  IfcDimensionCount :=  Location.Dim;
ENTITY IfcAxis2Placement3D;
Axis  :  OPTIONAL IfcDirection;
RefDirection  :  OPTIONAL IfcDirection;
DERIVE
P  :  LIST [3:3] OF IfcDirection :=  IfcBuildAxes(Axis, RefDirection);
END_ENTITY;