8.18.3.7 IfcMapConversionScaled

8.18.3.7.1 Semantic definition

An IfcMapConversionScaled is a type of IfcMapConversion that supplies factors for coordinate conversion. The usage is restricted to when factors are explicitly exchanged.

For this transformation, IfcMapConversionScaled data are used for:

1. a scaling of the three axes (x,y,z), by the same IfcMapConversionScaled.Scale
2. a multiplication of the x-axis by IfcMapConversionScaled.FactorX
3. a multiplication of the y-axis by IfcMapConversionScaled.FactorY
4. a multiplication of the z-axis by IfcMapConversionScaled.FactorZ
5. followed by an anti-clockwise rotation about the z-axis of θ, where: $$\theta=arctan\left(\frac{\text{XAxisOrdinate}}{\text{XAxisAbscissa}}\right)$$
6. and then a translation in (x,y,z) of IfcMapConversionScaled.Eastings, IfcMapConversionScaled.Northings, IfcMapConversionScaled.OrthogonalHeight.

Equations

Below are the relevant equations for IfcMapConversionScaled. The equations are given: a) in transformation matrix form, useful for programmers to understand the exact sequence of operations and b) in a simplified equation form, which is sufficient for calculating a single point.

a) matrix form

$$\begin{bmatrix} x'\\ y'\\ z' \end{bmatrix} = \begin{bmatrix} cos\theta & -sin\theta & 0 \\ sin\theta & cos\theta & 0 \\ 0 & 0 & 1 \end{bmatrix} \cdot \begin{bmatrix} \text{FactorX} & 0 & 0 \\ 0 & \text{FactorY} & 0 \\ 0 & 0 & \text{FactorZ} \end{bmatrix} \cdot \begin{bmatrix} \text{Scale} & 0 & 0 \\ 0 & \text{Scale} & 0 \\ 0 & 0 & \text{Scale} \end{bmatrix} \cdot \begin{bmatrix} x \\ y \\ z \end{bmatrix} + \begin{bmatrix} \text{Eastings} \\ \text{Northings} \\ \text{OrthogonalHeight} \end{bmatrix}$$

b) equation form

\begin{align} x' &= \text{Scale} \cdot \text{FactorX} \cdot cos\theta \cdot x-\text{Scale} \cdot \text{FactorY} \cdot sin\theta \cdot y+\text{Eastings} \\ y' &= \text{Scale} \cdot \text{FactorX} \cdot sin\theta \cdot x+\text{Scale} \cdot \text{FactorY} \cdot cos\theta \cdot y+\text{Northings} \\ z' &= \text{Scale} \cdot \text{FactorZ} \cdot z+\text{OrthogonalHeight} \end{align}

8.18.3.7.4 Formal representation

ENTITY IfcMapConversionScaled
SUBTYPE OF (IfcMapConversion);
FactorX : IfcReal;
FactorY : IfcReal;
FactorZ : IfcReal;
END_ENTITY;