IFC 4.3.2.20240904 (IFC4X3_ADD2) under development

8.9.3.54 IfcRationalBSplineSurfaceWithKnots

AbV ⓘ

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

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.

3

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.

SIZEOF(ControlPointsList) - 1

Upper index on control points in u direction.

* VUpper IfcInteger

This attribute is formally derived.

SIZEOF(ControlPointsList[1]) - 1

Upper index on control points in v direction.

* ControlPoints ARRAY [0:UUpper] OF ARRAY [0:VUpper] OF IfcCartesianPoint

This attribute is formally derived.

IfcMakeArrayOfArray(ControlPointsList,
0,UUpper,0,VUpper)

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.

SIZEOF(VKnots)

The number of distinct knots in the v parameter direction.

* KnotUUpper IfcInteger

This attribute is formally derived.

SIZEOF(UKnots)

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.

IfcMakeArrayOfArray(WeightsData,0,UUpper,0,VUpper)

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

Table 8.9.3.54.A

8.9.3.54.4 Formal propositions

Name Description
CorrespondingWeightsDataLists

The array dimensions for the weights shall be consistent with the control points data.

(SIZEOF(WeightsData) = SIZEOF(SELF\IfcBSplineSurface.ControlPointsList))
AND 
(SIZEOF(WeightsData[1]) = SIZEOF(SELF\IfcBSplineSurface.ControlPointsList[1]))
WeightValuesGreaterZero

The weight value associated with each control point shall be greater than zero.

IfcSurfaceWeightsPositive(SELF)
Table 8.9.3.54.B

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;

8.9.3.54.6 References

Edit on Github


Is this page difficult to understand? Let us know!

8.9.3.54.7 Changelog

8.9.3.54.7.1 IFC4

  • New resource