8.20.3.7 IfcFace
8.20.3.7.1 Semantic definition
An IfcFace is topological entity used to define surface, bounded by loops, of a shell.
A face is represented by its bounding loops, which are defined as face bounds. A face has a topological normal n and the tangent to a loop is t. For a loop bounding a face with defined geometry, the cross product n x t points toward the interior of the face. That is, each loop runs counterclockwise around the face when viewed from above, if we consider the normal n to point up. With each loop is associated a BOOLEAN flag to signify whether the loop direction is oriented with respect to the face normal (TRUE) or should be reversed (FALSE).
A face shall have at least one bound, and the loops shall not intersect. One loop is optionally distinguished as the outer loop of the face. If so, it establishes a preferred way of embedding the face domain in the plane, in which the other bounding loops of the face are inside the outer bound. Because the face domain is arcwise connected, no inner loop will contain any other loop. This is true regardless of which embedding in the plane is chosen.
The edges and vertices referenced by the loops of a face form a graph, of which the individual loops are the connected components. The Euler equation (1) for this graph becomes:
Informal Propositions
 No edge shall be referenced by the face more than twice.
 Distinct face bounds of the face shall have no common vertices.
 If geometry is present, distinct loops of the same face shall not intersect.
 The face shall satisfy the Euler Equation: (number of vertices)  (number of edges)  (number of loops) + (sum of genus for loops) = 0.
8.20.3.7.2 Entity inheritance
8.20.3.7.3 Attributes
#  Attribute  Type  Description 

IfcRepresentationItem (2)  
LayerAssignment  SET [0:1] OF IfcPresentationLayerAssignment FOR AssignedItems 
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. 

StyledByItem  SET [0:1] OF IfcStyledItem FOR Item 
Reference to the IfcStyledItem that provides presentation information to the representation, e.g. a curve style, including colour and thickness to a geometric curve. 

Click to show 2 hidden inherited attributes Click to hide 2 inherited attributes  
IfcFace (2)  
1  Bounds  SET [1:?] OF IfcFaceBound 
Boundaries of the face. 
HasTextureMaps  SET [0:?] OF IfcTextureMap FOR MappedTo 
No description available. 
8.20.3.7.4 Formal propositions
Name  Description 

HasOuterBound 
At most one of the bounds shall be of the type IfcFaceOuterBound. 

8.20.3.7.5 Examples
8.20.3.7.6 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_fb8f62f.IFCFACEOUTERBOUND' IN TYPEOF(temp))) <= 1;
END_ENTITY;