Class Ifc4::IfcSectionedSpine

Nested Relationships

This class is a nested type of Struct Ifc4.

Inheritance Relationships

Base Type

Class Documentation

class Ifc4::IfcSectionedSpine : public Ifc4::IfcGeometricRepresentationItem

Definition from ISO 10303-42:1999: A sectioned spine is a representation of the shape of a three dimensional object composed of a spine curve and a number of planar cross sections. The shape is defined between the first element of cross sections and the last element of this set.

NOTE A sectioned spine may be used to represent a surface or a solid but the interpolation of the shape between the cross-sections is not defined. For the representation of a solid all cross-sections are closed curves.

A sectioned spine (IfcSectionedSpine) is a representation of the shape of a three dimensional object composed by a number of planar cross sections, and a spine curve. The shape is defined between the first element of cross sections and the last element of the cross sections. A sectioned spine may be used to represent a surface or a solid but the interpolation of the shape between the cross sections is not defined. For the representation of a solid all cross sections are areas. For representation of a surface all cross sections are curves. The cross sections are defined as profiles, whereas the consecutive profiles may be derived by a transformation of the start profile or the previous consecutive profile. The spine curve shall be of type IfcCompositeCurve, each of its segments (IfcCompositeCurveSegment) shall correspond to the part between exactly two consecutive cross-sections.

NOTE: Corresponding ISO 10303 entity: sectioned spine. Please refer to ISO/DIS 10303-42-ed2:1999, p. 282 for the definition of the formal standard. The cross sections are defined in IFC as IfcProfileDef. The position coordinate systems are added.

HISTORY New entity in IFC Release 2x.

Figure 268 illustrates an example of an IfcSectionedSpine.

The SpineCurve is given by an IfcCompositeCurve with two Segments. The Segments[1] has a ParentCurve of type IfcPolyline and a Transition = CONTSAMEGRADIENT. The Segments[2] has a ParentCurve of type IfcTrimmedCurve and a Transition = DISCONTINUOUS. Each CrossSectionPosition lies at a start or end point of the Segments. Each CrossSections are inserted by the CrossSectionPositions. The first two cross sections are of type IfcRectangleProfileDef, the third is of type IfcDerivedProfileDef.

Figure 268 — Sectioned spine geometry

Figure 269 illustrates the final result of the IfcSectionedSpine. The body (shown transparently) is not fully defined by the exchange definition.

Figure 269 — Sectioned spine result

Informal propositions

none of the cross sections, after being placed by the cross section positions, shall intersect none of the cross sections, after being placed by the cross section positions, shall lie in the same plane the local origin of each cross section position shall lie at the beginning or end of a composite curve segment.

Public Types

typedef IfcTemplatedEntityList<IfcSectionedSpine> list

Public Functions

::Ifc4::IfcCompositeCurve *SpineCurve() const

A single composite curve, that defines the spine curve. Each of the composite curve segments correspond to the part between two cross-sections.

void setSpineCurve(::Ifc4::IfcCompositeCurve *v)
IfcTemplatedEntityList<::Ifc4::IfcProfileDef>::ptr CrossSections() const

A list of at least two cross sections, each defined within the xy plane of the position coordinate system of the cross section. The position coordinate system is given by the corresponding list CrossSectionPositions.

void setCrossSections(IfcTemplatedEntityList<::Ifc4::IfcProfileDef>::ptr v)
IfcTemplatedEntityList<::Ifc4::IfcAxis2Placement3D>::ptr CrossSectionPositions() const

Position coordinate systems for the cross sections that form the sectioned spine. The profiles defining the cross sections are positioned within the xy plane of the corresponding position coordinate system.

void setCrossSectionPositions(IfcTemplatedEntityList<::Ifc4::IfcAxis2Placement3D>::ptr v)
const IfcParse::entity &declaration() const
IfcSectionedSpine(IfcEntityInstanceData *e)
IfcSectionedSpine(::Ifc4::IfcCompositeCurve *v1_SpineCurve, IfcTemplatedEntityList<::Ifc4::IfcProfileDef>::ptr v2_CrossSections, IfcTemplatedEntityList<::Ifc4::IfcAxis2Placement3D>::ptr v3_CrossSectionPositions)

Public Static Functions

const IfcParse::entity &Class()