IFC 4.3.x development

8.9.3.13 IfcCartesianTransformationOperator

Change log

IFC4

additions where_rules ScaleGreaterZero
deletions where_rules WR1
modificationsattributes Scale definitionChanged from real to IfcReal

8.9.3.13.1 Semantic definitions at the entity

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

NOTE  Definition according to ISO/CD 10303-42:1992
A Cartesian transformation operator defines a geometric transformation 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, by the base axis function, from the direction attributes axis1, axis2 and, in Cartesian transformation operator 3d, axis3. If |T|= -1, the transformation includes mirroring. The local origin point A, the scale value S and the matrix T together define a transformation.

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.

NOTE  Entity adapted from cartesian_transformation_operator defined in ISO10303-42.

HISTORY  New entity in IFC2x.

8.9.3.13.1 Attributes

# Attribute Type Description
IfcRepresentationItem
LayerAssignmentSET [0:1] OF IfcPresentationLayerAssignment FOR AssignedItemsAssignment 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.

> IFC2x3 CHANGE  The inverse attribute LayerAssignments has been added.

> IFC4 CHANGE  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.



> IFC2x3 CHANGE  The inverse attribute StyledByItem has been added.
IfcGeometricRepresentationItem
IfcCartesianTransformationOperator
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 INVALID The derived scale S of the transformation, equal to scale if that exists, or 1.0 otherwise.
Dim INVALID The space dimensionality of this class, determined by the space dimensionality of the local origin.

8.9.3.13.2 Entity inheritance

dot_inheritance IfcCartesianTransformationOperator2D IfcCartesianTransformationOperator2D IfcCartesianTransformationOperator IfcCartesianTransformationOperator IfcCartesianTransformationOperator2D->IfcCartesianTransformationOperator IfcGeometricRepresentationItem IfcGeometricRepresentationItem IfcCartesianTransformationOperator->IfcGeometricRepresentationItem IfcCartesianTransformationOperator3D IfcCartesianTransformationOperator3D IfcCartesianTransformationOperator3D->IfcCartesianTransformationOperator IfcGeometricRepresentationItem_children 24 more... IfcGeometricRepresentationItem_children->IfcGeometricRepresentationItem IfcRepresentationItem IfcRepresentationItem IfcGeometricRepresentationItem->IfcRepresentationItem IfcRepresentationItem_children 3 more... IfcRepresentationItem_children->IfcRepresentationItem

8.9.3.13.3 Formal representations

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;