8.8.3.37 IfcSectionedSurface
8.8.3.37.1 Semantic 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 8.8.3.37.A illustrates an IfcSectionedSurface defined 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 8.8.3.37.B illustrates an IfcSectionedSurface featuring branching longitudinal breaklines.
Informal Propositions
- No two consecutive sections shall intersect.
- If the directrix is not tangent continuous, the resulting surface is created by a miter at half angle between the two segments.
- Very sharp edges may result in nearly impossible miter; implementer agreements may define acceptable limits for tangent discontinuity or require the directrix to be tangent continuous.
- The directrix shall not intersect
8.8.3.37.2 Entity inheritance
-
- IfcSurface
- IfcAnnotationFillArea
- IfcBooleanResult
- IfcBoundingBox
- IfcCartesianPointList
- IfcCartesianTransformationOperator
- IfcCsgPrimitive3D
- IfcCurve
- IfcDirection
- IfcFaceBasedSurfaceModel
- IfcFillAreaStyleHatching
- IfcFillAreaStyleTiles
- IfcGeometricSet
- IfcHalfSpaceSolid
- IfcLightSource
- IfcPlacement
- IfcPlanarExtent
- IfcPoint
- IfcSectionedSpine
- IfcSegment
- IfcShellBasedSurfaceModel
- IfcSolidModel
- IfcTessellatedItem
- IfcTextLiteral
- IfcVector
8.8.3.37.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. |
|
IfcSurface (1) | |||
* | Dim | IfcDimensionCount |
This attribute is formally derived.
The space dimensionality of IfcSurface. It is always a three-dimensional geometric representation item. |
Click to show 3 hidden inherited attributes Click to hide 3 inherited attributes | |||
IfcSectionedSurface (3) | |||
1 | Directrix | IfcCurve |
The curve used to define the sweeping operation |
2 | CrossSectionPositions | LIST [2:?] OF IfcAxis2PlacementLinear |
List of positions in sequentially increasing order paired with CrossSections, indicating the position of the corresponding section along the Directrix. |
3 | CrossSections | LIST [2:?] OF IfcProfileDef |
List of cross sections in sequential order along the Directrix |
8.8.3.37.4 Formal propositions
Name | Description |
---|---|
AreaProfileTypes |
The profile type shall be CURVE within the list of the profiles defining the cross sections. |
|
|
CorrespondingSectionPositions |
The set of cross sections and the set of cross section placements shall be of the same size. |
|
|
DirectrixIs3D |
The curve entity which is the underlying directrix shall have the dimensionality of 3. |
|
|
NoOffsets |
Distance expressions must not use longitudinal, laterial or vertical offsets. |
|
|
SectionsSameType |
The entity type for each section must be the same. |
|
8.8.3.37.5 Formal representation
ENTITY IfcSectionedSurface
SUBTYPE OF (IfcSurface);
Directrix : IfcCurve;
CrossSectionPositions : LIST [2:?] OF IfcAxis2PlacementLinear;
CrossSections : LIST [2:?] OF IfcProfileDef;
WHERE
AreaProfileTypes : SIZEOF(QUERY(temp <* CrossSections | temp.ProfileType = IfcProfileTypeEnum.CURVE)) <> 0;
CorrespondingSectionPositions : SIZEOF(CrossSections) = SIZEOF(CrossSectionPositions);
DirectrixIs3D : Directrix.Dim = 3;
NoOffsets : SIZEOF(QUERY(temp <* CrossSectionPositions | EXISTS(temp.Location.OffsetLateral) OR EXISTS(temp.Location.OffsetVertical) OR EXISTS(temp.Location.OffsetLongitudinal))) = 0;
SectionsSameType : SIZEOF(QUERY(temp <* CrossSections | TYPEOF(CrossSections[1]) :<>: TYPEOF(temp))) = 0;
END_ENTITY;