added |

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:

σ

NOTE Entity adapted from

rational_b_spline_surfacein ISO 10303-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 | |||

IfcSurface | |||

Dim | INVALID | The space dimensionality of IfcSurface. It is always a three-dimensional geometric representation item. > IFC4 CHANGE Derived attribute promoted from subtypes. | |

IfcBoundedSurface | |||

IfcBSplineSurface | |||

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 | INVALID | Upper index on control points in u direction. | |

VUpper | INVALID | Upper index on control points in v direction. | |

ControlPoints | INVALID | Array (two-dimensional) of control points defining surface geometry. This array is constructed from the control points list. | |

IfcBSplineSurfaceWithKnots | |||

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 | INVALID | The number of distinct knots in the v parameter direction. | |

KnotUUpper | INVALID | The number of distinct knots in the u parameter direction. | |

IfcRationalBSplineSurfaceWithKnots | |||

13 | WeightsData | LIST [2:?] OF LIST [2:?] OF IfcReal | The weights associated with the control points in the rational case. |

Weights | INVALID | Array (two-dimensional) of weight values constructed from the WeightsData. |

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;