Represent Sectioned Spine
Overview
Identifies the information requirements for provision of a sectioned spine representation.
A sectioned spine is a shape representation of the shape of a three dimensional object composed of a spine curve which describes a linear path through the product whose shape is being represented and a number of planar cross sections each of which is normal to the tangent of the spine curve at that point. 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 is always a composite curve whilst each of its segments (composite curve segments) correspond to the part between exactly two consecutive cross-sections.
Results
Specification of a sectioned spine is established.
| Description | Entity/Pset/Functional Part | MAN | REC | OPT |
|---|---|---|---|---|
| Determine the product or representation map for which the sectioned spine representation is to be defined | ||||
| Define the spine curve that specifies the path along which the cross sections line | IfcSectionedSpine.SpineCurve::fp_represent_composite_curve | |||
| Define the profiles of the cross sections that are to be placed along the path of the spine curve.
A minimum of two cross sections must be used to define a sectioned spine and it is anticipated that this will form the basis of normal usage (e.g. for a concentric or eccentric reducer in a pipeline or duct route). There is no upper limit to the number of sections that can be applied. For instance, to define a duct bend with different inlet and outlet sizes (as in the example diagrams above), three cross sections would be required. |
IfcSectionedSpine.CrossSections ::fp_represent_profile | |||
| For each cross section that is to be placed along the path of the spine curve, the placement must be specified as a 3 dimensional placement: | IfcSectionedSpine.CrossSectionPositions::fp_place (3D) | |||
| The space dimensionality for the sectioned spine is derived from the number of coordinates specified. For a sectioned spine, the value of this attribute is always set to 3. |
IfcSectionedSpine.Dim::INTEGER = 3 |
IFC Entities Required
- IfcGeometricRepresentationItem
- IfcRepresentationItem
- IfcSectionedSpine
IFC Datatypes Required
- IfcDimensionCount
IFC Functions Required
- -
IDM Functional Parts Required
- fp_represent_composite_curve
- fp_place (3D)
- fp_represent_profile
- fp_represent_profile_circle
- fp_represent_profile_rectangle
EXPRESS-G
EXPRESS Schema
SCHEMA FP_REPRESENT_SECTIONED_SPINE;
TYPE IfcDimensionCount = INTEGER;
WHERE
WR1 : { 0 < SELF <= 3 };
END_TYPE;
ENTITY IfcGeometricRepresentationItem
ABSTRACT SUPERTYPE
SUBTYPE OF(IfcRepresentationItem);
END_ENTITY;
ENTITY IfcRepresentationItem
ABSTRACT SUPERTYPE;
END_ENTITY;
ENTITY IfcSectionedSpine
SUBTYPE OF(IfcGeometricRepresentationItem);
SpineCurve : fp_represent_composite_curve;
CrossSections : LIST [2:?] OF fp_represent_profile;
CrossSectionPositions : LIST [2:?] OF fp_place;
DERIVE
Dim : IfcDimensionCount := 3;
WHERE
WR1 : SIZEOF(CrossSections) = SIZEOF(CrossSectionPositions);
WR2 : SIZEOF(QUERY(temp <* CrossSections | CrossSections[1].ProfileType <> temp.ProfileType)) = 0;
WR3 : SpineCurve.Dim = 3;
END_ENTITY;
ENTITY fp_represent_composite_curve;
END_ENTITY;
ENTITY fp_represent_profile;
END_ENTITY;
ENTITY fp_place;
END_ENTITY;
ENTITY fp_represent_profile_circle;
END_ENTITY;
ENTITY fp_represent_profile_rectangle;
END_ENTITY;
END_SCHEMA;