IFC 4.3.1.0 (IFC4X3_ADD1)

8.9.3.8 IfcBSplineSurfaceWithKnots

8.9.3.8.1 Semantic definition

The IfcBSplineSurfaceWithKnots is a general form of rational or polynomial parametric surface in which the knot values are explicitly given.

8.9.3.8.2 Entity inheritance

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

Click to show 13 hidden inherited attributes Click to hide 13 inherited attributes
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.

Table 8.9.3.8.A

8.9.3.8.4 Formal propositions

Name Description
CorrespondingULists

The number of UMultiplicities shall be the same as the number of UKnots.

SIZEOF(UMultiplicities) = KnotUUpper
CorrespondingVLists

The number of VMultiplicities shall be the same as the number of VKnots.

SIZEOF(VMultiplicities) = KnotVUpper
UDirectionConstraints

The function returns TRUE when the parameter constraints are verified for the u direction.

IfcConstraintsParamBSpline (
  SELF\IfcBSplineSurface.UDegree, KnotUUpper, 
  SELF\IfcBSplineSurface.UUpper, UMultiplicities, UKnots)
VDirectionConstraints

The function returns TRUE when the parameter constraints are verified for the v direction.

IfcConstraintsParamBSpline (
  SELF\IfcBSplineSurface.VDegree, KnotVUpper, 
  SELF\IfcBSplineSurface.VUpper, VMultiplicities, VKnots)
Table 8.9.3.8.B

8.9.3.8.5 Formal representation

ENTITY IfcBSplineSurfaceWithKnots
 SUPERTYPE OF (ONEOF
	(IfcRationalBSplineSurfaceWithKnots))
 SUBTYPE OF (IfcBSplineSurface);
	UMultiplicities : LIST [2:?] OF IfcInteger;
	VMultiplicities : LIST [2:?] OF IfcInteger;
	UKnots : LIST [2:?] OF IfcParameterValue;
	VKnots : LIST [2:?] OF IfcParameterValue;
	KnotSpec : IfcKnotType;
 DERIVE
	 KnotVUpper : IfcInteger := SIZEOF(VKnots);
	 KnotUUpper : IfcInteger := SIZEOF(UKnots);
 WHERE
	CorrespondingULists : SIZEOF(UMultiplicities) = KnotUUpper;
	CorrespondingVLists : SIZEOF(VMultiplicities) = KnotVUpper;
	UDirectionConstraints : IfcConstraintsParamBSpline (
  SELF\IfcBSplineSurface.UDegree, KnotUUpper, 
  SELF\IfcBSplineSurface.UUpper, UMultiplicities, UKnots);
	VDirectionConstraints : IfcConstraintsParamBSpline (
  SELF\IfcBSplineSurface.VDegree, KnotVUpper, 
  SELF\IfcBSplineSurface.VUpper, VMultiplicities, VKnots);
END_ENTITY;

8.9.3.8.6 References

8.9.3.8.7 Changelog

8.9.3.8.7.1 IFC4

  • New resource