IfcFace

IfcFace

实体定义

注:定义依据ISO/CD 10303-42:1992

面是维度为2的拓扑实体,对应于由环界定的一块表面的直观概念。它的域,如果存在的话,是Rm中有向的、连通的、有限的2-流形。面域不应有手柄,但可以有孔,每个孔由一个环界定。面的基本几何体的域(如果存在)不包含其边界,并且0<Ş<∞。

 

面由其边界循环表示,边界循环被定义为面边界。一个面有一个拓扑法线n,与循环的切线是t。对于一个用定义的几何体包围面的循环,叉积n x t指向面的内部。也就是说,如果我们认为法线n指向上,从上面看,每个循环都绕着面逆时针运行。每个循环都有一个BOOLEAN标志,表示循环方向是相对于面法线定向(TRUE)还是应该反转(FALSE)。

 

面应至少有一个边界,且环不得相交。可以选择将一个循环区分为面的外循环。如果是这样,它建立了一种在平面中嵌入面域的首选方式,其中面的其他边界环位于外部边界内。因为面域是弧形连接的,所以任何内部循环都不会包含任何其他循环。无论选择平面中的哪个嵌入,这都是正确的。

 

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

 

 

其中Gli是第i个循环的图亏格。

注:实体适用于ISO 10303-42中定义的表面。

历史IFC1.0中的新实体

非正式提议:

  1. 任何边缘均不得被表面引用两次以上。
  2. 面的不同面边界不应具有公共顶点。
  3. 如果存在几何体,则同一面的不同环不得相交。
  4. 面应满足欧拉方程:(顶点数)-(边数)-。

 

 

 

Attribute definitions

#AttributeTypeCardinalityDescriptionC
1 Bounds IfcFaceBound S[1:?] Boundaries of the face. X
  HasTextureMaps IfcTextureMap
@MappedTo
S[0:?]   X

Formal Propositions

RuleDescription
HasOuterBound At most one of the bounds shall be of the type IfcFaceOuterBound.
NOTE  If the IfcFace is used within an IfcFacetedBrep, where all faces are implicitly planar and having a disctinct outer bound, exactly one of the bounds shall be of the type IfcFaceOuterBound.
 

 

 

 

Attribute inheritance

#AttributeTypeCardinalityDescriptionC
IfcRepresentationItem
  LayerAssignment IfcPresentationLayerAssignment
@AssignedItems
S[0:1] Assignment of the representation item to a single or multiple layer(s). The LayerAssignments can override a LayerAssignments of the IfcRepresentation it is used within the list of Items. X
  StyledByItem IfcStyledItem
@Item
S[0:1] Reference to the IfcStyledItem that provides presentation information to the representation, e.g. a curve style, including colour and thickness to a geometric curve. X
IfcTopologicalRepresentationItem
IfcFace
1 Bounds IfcFaceBound S[1:?] Boundaries of the face. X
  HasTextureMaps IfcTextureMap
@MappedTo
S[0:?]   X
 

 

EXPRESS Specification

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

 

 

 

##################################

posted @ 2023-08-08 08:11  西北逍遥  阅读(55)  评论(0)    收藏  举报