Navigation
Navigate Navigate Navigate Navigate Navigate Navigate Navigate Navigate

IfcCartesianTransformationOperator3D

Definition from ISO/CD 10303-42:1992: A Cartesian transformation operator 3d defines a geometric transformation in three-dimensional space composed of translation, rotation, mirroring and uniform scaling. The list of normalised vectors u defines the columns of an orthogonal matrix T. These vectors are computed from the direction attributes axis1, axis2 and axis3 by the base axis function. If |T|= -1, the transformation includes mirroring.

NOTE: Corresponding STEP entity : cartesian_transformation_operator_3d, please refer to ISO/IS 10303-42:1994, p. 33 for the final definition of the formal standard.
HISTORY: New entity in IFC Release 2x.

EXPRESS specification:

ENTITY IfcCartesianTransformationOperator3D
SUPERTYPE OF (IfcCartesianTransformationOperator3DnonUniform)
SUBTYPE OF ( IfcCartesianTransformationOperator);
Axis3  :  OPTIONAL IfcDirection;
DERIVE
U  :  LIST [3:3] OF IfcDirection :=  IfcBaseAxis(3,SELF\IfcCartesianTransformationOperator.Axis1,
SELF\IfcCartesianTransformationOperator.Axis2,Axis3);
WHERE
WR1  :  SELF\IfcCartesianTransformationOperator.Dim = 3;
WR2  :  NOT(EXISTS(SELF\IfcCartesianTransformationOperator.Axis1)) OR (SELF\IfcCartesianTransformationOperator.Axis1.Dim = 3);
WR3  :  NOT(EXISTS(SELF\IfcCartesianTransformationOperator.Axis2)) OR (SELF\IfcCartesianTransformationOperator.Axis2.Dim = 3);
WR4  :  NOT(EXISTS(Axis3)) OR (Axis3.Dim = 3);
END_ENTITY;

Attribute definitions:

Axis3  :  The exact direction of U[3], the derived Z axis direction.
U  :  The list of mutually orthogonal, normalised vectors defining the transformation matrix T. They are derived from the explicit attributes Axis3, Axis1, and Axis2 in that order.

Formal Propositions:

WR1  :  The coordinate space dimensionality of this entity shall be 3.
WR2  :  The inherited Axis1 should have (if given) the dimensionality of 3.
WR3  :  The inherited Axis2 should have (if given) the dimensionality of 3.
WR4  :  The Axis3 should have (if given) the dimensionality of 3.

Inheritance graph

ENTITY IfcCartesianTransformationOperator3D;
ENTITY IfcRepresentationItem;
INVERSE
LayerAssignments  :  SET OF IfcPresentationLayerAssignment FOR AssignedItems;
StyledByItem  :  SET [0:1] OF IfcStyledItem FOR Item;
ENTITY IfcGeometricRepresentationItem;
ENTITY IfcCartesianTransformationOperator;
Axis1  :  OPTIONAL IfcDirection;
Axis2  :  OPTIONAL IfcDirection;
LocalOrigin  :  IfcCartesianPoint;
Scale  :  OPTIONAL REAL;
DERIVE
Scl  :  REAL :=  NVL(Scale, 1.0);
Dim  :  IfcDimensionCount :=  LocalOrigin.Dim;
ENTITY IfcCartesianTransformationOperator3D;
Axis3  :  OPTIONAL IfcDirection;
DERIVE
U  :  LIST [3:3] OF IfcDirection :=  IfcBaseAxis(3,SELF\IfcCartesianTransformationOperator.Axis1,
SELF\IfcCartesianTransformationOperator.Axis2,Axis3);
END_ENTITY;