8.9.3.54 IfcRationalBSplineSurfaceWithKnots
8.9.3.54.1 Semantic definition
A rational B-spline surface with knots is a piecewise parametric rational surface described in terms of control points, and associated weight values.
The surface is to be interpreted as follows:
8.9.3.54.2 Entity inheritance
- 
- IfcSurface
 - IfcAnnotationFillArea
 - IfcBooleanResult
 - IfcBoundingBox
 - IfcCartesianPointList
 - IfcCartesianTransformationOperator
 - IfcCsgPrimitive3D
 - IfcCurve
 - IfcDirection
 - IfcFaceBasedSurfaceModel
 - IfcFillAreaStyleHatching
 - IfcFillAreaStyleTiles
 - IfcGeometricSet
 - IfcHalfSpaceSolid
 - IfcLightSource
 - IfcPlacement
 - IfcPlanarExtent
 - IfcPoint
 - IfcSectionedSpine
 - IfcSegment
 - IfcShellBasedSurfaceModel
 - IfcSolidModel
 - IfcTessellatedItem
 - IfcTextLiteral
 - IfcVector
 
 
8.9.3.54.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.  | 
|
| IfcSurface (1) | |||
| * | Dim | IfcDimensionCount | 
 This attribute is formally derived. 
The space dimensionality of IfcSurface. It is always a three-dimensional geometric representation item.  | 
| IfcBSplineSurface (10) | |||
| 1 | UDegree | IfcInteger | 
 Algebraic degree of basis functions in u.  | 
| 2 | VDegree | IfcInteger | 
 Algebraic degree of basis functions in v.  | 
| 3 | ControlPointsList | LIST [2:?] OF LIST [2:?] OF IfcCartesianPoint | 
 This is a list of lists of control points.  | 
| 4 | SurfaceForm | IfcBSplineSurfaceForm | 
 Indicator of special surface types.  | 
| 5 | UClosed | IfcLogical | 
 Indication of whether the surface is closed in the u direction; this is for information only.  | 
| 6 | VClosed | IfcLogical | 
 Indication of whether the surface is closed in the v direction; this is for information only.  | 
| 7 | SelfIntersect | IfcLogical | 
 Flag to indicate whether, or not, surface is self-intersecting; this is for information only.  | 
| * | UUpper | IfcInteger | 
 This attribute is formally derived. 
Upper index on control points in u direction.  | 
| * | VUpper | IfcInteger | 
 This attribute is formally derived. 
Upper index on control points in v direction.  | 
| * | ControlPoints | ARRAY [0:UUpper] OF ARRAY [0:VUpper] OF IfcCartesianPoint | 
 This attribute is formally derived. 
Array (two-dimensional) of control points defining surface geometry. This array is constructed from the control points list.  | 
| IfcBSplineSurfaceWithKnots (7) | |||
| 8 | UMultiplicities | LIST [2:?] OF IfcInteger | 
 The multiplicities of the knots in the u parameter direction.  | 
| 9 | VMultiplicities | LIST [2:?] OF IfcInteger | 
 The multiplicities of the knots in the v parameter direction.  | 
| 10 | UKnots | LIST [2:?] OF IfcParameterValue | 
 The list of the distinct knots in the u parameter direction.  | 
| 11 | VKnots | LIST [2:?] OF IfcParameterValue | 
 The list of the distinct knots in the v parameter direction.  | 
| 12 | KnotSpec | IfcKnotType | 
 The description of the knot type.  | 
| * | KnotVUpper | IfcInteger | 
 This attribute is formally derived. 
The number of distinct knots in the v parameter direction.  | 
| * | KnotUUpper | IfcInteger | 
 This attribute is formally derived. 
The number of distinct knots in the u parameter direction.  | 
| Click to show 20 hidden inherited attributes Click to hide 20 inherited attributes | |||
| IfcRationalBSplineSurfaceWithKnots (2) | |||
| 13 | WeightsData | LIST [2:?] OF LIST [2:?] OF IfcReal | 
 The weights associated with the control points in the rational case.  | 
| * | Weights | ARRAY [0:UUpper] OF ARRAY [0:VUpper] OF IfcReal | 
 This attribute is formally derived. 
Array (two-dimensional) of weight values constructed from the WeightsData.  | 
8.9.3.54.4 Formal propositions
| Name | Description | 
|---|---|
| CorrespondingWeightsDataLists | 
 The array dimensions for the weights shall be consistent with the control points data.  | 
 | 
|
| WeightValuesGreaterZero | 
 The weight value associated with each control point shall be greater than zero.  | 
 | 
|
8.9.3.54.5 Formal representation
ENTITY IfcRationalBSplineSurfaceWithKnots
 SUBTYPE OF (IfcBSplineSurfaceWithKnots);
	WeightsData : LIST [2:?] OF LIST [2:?] OF IfcReal;
 DERIVE
	 Weights : ARRAY [0:UUpper] OF ARRAY [0:VUpper] OF IfcReal := IfcMakeArrayOfArray(WeightsData,0,UUpper,0,VUpper);
 WHERE
	CorrespondingWeightsDataLists : (SIZEOF(WeightsData) = SIZEOF(SELF\IfcBSplineSurface.ControlPointsList))
AND 
(SIZEOF(WeightsData[1]) = SIZEOF(SELF\IfcBSplineSurface.ControlPointsList[1]));
	WeightValuesGreaterZero : IfcSurfaceWeightsPositive(SELF);
END_ENTITY;