IFC 4.3.2.20250905 (IFC4X3_ADD2) under development

  • Help suggest improvements
  • Get user or developer support

8.9.3.16 IfcCartesianTransformationOperator3D

RV ⓘ
AbV ⓘ

8.9.3.16.1 Semantic definition

An IfcCartesianTransformationOperator defines a geometric transformation in three-dimensional space.

Definition according to 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 normalized 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. Entity adapted from cartesian_transformation_operator_3d defined in ISO10303-42. New entity in IFC2x.

8.9.3.16.2 Entity inheritance

8.9.3.16.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.

The inverse attribute LayerAssignments has been added. The inverse attribute LayerAssignment has been restricted to max 1. Upward compatibility for file based exchange is guaranteed.
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.

The inverse attribute StyledByItem has been added.
IfcCartesianTransformationOperator (6)
1 Axis1 OPTIONAL IfcDirection

The direction used to determine U[1], the derived X axis direction.

2 Axis2 OPTIONAL IfcDirection

The direction used to determine U[2], the derived Y axis direction.

3 LocalOrigin IfcCartesianPoint

The required translation, specified as a cartesian point. The actual translation included in the transformation is from the geometric origin to the local origin.

4 Scale OPTIONAL IfcReal

The scaling value specified for the transformation.

* Scl IfcReal

This attribute is formally derived.

NVL(Scale, 1.0)

The derived scale S of the transformation, equal to scale if that exists, or 1.0 otherwise.

* Dim IfcDimensionCount

This attribute is formally derived.

LocalOrigin.Dim

The space dimensionality of this class, determined by the space dimensionality of the local origin.

Click to show 8 hidden inherited attributes Click to hide 8 inherited attributes
IfcCartesianTransformationOperator3D (2)
5 Axis3 OPTIONAL IfcDirection

The exact direction of U[3], the derived Z axis direction.

* U LIST [3:3] OF IfcDirection

This attribute is formally derived.

IfcBaseAxis(3,SELF\IfcCartesianTransformationOperator.Axis1,
SELF\IfcCartesianTransformationOperator.Axis2,Axis3)

The list of mutually orthogonal, normalized vectors defining the transformation matrix T. They are derived from the explicit attributes Axis3, Axis1, and Axis2 in that order.

Table 8.9.3.16.I

8.9.3.16.4 Formal propositions

Name Description
Axis1Is3D

The inherited Axis1 should have (if given) the dimensionality of 3.

NOT(EXISTS(SELF\IfcCartesianTransformationOperator.Axis1)) OR 
(SELF\IfcCartesianTransformationOperator.Axis1.Dim = 3)
Axis2Is3D

The inherited Axis2 should have (if given) the dimensionality of 3.

NOT(EXISTS(SELF\IfcCartesianTransformationOperator.Axis2)) OR 
(SELF\IfcCartesianTransformationOperator.Axis2.Dim = 3)
Axis3Is3D

The Axis3 should have (if given) the dimensionality of 3.

NOT(EXISTS(Axis3)) OR (Axis3.Dim = 3)
DimIs3D

The coordinate space dimensionality of this entity shall be 3.

SELF\IfcCartesianTransformationOperator.Dim = 3
Table 8.9.3.16.J

8.9.3.16.5 Examples

8.9.3.16.6 Formal representation

ENTITY IfcCartesianTransformationOperator3D
 SUPERTYPE OF (ONEOF
	(IfcCartesianTransformationOperator3DnonUniform))
 SUBTYPE OF (IfcCartesianTransformationOperator);
	Axis3 : OPTIONAL IfcDirection;
 DERIVE
	 U : LIST [3:3] OF IfcDirection := IfcBaseAxis(3,SELF\IfcCartesianTransformationOperator.Axis1,
SELF\IfcCartesianTransformationOperator.Axis2,Axis3);
 WHERE
	Axis1Is3D : NOT(EXISTS(SELF\IfcCartesianTransformationOperator.Axis1)) OR 
(SELF\IfcCartesianTransformationOperator.Axis1.Dim = 3);
	Axis2Is3D : NOT(EXISTS(SELF\IfcCartesianTransformationOperator.Axis2)) OR 
(SELF\IfcCartesianTransformationOperator.Axis2.Dim = 3);
	Axis3Is3D : NOT(EXISTS(Axis3)) OR (Axis3.Dim = 3);
	DimIs3D : SELF\IfcCartesianTransformationOperator.Dim = 3;
END_ENTITY;

Edit on Github


Is this page difficult to understand? Let us know!

8.9.3.16.7 Changelog

8.9.3.16.7.1 IFC4

  • where rule, Axis1Is3D
  • where rule, Axis2Is3D
  • where rule, Axis3Is3D
  • where rule, DimIs3D
  • where rule, WR1
  • where rule, WR2
  • where rule, WR3
  • where rule, WR4