IFC 4.3.2.20251031 (IFC4X3_ADD2) under development

8.9.3.14 IfcCartesianTransformationOperator2D(二维笛卡尔变换算子)

RV ⓘ
AbV ⓘ

8.9.3.14.1 语义定义(Semantic definition)

IfcCartesianTransformationOperator2D 定义二维空间中的几何变换。

8.9.3.14.2 实体继承(Entity inheritance)

8.9.3.14.3 特性(Attributes)

# 特性(Attributes) 类型 描述
IfcRepresentationItem (2)
LayerAssignment SET [0:1] OF IfcPresentationLayerAssignment FOR AssignedItems

将表示项分配给单个或多个层。LayerAssignments 可以覆盖其所在的 IfcRepresentationItems 列表中的 LayerAssignments

StyledByItem SET [0:1] OF IfcStyledItem FOR Item

引用为表示提供表现信息的 IfcStyledItem,例如,为几何曲线提供曲线样式,包括颜色和厚度。

IfcCartesianTransformationOperator (6)
1 Axis1 OPTIONAL IfcDirection

用于确定 U[1](派生 X 轴方向)的方向。

2 Axis2 OPTIONAL IfcDirection

用于确定 U[2](派生 Y 轴方向)的方向。

3 LocalOrigin IfcCartesianPoint

所需的平移,指定为笛卡尔点。变换中包含的实际平移是从几何原点到局部原点。

4 Scale OPTIONAL IfcReal

为变换指定的缩放值。

* Scl IfcReal

此属性是形式化派生的

NVL(Scale, 1.0)

变换的派生缩放 S,如果存在 scale 则等于 scale,否则为 1.0。

* Dim IfcDimensionCount

此属性是形式化派生的

LocalOrigin.Dim

此类的空间维度,由局部原点的空间维度确定。

点击显示 8 个隐藏的继承特性 点击隐藏 8 个继承特性
IfcCartesianTransformationOperator2D (1)
* U LIST [2:2] OF IfcDirection

此属性是形式化派生的

IfcBaseAxis(2,SELF\IfcCartesianTransformationOperator.Axis1,
SELF\IfcCartesianTransformationOperator.Axis2,?)

定义变换矩阵 T 的相互正交的归一化向量列表。它们按顺序从显式属性 Axis1 和 Axis2 派生而来。

表 8.9.3.14.A

8.9.3.14.4 形式化命题(Formal propositions)

名称 描述
Axis1Is2D

继承的 Axis1(如果给出)应具有 2 的维度。

NOT(EXISTS(SELF\IfcCartesianTransformationOperator.Axis1)) OR 
(SELF\IfcCartesianTransformationOperator.Axis1.Dim = 2)
Axis2Is2D

继承的 Axis2(如果给出)应具有 2 的维度。

NOT(EXISTS(SELF\IfcCartesianTransformationOperator.Axis2)) OR 
(SELF\IfcCartesianTransformationOperator.Axis2.Dim = 2)
DimEqual2

此实体的坐标空间维度应为 2。

SELF\IfcCartesianTransformationOperator.Dim = 2
表 8.9.3.14.B

8.9.3.14.5 形式化表示(Formal representation)

ENTITY IfcCartesianTransformationOperator2D
 SUPERTYPE OF (ONEOF
	(IfcCartesianTransformationOperator2DnonUniform))
 SUBTYPE OF (IfcCartesianTransformationOperator);
 DERIVE
	 U : LIST [2:2] OF IfcDirection := IfcBaseAxis(2,SELF\IfcCartesianTransformationOperator.Axis1,
SELF\IfcCartesianTransformationOperator.Axis2,?);
 WHERE
	Axis1Is2D : NOT(EXISTS(SELF\IfcCartesianTransformationOperator.Axis1)) OR 
(SELF\IfcCartesianTransformationOperator.Axis1.Dim = 2);
	Axis2Is2D : NOT(EXISTS(SELF\IfcCartesianTransformationOperator.Axis2)) OR 
(SELF\IfcCartesianTransformationOperator.Axis2.Dim = 2);
	DimEqual2 : SELF\IfcCartesianTransformationOperator.Dim = 2;
END_ENTITY;