8.8.3.36 IfcSectionedSpine(截面脊线)
8.8.3.36.1 语义定义(Semantic definition)
IfcSectionedSpine 是一种通过多个平面横截面和一条脊线曲线构成的三维物体形状表示。形状在横截面的第一个元素和最后一个元素之间定义。截面脊线可用于表示曲面或实体,但横截面之间的形状插值未定义。
所有横截面必须通过闭合轮廓定义面积以支持实体表示。所有横截面必须通过开放或闭合轮廓定义曲线以支持曲面表示。横截面由 IfcProfileDef 的子类型定义,其中连续轮廓可通过起始轮廓或前一个连续轮廓的变换推导得出。
脊线曲线应为 IfcCompositeCurve 类型,其由 IfcCompositeCurveSegment 表示的每个线段应对应于恰好两个连续横截面之间的部分。
图1展示了 IfcSectionedSpine 的示例。
- SpineCurve 由具有两个 Segments 的 IfcCompositeCurve 给出。Segments[1] 具有 IfcPolyline 类型的 ParentCurve 和 Transition = CONTSAMEGRADIENT。Segments[2] 具有 IfcTrimmedCurve 类型的 ParentCurve 和 Transition = DISCONTINUOUS。
- 每个 CrossSectionPosition 位于 Segments 的起点或终点。
- 每个 CrossSections 通过 CrossSectionPositions 插入。前两个横截面为 IfcRectangleProfileDef 类型,第三个为 IfcDerivedProfileDef 类型。

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

非正式命题
- 所有横截面在通过横截面位置放置后均不得相交
- 所有横截面在通过横截面位置放置后均不得位于同一平面
- 每个横截面位置的局部原点应位于复合曲线线段的起点或终点。
8.8.3.36.2 实体继承(Entity inheritance)
-
- IfcSectionedSpine
- IfcAnnotationFillArea
- IfcBooleanResult
- IfcBoundingBox
- IfcCartesianPointList
- IfcCartesianTransformationOperator
- IfcCsgPrimitive3D
- IfcCurve
- IfcDirection
- IfcFaceBasedSurfaceModel
- IfcFillAreaStyleHatching
- IfcFillAreaStyleTiles
- IfcGeometricSet
- IfcHalfSpaceSolid
- IfcLightSource
- IfcPlacement
- IfcPlanarExtent
- IfcPoint
- IfcSegment
- IfcShellBasedSurfaceModel
- IfcSolidModel
- IfcSurface
- IfcTessellatedItem
- IfcTextLiteral
- IfcVector
8.8.3.36.3 特性(Attributes)
| # | 特性(Attributes) | 类型 | 描述 |
|---|---|---|---|
| IfcRepresentationItem (2) | |||
| LayerAssignment | SET [0:1] OF IfcPresentationLayerAssignment FOR AssignedItems |
将表示项分配给单个或多个层。LayerAssignments 可以覆盖其所在的 IfcRepresentation 的 Items 列表中的 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。 |
8.8.3.36.4 形式化命题(Formal propositions)
| 名称 | 描述 |
|---|---|
| ConsistentProfileTypes |
定义横截面的轮廓列表中的轮廓类型(AREA 或 CURVE)应保持一致。 |
|
|
| CorrespondingSectionPositions |
横截面集合与横截面位置集合应具有相同的大小。 |
|
|
| SpineCurveDim |
作为基础脊线曲线的曲线实体应具有3维维度。 |
|
|
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;