IFC 4.3.2.20251031 (IFC4X3_ADD2) under development

8.8.3.37 IfcSectionedSurface(截面表面)

AbV ⓘ

8.8.3.37.1 语义定义(Semantic definition)

一种通过沿水平(或接近水平)曲线扫掠可能变化的开放截面而构建的表面。该表面通过在_截面位置_之间扫掠_截面_生成;除非通过OpenCrossProfileDef.Tags指定了截面点之间的过渡曲线,否则假定为线性插值。

截面法线源自关联的_IfcAxis2PlacementLinear_,不一定是_准线_的切线。截面Y轴根据_IfcAxis2PlacementLinear_的_轴_属性定向,X轴源自_准线_与_IfcAxis2PlacementLinear_的_轴_属性的叉积。

图1展示了使用_IfcOpenCrossProfileDef_定义的_IfcSectionedSurface_。

截面表面
图1 — 使用_IfcOpenCrossProfileDef_的截面表面

在存在分支纵向断裂线的情况下,_IfcSectionedSurface_应使用具有不同截面点数量的_IfcOpenCrossProfileDef_实例。此时,通过相同标签值标识两个连续截面中连接的点。

图2展示了具有分支纵向断裂线的_IfcSectionedSurface_。

截面表面
图2 — 具有分支纵向断裂线的截面表面

非正式命题

  1. 任意两个连续截面不得相交
  2. 若准线非切线连续,将通过在两线段间以半角斜接创建生成表面
  3. 极锐利边缘可能导致几乎无法实现的斜接;实施者协议可定义切线不连续性的可接受限值,或要求准线保持切线连续
  4. 准线不得自相交

8.8.3.37.2 实体继承(Entity inheritance)

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

IfcSurface (1)
* Dim IfcDimensionCount

此属性是形式化派生的

3

IfcSurface 的空间维度。它始终是三维几何表示项。

点击显示 3 个隐藏的继承特性 点击隐藏 3 个继承特性
IfcSectionedSurface (3)
1 Directrix IfcCurve

用于定义扫掠操作的曲线

2 CrossSectionPositions LIST [2:?] OF IfcAxis2PlacementLinear

按顺序递增的位置列表,与_截面_成对出现,指示相应截面沿_准线_的位置

3 CrossSections LIST [2:?] OF IfcProfileDef

沿准线顺序排列的截面列表

表 8.8.3.37.A

8.8.3.37.4 形式化命题(Formal propositions)

名称 描述
AreaProfileTypes

定义截面的轮廓列表中,轮廓类型必须为CURVE

SIZEOF(QUERY(temp <* CrossSections | temp.ProfileType = IfcProfileTypeEnum.CURVE)) <> 0
CorrespondingSectionPositions

截面集合与截面放置集合必须具有相同尺寸

SIZEOF(CrossSections) = SIZEOF(CrossSectionPositions)
DirectrixIs3D

作为基础准线的曲线实体必须具有三维维度

Directrix.Dim = 3
NoOffsets

距离表达式不得使用纵向、横向或竖向偏移量

SIZEOF(QUERY(temp <* CrossSectionPositions | EXISTS(temp.Location.OffsetLateral) OR EXISTS(temp.Location.OffsetVertical) OR EXISTS(temp.Location.OffsetLongitudinal))) = 0
SectionsSameType

每个截面的实体类型必须相同

SIZEOF(QUERY(temp <* CrossSections | TYPEOF(CrossSections[1]) :<>: TYPEOF(temp))) = 0
表 8.8.3.37.C

8.8.3.37.5 形式化表示(Formal representation)

ENTITY IfcSectionedSurface
 SUBTYPE OF (IfcSurface);
	Directrix : IfcCurve;
	CrossSectionPositions : LIST [2:?] OF IfcAxis2PlacementLinear;
	CrossSections : LIST [2:?] OF IfcProfileDef;
 WHERE
	AreaProfileTypes : SIZEOF(QUERY(temp <* CrossSections | temp.ProfileType = IfcProfileTypeEnum.CURVE)) <> 0;
	CorrespondingSectionPositions : SIZEOF(CrossSections) = SIZEOF(CrossSectionPositions);
	DirectrixIs3D : Directrix.Dim = 3;
	NoOffsets : SIZEOF(QUERY(temp <* CrossSectionPositions | EXISTS(temp.Location.OffsetLateral) OR EXISTS(temp.Location.OffsetVertical) OR EXISTS(temp.Location.OffsetLongitudinal))) = 0;
	SectionsSameType : SIZEOF(QUERY(temp <* CrossSections | TYPEOF(CrossSections[1]) :<>: TYPEOF(temp))) = 0;
END_ENTITY;

8.8.3.37.6 参考文献