added |

The *IfcBSplineCurveWithKnots* is a spline curve parameterized by spline functions for which the knot values are explicitly given.

NOTE Definition according to ISO/CD 10303-42:1992

This is the type of b-spline curve for which the knot values are explicitly given. This subtype shall be used to represent non-uniform B-spline curves and may be used for other knot types.

LetLdenote the number of distinct values amongst thed+k+2 knots in the knot list;Lwill be referred to as the ‘upper index on knots’. Letm~j~denote the multiplicity (i.e., number of repetitions) of the _j_th distinct knot. Then:

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 ofd+ 1. In evaluating the basis functions, a knotuof, e.g., multiplicity 3 is interpreted as a sequenceu,u,u,; in the knot array.NOTE Entity adapted from

b_spline_curve_with_knotsdefined in ISO10303-42.HISTORY New entity in IFC4.

# | Attribute | Type | Description |
---|---|---|---|

IfcRepresentationItem | |||

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. > 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. | |

IfcGeometricRepresentationItem | |||

IfcCurve | |||

Dim | INVALID | The space dimensionality of this abstract class, defined differently for all subtypes, i.e. for IfcLine, IfcConic and IfcBoundedCurve. | |

IfcBoundedCurve | |||

IfcBSplineCurve | |||

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 | INVALID | The upper index on the array of control points; the lower index is 0. This value is derived from the control points list. | |

ControlPoints | INVALID | The array of control points used to define the geometry of the curve. This is derived from the list of control points. | |

IfcBSplineCurveWithKnots | |||

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 | INVALID | The upper index on the knot arrays; the lower index is 1. |

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;