IFC 4.3.x development

8.20.3.1 IfcAdvancedFace

Change log

IFC4

added

IFC4X1

additionswhere_rulesApplicableEdgeCurves
additionswhere_rulesApplicableSurface
additionswhere_rulesRequiresEdgeCurve
deletionswhere_rulesApplicableEdgeCurves
deletionswhere_rulesApplicableSurface
deletionswhere_rulesRequiresEdgeCurve

IFC4X2

additionswhere_rulesApplicableEdgeCurves
additionswhere_rulesApplicableSurface
additionswhere_rulesRequiresEdgeCurve
deletionswhere_rulesApplicableEdgeCurves
deletionswhere_rulesApplicableSurface
deletionswhere_rulesRequiresEdgeCurve

IFC4X3_RC3

additionswhere_rulesApplicableEdgeCurves
additionswhere_rulesApplicableSurface
additionswhere_rulesRequiresEdgeCurve
deletionswhere_rulesApplicableEdgeCurves
deletionswhere_rulesApplicableSurface
deletionswhere_rulesRequiresEdgeCurve

8.20.3.1.1 Semantic definitions at the entity

An advanced face is a specialization of a face surface that has to meet requirements on using particular topological and geometric representation items for the definition of the faces, edges and vertices.

An IfcAdvancedFace is restricted to:

In case of closed faces with periodic surfaces, such as cylindrical or spherical surfaces, the following applies:

  • the edges of the closed surface, in case of a cylindrical surface the upper and lower cap, refer to the same instance of IfcVertexPoint twice,
  • no IfcFaceOuterBound is provided, or the IfcFaceOuterBound is constructed using an IfcSeamCurve at the periodic end of the underlying closed surface, in case of a cylindrical surface at 0./360. degree.

"cylindrical surface"

NOTE  Entity adapted from advanced_face defined in ISO 10303-511.

HISTORY  New entity in IFC4

Formal Propositions

ApplicableSurface

The geometry used in the definition of the face shall be restricted. The face geometry shall be an IfcElementarySurface, IfcSweptSurface, or IfcBSplineSurface.

RequiresEdgeCurve

The geometry of all bounding edges of the face shall be fully defined as IfcEdgeCurve's.

ApplicableEdgeCurves

The types of curve used to define the geometry of edges shall be restricted to IfcLine, IfcConic, IfcPolyline, or IfcBSplineCurve.

# 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
IfcFaceSurface
2 FaceSurface IfcSurface The surface which defines the internal shape of the face. This surface may be unbounded. The domain of the face is defined by this surface and the bounding loops in the inherited attribute SELF\FaceBounds.
3 SameSense IfcBoolean This flag indicates whether the sense of the surface normal agrees with (TRUE), or opposes (FALSE), the sense of the topological normal to the face.

8.20.3.1.1 Entity inheritance

dot_inheritance IfcAdvancedFace IfcAdvancedFace IfcFaceSurface IfcFaceSurface IfcAdvancedFace->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.1.2 Formal representations

ENTITY IfcAdvancedFace
 SUBTYPE OF (IfcFaceSurface);
 WHERE
	ApplicableSurface : SIZEOF (
['IFC4X3_DEV_a1492713.IFCELEMENTARYSURFACE',
 'IFC4X3_DEV_a1492713.IFCSWEPTSURFACE',
 'IFC4X3_DEV_a1492713.IFCBSPLINESURFACE'] *
TYPEOF(SELF\IfcFaceSurface.FaceSurface)) = 1;
	RequiresEdgeCurve : SIZEOF(QUERY (ElpFbnds <* 
  QUERY (Bnds <* SELF\IfcFace.Bounds |
    'IFC4X3_DEV_a1492713.IFCEDGELOOP' IN TYPEOF(Bnds.Bound)) |
     NOT (SIZEOF (QUERY (Oe <* ElpFbnds.Bound\IfcEdgeLoop.EdgeList |
       NOT('IFC4X3_DEV_a1492713.IFCEDGECURVE' IN 
       TYPEOF(Oe\IfcOrientedEdge.EdgeElement)
  ))) = 0
))) = 0;
	ApplicableEdgeCurves : SIZEOF(QUERY (ElpFbnds <* 
  QUERY (Bnds <* SELF\IfcFace.Bounds |
    'IFC4X3_DEV_a1492713.IFCEDGELOOP' IN TYPEOF(Bnds.Bound)) |
     NOT (SIZEOF (QUERY (Oe <* ElpFbnds.Bound\IfcEdgeLoop.EdgeList |
       NOT (SIZEOF (['IFC4X3_DEV_a1492713.IFCLINE',
                     'IFC4X3_DEV_a1492713.IFCCONIC',
                     'IFC4X3_DEV_a1492713.IFCPOLYLINE',
                     'IFC4X3_DEV_a1492713.IFCBSPLINECURVE'] *
         TYPEOF(Oe\IfcOrientedEdge.EdgeElement\IfcEdgeCurve.EdgeGeometry)) = 1 )
  )) = 0
))) = 0;
END_ENTITY;