IFC 4.3.2.20251031 (IFC4X3_ADD2) under development

8.20.3.7 IfcFace(面)

8.20.3.7.1 语义定义(Semantic definition)

IfcFace 是一种用于定义壳体表面(由环界定)的拓扑实体。

注意 在正确构造的边界表示模型中,面法向将指向实体外部,且每条边均被使用两次:一次正向、一次反向。面法向完全由界定该面的 IfcEdgeIfcOrientedEdge 的连续方向定义。如果面的所有边按照边方向以逆时针方式连接,则面法向将指向外侧。IfcFaceSurface 的方向或 IfcFaceSurface.SameSense 属性的值对面的方向没有影响。

注意 根据 ISO/CD 10303-42:1992 的定义 面是一个二维拓扑实体,对应于由环界定的表面片段的直观概念。如果存在,其域是 R^m^ 中的一个有向、连通、有限的二维流形。面域不得有柄,但可以有孔,每个孔由一个环界定。如果存在,面基础几何的域不包含其边界,且 0 < Ξ < ∞。

面由其边界环表示,这些环被定义为面边界。面具有拓扑法向 n,环的切线为 t。对于界定具有已定义几何的面的环,叉积 n x t 指向面的内部。也就是说,如果我们认为法向 n 指向上方,则每个环在从上往下看时围绕面逆时针运行。每个环关联一个布尔标志,以表示环方向是相对于面法向定向(TRUE)还是应反转(FALSE)。

面应至少有一个边界,且环不得相交。一个环可选地区分为面的外环。如果是这样,它确立了将面域嵌入平面的一种优选方式,其中面的其他边界环位于外边界之内。由于面域是弧连通的,任何内环都不会包含任何其他环。无论选择哪种平面嵌入,这一点都成立。

由面的环引用的边和顶点形成一个图,其中各个环是连通分量。该图的欧拉方程 (1) 变为:

图片 其中 G^l^~i~ 是第 i 个环的图亏格。
Figure 8.20.3.7.A

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

非形式化命题

  1. 任何边不应被该面引用超过两次。
  2. 面的不同面边界应没有公共顶点。
  3. 如果存在几何,同一面的不同环不应相交。
  4. 面应满足欧拉方程:(顶点数)-(边数)-(环数)+(环的亏格之和)= 0。

8.20.3.7.2 实体继承(Entity inheritance)

8.20.3.7.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 个继承特性
IfcFace (2)
1 Bounds SET [1:?] OF IfcFaceBound

面的边界。

HasTextureMaps SET [0:?] OF IfcTextureMap FOR MappedTo

无可用描述

表 8.20.3.7.B

8.20.3.7.4 形式化命题(Formal propositions)

名称 描述
HasOuterBound

最多一个边界应为 IfcFaceOuterBound 类型。

注意 如果 IfcFaceIfcFacetedBrep 中使用,其中所有面都是隐式平面且具有明确的外边界,则恰好一个边界应为 IfcFaceOuterBound 类型。

SIZEOF(QUERY(temp <* Bounds | 'IFC4X3_DEV_62887e3f.IFCFACEOUTERBOUND' IN TYPEOF(temp))) <= 1
表 8.20.3.7.C

8.20.3.7.5 形式化表示(Formal representation)

ENTITY IfcFace
 SUPERTYPE OF (ONEOF
	(IfcFaceSurface))
 SUBTYPE OF (IfcTopologicalRepresentationItem);
	Bounds : SET [1:?] OF IfcFaceBound;
 INVERSE
	HasTextureMaps : SET [0:?] OF IfcTextureMap FOR MappedTo;
 WHERE
	HasOuterBound : SIZEOF(QUERY(temp <* Bounds | 'IFC4X3_DEV_62887e3f.IFCFACEOUTERBOUND' IN TYPEOF(temp))) <= 1;
END_ENTITY;

8.20.3.7.6 参考文献