8.7.3.16 IfcVirtualGridIntersection(虚拟网格交点)
8.7.3.16.1 语义定义(Semantic definition)
IfcVirtualGridIntersection 定义了两个网格轴线交点的派生位置。可以给出偏移值来设置与网格轴的偏移距离,用于计算虚拟网格交点。
两条相交轴线(IntersectingAxes)定义了交点,其精确位置(以表示交点的笛卡尔点表示)必须根据两条参与曲线的几何表示计算得出。
可以给出偏移值(OffsetDistances)。如果给出,OffsetDistances 列表中的位置与 IntersectingAxes 列表中的位置相对应。因此:
- OffsetDistances[1] 设置与 IntersectingAxes[1] 的偏移,
- OffsetDistances[2] 设置与 IntersectingAxes[2] 的偏移,以及
- OffsetDistances[3] 设置与 IntersectingAxes[1] 和 IntersectingAxes[1] 的正交补(即设计网格位置的 z 轴正方向或负方向)的叉积方向上的虚拟交点的偏移。
以下图例解释了 OffsetDistances 和 IntersectingAxes 属性的用法。

图 8.7.3.16.A 说明了给出两个偏移距离的情况,其中虚拟交点定义在网格轴放置的 xy 平面内。

图 8.7.3.16.B 说明了给出三个偏移距离的情况,其中虚拟交点由网格轴放置的 xy 平面内的虚拟交点在设计网格放置的 z 轴方向上的偏移定义。
偏移曲线(OffsetDistances[n])的距离是从基准曲线测量的。距离可以是正数、负数或零。距离的正值定义了在给定点处从切向量 T 逆时针旋转 90 度意义上的曲线法线方向的偏移(即正交补(T)的方向)。这可以通过 IfcGridAxis 的 SameSense 属性来反转,该属性可以切换 AxisCurve 的方向。

图 8.7.3.16.C 说明了负偏移的示例,图中显示了偏移的一侧。
- IntersectingAxes[1].AxisCurve 是一个以 IfcCircle 作为 BasisCurve 且 SenseAgreement = TRUE 的 IfcTrimmedCurve。
- IntersectingAxes[1].SameSense = TRUE。
- OffsetDistances[1] 是一个负的长度度量值。
非正式命题
- IntersectingAxes[1] 和 IntersectingAxes[2] 都应是同一个 IfcGrid 定义的两个 IfcGridAxis。
- IntersectingAxes[1] 和 IntersectingAxes[2] 不应属于同一行网格轴线,即两者不应在相应 IfcGrid 的同一组 IfcGrid.UAxes 或 IfcGrid.VAxes 内。
8.7.3.16.2 实体继承(Entity inheritance)
8.7.3.16.3 特性(Attributes)
| # | 特性(Attributes) | 类型 | 描述 |
|---|---|---|---|
| IfcVirtualGridIntersection (2) | |||
| 1 | IntersectingAxes | LIST [2:2] OF UNIQUE IfcGridAxis |
两条网格轴线,它们恰好在一个交点处相交(另请参见 IfcGrid 的非正式命题)。如果省略属性 OffsetDistances,则交点直接定义网格放置的位置或参考方向。如果给出了 OffsetDistances,则交点由网格轴的偏移曲线定义。 |
| 2 | OffsetDistances | LIST [2:3] OF IfcLengthMeasure |
与网格轴线的偏移距离。如果给出,它定义了网格轴的虚拟偏移曲线。偏移曲线的交点指定了虚拟网格交点。 |
8.7.3.16.4 形式化表示(Formal representation)
ENTITY IfcVirtualGridIntersection;
IntersectingAxes : LIST [2:2] OF UNIQUE IfcGridAxis;
OffsetDistances : LIST [2:3] OF IfcLengthMeasure;
END_ENTITY;