IfcSectionedSurface

Natural language names
Change log
ItemSPFXMLChangeDescription
IFC4x2 to IFC4x3_RC1
    IfcSectionedSurfaceADDED
IFC4x3_RC1 to IFC4x3_RC2
    IfcSectionedSurface
      CrossSectionPositionsXXMODIFIEDType changed from IfcDistanceExpression to IfcPointByDistanceExpression.
IFC4x3_RC3 to IFC4x3_RC4
    IfcSectionedSurfaceMOVEDSchema changed from IfcRoad to IfcGeometricModelResource.
IFC4x3_RC4 Update
    IfcSectionedSurface
      CrossSectionPositionsXXMODIFIEDType changed from IfcPointByDistanceExpression to IfcAxis2PlacementLinear.
      FixedAxisVerticalXDELETED
Semantic definitions at the entity
Entity definition

A surface constructed by sweeping potentially varying open cross sections along a curve horizontally (or near horizontally). The surface is generated by sweeping the CrossSections between CrossSectionPositions; linear interpolation is assumed, unless transitions curves between cross section points are indicated by OpenCrossProfileDef.Tags.

The profile normal is derived from the associated IfcAxis2PlacementLinear, not necessarily the tangent of the Directrix. The profile Y axis is oriented according to Axis attribute of IfcAxis2PlacementLinear and the X is derived from the cross product of Directrix and the Axis attribute of IfcAxis2PlacementLinear.

Figure 500 illustrates an IfcSectionedSurface defined using IfcOpenCrossProfileDef

"sectioned surfacequot;

Figure 500 — Sectioned surface using IfcOpenCrossProfileDef

In case of branching longitudinal breaklines, the IfcSectionedSurface shall use IfcOpenCrossProfileDef instances with varying number of cross section points. In that case, the point in two consecutive cross sections that are connected are identified by the same tag value.

Figure 501 illustrates an IfcSectionedSurface featuring branching longitudinal breaklines

"sectioned surfacequot;

Figure 501 — Sectioned surface with branching longitudinal breaklines

Informal Propositions: No two consecutive sections shall intersect.

Attribute definitions
#AttributeTypeCardinalityDescription G
1DirectrixIfcCurve The curve used to define the sweeping operation X
2CrossSectionPositionsIfcAxis2PlacementLinearL[2:?] List of positions in sequentially increasing order paired with CrossSections, indicating the position of the corresponding section along the Directrix. X
3CrossSectionsIfcProfileDefL[2:?] List of cross sections in sequential order along the Directrix X
Formal Propositions
RuleDescription
DirectrixIs3DThe curve entity which is the underlying directrix shall have the dimensionality of 3.
AreaProfileTypesOnly open curve profile types are allowed as cross sections.
SectionsSameTypeThe entity type for each section must be the same.
CorrespondingSectionPositionsThe set of cross sections and the set of cross section placements shall be of the same size.
NoOffsetsDistance expressions must not use longitudinal, laterial or vertical offsets.
Inherited definitions from supertypes
Entity inheritance IfcSurface IfcGeometricRepresentationItem IfcRepresentationItem
Attribute inheritance
#AttributeTypeCardinalityDescriptionG
IfcRepresentationItem
LayerAssignmentIfcPresentationLayerAssignment
@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.
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.
X
StyledByItemIfcStyledItem
@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.
IFC2x3 CHANGE  The inverse attribute StyledByItem has been added.
X
IfcGeometricRepresentationItem
IfcSurface
Dim
:=3
IfcDimensionCountThe space dimensionality of IfcSurface. It is always a three-dimensional geometric representation item.
IFC4 CHANGE Derived attribute promoted from subtypes.
X
IfcSectionedSurface
1DirectrixIfcCurve The curve used to define the sweeping operation X
2CrossSectionPositionsIfcAxis2PlacementLinearL[2:?] List of positions in sequentially increasing order paired with CrossSections, indicating the position of the corresponding section along the Directrix. X
3CrossSectionsIfcProfileDefL[2:?] List of cross sections in sequential order along the Directrix X
Formal representations
XML Specification
 <xs:element name="IfcSectionedSurface" type="ifc:IfcSectionedSurface" substitutionGroup="ifc:IfcSurface" nillable="true"/>
 <xs:complexType name="IfcSectionedSurface">
  <xs:complexContent>
   <xs:extension base="ifc:IfcSurface">
    <xs:sequence>
     <xs:element name="Directrix" type="ifc:IfcCurve" nillable="true"/>
     <xs:element name="CrossSectionPositions">
      <xs:complexType>
       <xs:sequence>
        <xs:element ref="ifc:IfcAxis2PlacementLinear" minOccurs="2" maxOccurs="unbounded"/>
       </xs:sequence>
       <xs:attribute ref="ifc:itemType" fixed="ifc:IfcAxis2PlacementLinear"/>
       <xs:attribute ref="ifc:cType" fixed="list"/>
       <xs:attribute ref="ifc:arraySize" use="optional"/>
      </xs:complexType>
     </xs:element>
     <xs:element name="CrossSections">
      <xs:complexType>
       <xs:sequence>
        <xs:element ref="ifc:IfcProfileDef" minOccurs="2" maxOccurs="unbounded"/>
       </xs:sequence>
       <xs:attribute ref="ifc:itemType" fixed="ifc:IfcProfileDef"/>
       <xs:attribute ref="ifc:cType" fixed="list"/>
       <xs:attribute ref="ifc:arraySize" use="optional"/>
      </xs:complexType>
     </xs:element>
    </xs:sequence>
   </xs:extension>
  </xs:complexContent>
 </xs:complexType>
EXPRESS Specification
ENTITY IfcSectionedSurface
 SUBTYPE OF (IfcSurface);
  Directrix : IfcCurve;
  CrossSectionPositions : LIST [2:?] OF IfcAxis2PlacementLinear;
  CrossSections : LIST [2:?] OF IfcProfileDef;
 WHERE
  DirectrixIs3D : Directrix.Dim = 3;
  AreaProfileTypes : SIZEOF(QUERY(temp <* CrossSections | temp.ProfileType <> IfcProfileTypeEnum.CURVE)) = 0;
  SectionsSameType : SIZEOF(QUERY(temp <* CrossSections | TYPEOF(CrossSections[1]) :<>: TYPEOF(temp))) = 0;
  CorrespondingSectionPositions : SIZEOF(CrossSections) = SIZEOF(CrossSectionPositions);
  NoOffsets : SIZEOF(QUERY(temp <* CrossSectionPositions | EXISTS(temp.Location.OffsetLateral) OR EXISTS(temp.Location.OffsetVertical) OR EXISTS(temp.Location.OffsetLongitudinal))) = 0;
END_ENTITY;

Link to EXPRESS-G diagram EXPRESS-G diagram

Link to this page  Link to this page