8.9.3.6 IfcBSplineCurveWithKnots
8.9.3.6.1 Semantic definition
The IfcBSplineCurveWithKnots is a spline curve parameterized by spline functions for which the knot values are explicitly given.
All knot multiplicities except the first and the last shall be in the range 1,...,d; the first and last may have a maximum value of d + 1. In evaluating the basis functions, a knot u of, e.g., multiplicity 3 is interpreted as a sequence u, u, u,; in the knot array.
8.9.3.6.2 Entity inheritance
-
- IfcCurve
- IfcAnnotationFillArea
- IfcBooleanResult
- IfcBoundingBox
- IfcCartesianPointList
- IfcCartesianTransformationOperator
- IfcCsgPrimitive3D
- IfcDirection
- IfcFaceBasedSurfaceModel
- IfcFillAreaStyleHatching
- IfcFillAreaStyleTiles
- IfcGeometricSet
- IfcHalfSpaceSolid
- IfcLightSource
- IfcPlacement
- IfcPlanarExtent
- IfcPoint
- IfcSectionedSpine
- IfcSegment
- IfcShellBasedSurfaceModel
- IfcSolidModel
- IfcSurface
- IfcTessellatedItem
- IfcTextLiteral
- IfcVector
8.9.3.6.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. |
|
IfcCurve (1) | |||
* | Dim | IfcDimensionCount |
This attribute is formally derived.
The space dimensionality of this abstract class, defined differently for all subtypes, i.e. for IfcLine, IfcConic and IfcBoundedCurve. |
IfcBSplineCurve (7) | |||
1 | Degree | IfcInteger |
The algebraic degree of the basis functions. |
2 | ControlPointsList | LIST [2:?] OF IfcCartesianPoint |
The list of control points for the curve. |
3 | CurveForm | IfcBSplineCurveForm |
Used to identify particular types of curve; it is for information only. |
4 | ClosedCurve | IfcLogical |
Indication of whether the curve is closed; it is for information only. |
5 | SelfIntersect | IfcLogical |
Indication whether the curve self-intersects or not; it is for information only. |
* | UpperIndexOnControlPoints | IfcInteger |
This attribute is formally derived.
The upper index on the array of control points; the lower index is 0. This value is derived from the control points list. |
* | ControlPoints | ARRAY [0:UpperIndexOnControlPoints] OF IfcCartesianPoint |
This attribute is formally derived.
The array of control points used to define the geometry of the curve. This is derived from the list of control points. |
Click to show 10 hidden inherited attributes Click to hide 10 inherited attributes | |||
IfcBSplineCurveWithKnots (4) | |||
6 | KnotMultiplicities | LIST [2:?] OF IfcInteger |
The multiplicities of the knots. This list defines the number of times each knot in the knots list is to be repeated in constructing the knot array. |
7 | Knots | LIST [2:?] OF IfcParameterValue |
The list of distinct knots used to define the B-spline basis functions. |
8 | KnotSpec | IfcKnotType |
The description of the knot type. This is for information only. |
* | UpperIndexOnKnots | IfcInteger |
This attribute is formally derived.
The upper index on the knot arrays; the lower index is 1. |
8.9.3.6.4 Formal propositions
Name | Description |
---|---|
ConsistentBSpline |
The function IfcConstraintsParamBSpline returns TRUE if no inconsistencies in the parametrisation of the B-spline are found. |
|
|
CorrespondingKnotLists |
The number of elements in the knot multiplicities list shall be equal to the number of elements in the knots list. |
|
8.9.3.6.5 Examples
8.9.3.6.6 Formal representation
ENTITY IfcBSplineCurveWithKnots
SUPERTYPE OF (ONEOF
(IfcRationalBSplineCurveWithKnots))
SUBTYPE OF (IfcBSplineCurve);
KnotMultiplicities : LIST [2:?] OF IfcInteger;
Knots : LIST [2:?] OF IfcParameterValue;
KnotSpec : IfcKnotType;
DERIVE
UpperIndexOnKnots : IfcInteger := SIZEOF(Knots);
WHERE
ConsistentBSpline : IfcConstraintsParamBSpline(Degree, UpperIndexOnKnots,
UpperIndexOnControlPoints, KnotMultiplicities, Knots);
CorrespondingKnotLists : SIZEOF(KnotMultiplicities) = UpperIndexOnKnots;
END_ENTITY;