IFC 4.3.2.20250219 (IFC4X3_ADD2) under development

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)
IfcSurface (1)
IfcBSplineSurface (10)
Click to show 13 hidden 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.C

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

8.9.3.8.5 Examples

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

Edit on Github

3 contributor(s):
Last change: Improve definition split (#876) * bring back headers headers were previously removed by mistake, now bringing them back * add new lines and rename the tag add the word 'short' in it * unify newlines make exactly one newline before and two after the tag * resolving typos Because bringing back headers required to go back in time to previous version, I'm now re-resolving the issues: #861, #860, #856 by ArturTomczak on 7/16/2024, 2:07:28 PM

Is this page difficult to understand? Let us know!

8.9.3.8.8 Changelog

8.9.3.8.8.1 IFC4

  • New resource