IFC 4.3.x development IfcCompositeCurveOnSurface

Change log


added Semantic definitions at the entity

The IfcCompositeCurveOnSurface is a collection of segments, based on p-curves. i.e. a curve which lies on the basis of a surface and is defined in the parameter space of that surface. The p-curve segment is a special type of a composite curve segment and shall only be used to bound a surface.

NOTE Definition according to ISO/CD 10303-42:1992
A composite curve on surface is a collection of segments which are curves on a surface. Each segment shall lie on the basis surface.

There shall be at least positional continuity between adjacent segments. The parameterization of the composite curve is obtained from the accumulation of the parametric ranges of the segments. The first segment is parameterized from 0 to l~1~, and, for i ≥ 2, the i^th^ segment is parameterized from

formula where l~k~ is the parametric length (that is, the difference between maximum and minimum parameter values) of the k^th^ curve segment.

Entity adapted from composite_curve_on_surface defined in ISO 10303-42.

HISTORY  New entity in IFC4. Attributes

# Attribute Type Description
LayerAssignmentSET [0:1] OF IfcPresentationLayerAssignment FOR AssignedItemsAssignment 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.
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.

> IFC2x3 CHANGE  The inverse attribute StyledByItem has been added.
Dim INVALID The space dimensionality of this abstract class, defined differently for all subtypes, i.e. for IfcLine, IfcConic and IfcBoundedCurve.
1 Segments LIST [1:?] OF IfcSegment The component bounded curves, their transitions and senses. The transition attribute for the last segment defines the transition between the end of the last segment and the start of the first; this transition attribute may take the value discontinuous, which indicates an open curve.

> NOTE : For IfcGradientCurve and IfcSegmentedReferenceCurve the segments define the interpolation between segment start and and segment end.
2 SelfIntersect IfcLogical Indication of whether the curve intersects itself or not; this is for information only.
NSegments INVALID The number of component curves.
ClosedCurve INVALID Indication whether the curve is closed or not; this is derived from the transition code of the last segment.
BasisSurface INVALID The surface on which the composite curve is defined. Entity inheritance

dot_inheritance IfcBoundaryCurve IfcBoundaryCurve IfcCompositeCurveOnSurface IfcCompositeCurveOnSurface IfcBoundaryCurve->IfcCompositeCurveOnSurface IfcCompositeCurve IfcCompositeCurve IfcCompositeCurveOnSurface->IfcCompositeCurve IfcGradientCurve IfcGradientCurve IfcGradientCurve->IfcCompositeCurve IfcBoundedCurve IfcBoundedCurve IfcCompositeCurve->IfcBoundedCurve IfcSegmentedReferenceCurve IfcSegmentedReferenceCurve IfcSegmentedReferenceCurve->IfcCompositeCurve IfcBoundedCurve_children 4 more... IfcBoundedCurve_children->IfcBoundedCurve IfcCurve IfcCurve IfcBoundedCurve->IfcCurve IfcCurve_children 7 more... IfcCurve_children->IfcCurve IfcGeometricRepresentationItem IfcGeometricRepresentationItem IfcCurve->IfcGeometricRepresentationItem IfcGeometricRepresentationItem_children 24 more... IfcGeometricRepresentationItem_children->IfcGeometricRepresentationItem IfcRepresentationItem IfcRepresentationItem IfcGeometricRepresentationItem->IfcRepresentationItem IfcRepresentationItem_children 3 more... IfcRepresentationItem_children->IfcRepresentationItem Formal representations

ENTITY IfcCompositeCurveOnSurface
 SUBTYPE OF (IfcCompositeCurve);
	 BasisSurface : SET [0:1] OF IfcSurface := IfcGetBasisSurface(SELF);
	SameSurface : SIZEOF(BasisSurface) > 0;