IFC 4.3.0.1 (IFC4X3_TC1)

# 8.9.3.13 IfcCartesianTransformationOperator

ABSTRACT This definition may not be instantiated

## 8.9.3.13.1 Semantic definition

An IfcCartesianTransformationOperator defines an abstract supertype of different kinds of geometric transformations.

The transformation for a point with position vector P is defined by

P -> A + _S_TP The transformation for a direction d is defined by

d -> Td The transformation for a vector with orientation d and magnitude k is defined by

d -> Td, and k -> Sk For those entities whose attributes include an axis2 placement, the transformation is applied, after the derivation, to the derived attributes p defining the placement coordinate directions. For a transformed surface, the direction of the surface normal at any point is obtained by transforming the normal, at the corresponding point, to the original surface. For geometric entities with attributes (such as the radius of a circle) which have the dimensionality of length, the values will be multiplied by S.

For curves on surface the p curve.reference to curve will be unaffected by any transformation. The Cartesian transformation operator shall only be applied to geometry defined in a consistent system of units with the same units on each axis. With all optional attributes omitted, the transformation defaults to the identity transformation. The Cartesian transformation operator shall only be instantiated as one of its subtypes.

## 8.9.3.13.5 Formal representation

ENTITY IfcCartesianTransformationOperator
ABSTRACT SUPERTYPE OF (ONEOF
(IfcCartesianTransformationOperator2D
,IfcCartesianTransformationOperator3D))
SUBTYPE OF (IfcGeometricRepresentationItem);
Axis1 : OPTIONAL IfcDirection;
Axis2 : OPTIONAL IfcDirection;
LocalOrigin : IfcCartesianPoint;
Scale : OPTIONAL IfcReal;
DERIVE
Scl : IfcReal := NVL(Scale, 1.0);
Dim : IfcDimensionCount := LocalOrigin.Dim;
WHERE
ScaleGreaterZero : Scl > 0.0;
END_ENTITY;

## 8.9.3.13.6 References

### 8.9.3.13.7 Changelog

#### 8.9.3.13.7.1 IFC4

• where rule, ScaleGreaterZero
• where rule, WR1
• attribute Scale type, Changed from "real" to "IfcReal"