IFC 4.3.x development

8.20.3.7 IfcFace

Change log

IFC4

additionsinverses HasTextureMaps
additionswhere_rulesHasOuterBound
deletionswhere_rulesWR1

IFC4X1

additionswhere_rulesHasOuterBound
deletionswhere_rulesHasOuterBound

IFC4X2

additionswhere_rulesHasOuterBound
deletionswhere_rulesHasOuterBound

IFC4X3_RC3

additionswhere_rulesHasOuterBound
deletionswhere_rulesHasOuterBound

8.20.3.7.1 Semantic definitions at the entity

An IfcFace is topological entity used to define surface, bounded by loops, of a shell.

NOTE  In a correctly constructed boundary representation model the face normals will point out of the solid and every single edge is used twice once forwards and once backwards. The face normal is solely defined by the consequitive orientations of the IfcEdge's and IfcOrientedEdge's that bound the face. If all the edges of the face are connected in a counter clockwise manner following the edge orientations the face normal will point outward. The orientation of the IfcFaceSurface, or the value of the IfcFaceSurface.SameSense attribute have no effect on the orientation of the face.

NOTE  Definition according to ISO/CD 10303-42:1992
A face is a topological entity of dimensionality 2 corresponding to the intuitive notion of a piece of surface bounded by loops. Its domain, if present, is an oriented, connected, finite 2-manifold in R^m^. A face domain shall not have handles but it may have holes, each hole bounded by a loop. The domain of the underlying geometry of the face, if present, does not contain its bounds, and 0 < Ξ < ∞.

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 counter-clockwise 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:

Image where G^l^~i~ is the graph genus of the_i_^th^ loop.

NOTE  Entity adapted from face defined in ISO 10303-42.

HISTORY  New entity in IFC1.0

Informal Propositions:

  1. No edge shall be referenced by the face more than twice.
  2. Distinct face bounds of the face shall have no common vertices.
  3. If geometry is present, distinct loops of the same face shall not intersect.
  4. 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.1 Attributes

# Attribute Type Description
IfcRepresentationItem
LayerAssignmentSET [0:1] OF IfcPresentationLayerAssignment FOR AssignedItemsAssignment 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.

> IFC2x3 CHANGE  The inverse attribute LayerAssignments has been added.

> IFC4 CHANGE  The inverse attribute LayerAssignment has been restricted to max 1. Upward compatibility for file based exchange is guaranteed.
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.



> IFC2x3 CHANGE  The inverse attribute StyledByItem has been added.
IfcTopologicalRepresentationItem
IfcFace
1 Bounds SET [1:?] OF IfcFaceBound Boundaries of the face.
HasTextureMaps SET [0:?] OF IfcTextureMap FOR MappedTo

8.20.3.7.2 Entity inheritance

dot_inheritance IfcFaceSurface IfcFaceSurface IfcFace IfcFace IfcFaceSurface->IfcFace IfcTopologicalRepresentationItem IfcTopologicalRepresentationItem IfcFace->IfcTopologicalRepresentationItem IfcTopologicalRepresentationItem_children 6 more... IfcTopologicalRepresentationItem_children->IfcTopologicalRepresentationItem IfcRepresentationItem IfcRepresentationItem IfcTopologicalRepresentationItem->IfcRepresentationItem IfcRepresentationItem_children 3 more... IfcRepresentationItem_children->IfcRepresentationItem

8.20.3.7.3 Formal representations

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