IFC 4.3.2.20251031 (IFC4X3_ADD2) under development

8.8.3.36 IfcSectionedSpine(截面脊线)

8.8.3.36.1 语义定义(Semantic definition)

IfcSectionedSpine 是一种通过多个平面横截面和一条脊线曲线构成的三维物体形状表示。形状在横截面的第一个元素和最后一个元素之间定义。截面脊线可用于表示曲面或实体,但横截面之间的形状插值未定义。

所有横截面必须通过闭合轮廓定义面积以支持实体表示。所有横截面必须通过开放或闭合轮廓定义曲线以支持曲面表示。横截面由 IfcProfileDef 的子类型定义,其中连续轮廓可通过起始轮廓或前一个连续轮廓的变换推导得出。

脊线曲线应为 IfcCompositeCurve 类型,其由 IfcCompositeCurveSegment 表示的每个线段应对应于恰好两个连续横截面之间的部分。

图1展示了 IfcSectionedSpine 的示例。

  • SpineCurve 由具有两个 SegmentsIfcCompositeCurve 给出。Segments[1] 具有 IfcPolyline 类型的 ParentCurveTransition = CONTSAMEGRADIENT。Segments[2] 具有 IfcTrimmedCurve 类型的 ParentCurveTransition = DISCONTINUOUS。
  • 每个 CrossSectionPosition 位于 Segments 的起点或终点。
  • 每个 CrossSections 通过 CrossSectionPositions 插入。前两个横截面为 IfcRectangleProfileDef 类型,第三个为 IfcDerivedProfileDef 类型。
spine 1
图1 — 截面脊线几何形状

图2展示了 IfcSectionedSpine 的最终结果。实体(透明显示)未在交换定义中完全定义。

render
图2 — 截面脊线结果

非正式命题

  1. 所有横截面在通过横截面位置放置后均不得相交
  2. 所有横截面在通过横截面位置放置后均不得位于同一平面
  3. 每个横截面位置的局部原点应位于复合曲线线段的起点或终点。

8.8.3.36.2 实体继承(Entity inheritance)

8.8.3.36.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,例如,为几何曲线提供曲线样式,包括颜色和厚度。

点击显示 2 个隐藏的继承特性 点击隐藏 2 个继承特性
IfcSectionedSpine (4)
1 SpineCurve IfcCompositeCurve

定义脊线曲线的单一复合曲线。每个复合曲线线段对应两个横截面之间的部分。

2 CrossSections LIST [2:?] OF IfcProfileDef

至少包含两个横截面的列表,每个横截面在横截面位置坐标系 xy 平面内定义。位置坐标系由相应的 CrossSectionPositions 列表给出。

3 CrossSectionPositions LIST [2:?] OF IfcAxis2Placement3D

构成截面脊线的横截面的位置坐标系。定义横截面的轮廓位于相应位置坐标系的 xy 平面内。

* Dim IfcDimensionCount

此属性是形式化派生的

3

脊线曲线的维度始终为3。

表 8.8.3.36.A

8.8.3.36.4 形式化命题(Formal propositions)

名称 描述
ConsistentProfileTypes

定义横截面的轮廓列表中的轮廓类型(AREA 或 CURVE)应保持一致。

SIZEOF(QUERY(temp <* CrossSections | CrossSections[1].ProfileType <> temp.ProfileType)) = 0
CorrespondingSectionPositions

横截面集合与横截面位置集合应具有相同的大小。

SIZEOF(CrossSections) = SIZEOF(CrossSectionPositions)
SpineCurveDim

作为基础脊线曲线的曲线实体应具有3维维度。

SpineCurve.Dim = 3
表 8.8.3.36.C

8.8.3.36.5 形式化表示(Formal representation)

ENTITY IfcSectionedSpine
 SUBTYPE OF (IfcGeometricRepresentationItem);
	SpineCurve : IfcCompositeCurve;
	CrossSections : LIST [2:?] OF IfcProfileDef;
	CrossSectionPositions : LIST [2:?] OF IfcAxis2Placement3D;
 DERIVE
	 Dim : IfcDimensionCount := 3;
 WHERE
	ConsistentProfileTypes : SIZEOF(QUERY(temp <* CrossSections | CrossSections[1].ProfileType <> temp.ProfileType)) = 0;
	CorrespondingSectionPositions : SIZEOF(CrossSections) = SIZEOF(CrossSectionPositions);
	SpineCurveDim : SpineCurve.Dim = 3;
END_ENTITY;

8.8.3.36.6 参考文献