Sectioned Solid Horizontal |
Item | SPF | XML | Change | Description | IFC4x1 Final 4.1.0.0 |
---|---|---|---|---|
IfcSectionedSolidHorizontal | ADDED | IFC4x3_RC1 to IFC4x3_RC2 | ||
IfcSectionedSolidHorizontal | ||||
CrossSectionPositions | X | X | MODIFIED | Type changed from IfcDistanceExpression to IfcPointByDistanceExpression. | IFC4x3_RC2 to IFC4x3_RC3 |
IfcSectionedSolidHorizontal | ||||
CrossSectionPositions | X | X | MODIFIED | Type changed from IfcPointByDistanceExpression to IfcCurveMeasureSelect. | IFC4x3_RC4 Update |
IfcSectionedSolidHorizontal | ||||
FixedAxisVertical | X | DELETED |
An IfcSectionedSolidHorizontal is a solid model constructed by sweeping potentially varying cross sections along a curve horizontally.
The solid is generated by sweeping the CrossSections between CrossSectionPositions with linear interpolation between profile points with the same tag along the directrix. The profile normal is derived from the associated IfcAxis2PlacementLinear, not necessarily the tangent of the Directrix. The profile X axis is the direction of RefDirection from IfcAxis2PlacementLinear, and the profile Y axis is the direction of Axis.
For sections having cross-section rotated according to a single super-elevation, IfcDerivedProfileDef may be used to indicate such rotation with each ParentProfile referring to the same underlying profile. For sections having cross-section transformed according to multiple super-elevations with points varying independently, each profile may be of a different instance but of same type (e.g. IfcArbitraryClosedProfileDef), and may optionally have cross section points associated to string lines ("guide curves") by matching labels using IfcIndexedPolyCurve with IfcCartesianPointList2D.TagList.
Figure 497 illustrates four girders of a bridge having a constant parameterized profile, two guardrails having a constant arbitrary profile (one of them mirrored), and a bridge deck having a variable arbitrary profile.
Figure 497 — Sectioned solid horizontal |
Informal Propositions:
# | Attribute | Type | Cardinality | Description | G |
---|---|---|---|---|---|
3 | CrossSectionPositions | IfcAxis2PlacementLinear | L[2:?] | Position coordinate systems in sequentially increasing order paired with CrossSections, indicating the position of the corresponding section along the Directrix. | X |
Rule | Description |
---|---|
CorrespondingSectionPositions | The set of cross sections and the set of cross section positions shall be of the same size. |
NoLongitudinalOffsets | Distance expressions must not use longitudinal offsets. |
# | Attribute | Type | Cardinality | Description | G |
---|---|---|---|---|---|
IfcRepresentationItem | |||||
LayerAssignment | IfcPresentationLayerAssignment @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 | |
StyledByItem | IfcStyledItem @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 | |||||
IfcSolidModel | |||||
Dim :=3 | IfcDimensionCount | The space dimensionality of this class, it is always 3. | X | ||
IfcSectionedSolid | |||||
1 | Directrix | IfcCurve | The curve used to define the sweeping operation. | X | |
2 | CrossSections | IfcProfileDef | L[2:?] | List of cross sections in sequential order along the Directrix. | X |
IfcSectionedSolidHorizontal | |||||
3 | CrossSectionPositions | IfcAxis2PlacementLinear | L[2:?] | Position coordinate systems in sequentially increasing order paired with CrossSections, indicating the position of the corresponding section along the Directrix. | X |
<xs:element name="IfcSectionedSolidHorizontal" type="ifc:IfcSectionedSolidHorizontal" substitutionGroup="ifc:IfcSectionedSolid" nillable="true"/>
<xs:complexType name="IfcSectionedSolidHorizontal">
<xs:complexContent>
<xs:extension base="ifc:IfcSectionedSolid">
<xs:sequence>
<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:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
ENTITY IfcSectionedSolidHorizontal
SUBTYPE OF (IfcSectionedSolid);
CrossSectionPositions : LIST [2:?] OF IfcAxis2PlacementLinear;
WHERE
CorrespondingSectionPositions : SIZEOF(CrossSections) = SIZEOF(CrossSectionPositions);
NoLongitudinalOffsets : SIZEOF(QUERY(temp <* CrossSectionPositions | EXISTS(temp.Location.OffsetLongitudinal))) = 0;
END_ENTITY;