IFC 4.3.2.20251031 (IFC4X3_ADD2) under development

8.20.3.13 IfcOrientedEdge(定向边)

8.20.3.13.1 语义定义(Semantic definition)

IfcOrientedEdge 表示带有方向标志的 IfcEdge。它允许在完全遍历两次(一次正向,一次反向)时重用相同的 IfcEdge

注意:IfcFace 的法线方向完全由边决定。如果面的所有边按照边的方向以逆时针方式连接,则面的法线将指向外部。表示该面几何形状的基础 IfcFaceSurface 的法线与此无关。IfcFaceSurface.SameSense 属性的目的是为验证目的提供额外信息。SameSense 为 TRUE 表示表面法线和面法线相同,SameSense 为 FALSE 表示它们方向相反。

具有 IfcEdgeCurve 几何表示的重复使用边在 3D 坐标空间中定义边。在某些情况下,特别是在使用基本曲面或扫描曲面时,存在将 3D (x, y, z) IfcEdgeCurve 映射到相邻曲面以确定这些曲面边界时的不精确风险。可选的 CurveOnSurface 在曲面的参数空间内定义 2D (u, v) 边。它可用于确定 3D IfcEdgeCurve 映射到此曲面上的正确性。

示例
图 8.20.3.13.A — 曲面上的曲线表示

注意:根据 ISO/CD 10303-42:1992 的定义 定向边是从另一条边构造的边,并包含一个布尔方向标志,以指示构造边的方向是否与原始边的方向一致。除了方向可能不同外,定向边等同于原始边。

实体建模系统中的常见做法是拥有一个表示边的"使用"或"遍历"的实体。这种"使用"实体明确表示在流形实体中每条边必须被精确遍历两次的要求,每个方向一次。"使用"功能由边子类型定向边提供。

注意:实体改编自 ISO 10303-42 中定义的 oriented_edge

IFC4 Add2 变更:添加了 CurveOnSurface 属性。

8.20.3.13.2 实体继承(Entity inheritance)

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

IfcEdge (2)
1 EdgeStart IfcVertex

边的起点(顶点)。

2 EdgeEnd IfcVertex

边的终点(顶点)。同一个顶点可以同时用于 EdgeStart 和 EdgeEnd。

点击显示 4 个隐藏的继承特性 点击隐藏 4 个继承特性
IfcOrientedEdge (4)
3 EdgeElement IfcEdge

用于构造此定向边的边实体。

4 Orientation IfcBoolean

布尔值,如果为 TRUE,则使用的拓扑方向与边元素从起始顶点到结束顶点的方向一致。如果为 FALSE,则相反。

1* EdgeStart IfcVertex

此属性是形式化派生的

IfcBooleanChoose 
(Orientation, EdgeElement.EdgeStart, EdgeElement.EdgeEnd)

定向边的起始顶点。它在考虑方向后从边元素的顶点派生。

2* EdgeEnd IfcVertex

此属性是形式化派生的

IfcBooleanChoose 
(Orientation, EdgeElement.EdgeEnd, EdgeElement.EdgeStart)

定向边的结束顶点。它在考虑方向后从边元素的顶点派生。

表 8.20.3.13.B

8.20.3.13.4 形式化命题(Formal propositions)

名称 描述
EdgeElementNotOriented

边元素不应是定向边。

NOT('IFC4X3_DEV_62887e3f.IFCORIENTEDEDGE' IN TYPEOF(EdgeElement))
表 8.20.3.13.C

8.20.3.13.5 形式化表示(Formal representation)

ENTITY IfcOrientedEdge
 SUBTYPE OF (IfcEdge);
	EdgeElement : IfcEdge;
	Orientation : IfcBoolean;
 DERIVE
	 SELF\IfcEdge.EdgeStart : IfcVertex := IfcBooleanChoose 
(Orientation, EdgeElement.EdgeStart, EdgeElement.EdgeEnd);
	 SELF\IfcEdge.EdgeEnd : IfcVertex := IfcBooleanChoose 
(Orientation, EdgeElement.EdgeEnd, EdgeElement.EdgeStart);
 WHERE
	EdgeElementNotOriented : NOT('IFC4X3_DEV_62887e3f.IFCORIENTEDEDGE' IN TYPEOF(EdgeElement));
END_ENTITY;

8.20.3.13.6 参考文献