IfcBSplineSurfaceWithKnots

BACnet MVD

#### IfcBSplineSurfaceWithKnots

Natural language names

| Bézier-Spline-Fläche mit (gegebenen) Kontrollpunkten
| BSpline Surface With Knots

Change log

Item | SPF | XML | Change | Description
--- | --- | --- | --- | ---
IFC2x3 to IFC4
IfcBSplineSurfaceWithKnots |  |  | ADDED |
IFC4 Addendum 1
IfcBSplineSurfaceWithKnots |  |  |  |
UDegree |  |  | MODIFIED | Type changed from INTEGER to IfcInteger.
VDegree |  |  | MODIFIED | Type changed from INTEGER to IfcInteger.
UClosed |  |  | MODIFIED | Type changed from LOGICAL to IfcLogical.
VClosed |  |  | MODIFIED | Type changed from LOGICAL to IfcLogical.
SelfIntersect |  |  | MODIFIED | Type changed from LOGICAL to IfcLogical.
UMultiplicities |  |  | MODIFIED | Type changed from INTEGER to IfcInteger.
VMultiplicities |  |  | MODIFIED | Type changed from INTEGER to IfcInteger.

##### Semantic definitions at the entity

Entity definition

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

> NOTE Definition according to ISO/CD 10303-42:1992
> This is a B-spline surface in which the knot values are explicitly given. This subtype shall be used to represent non-uniform B-spline surfaces, and may also be used for other knot types.
> All knot multiplicities except the first and the last shall be in the range 1,....,d; the first and last may have a maximum value of d + 1. In evaluating the basis functions, a knot u of, e.g., multiplicity 3 is interpreted as a sequence u, u, u, in the knot array.

> NOTE Entity adapted from b_spline_surface_with_knots defined in ISO10303-42.

> HISTORY New entity in IFC4.

Attribute definitions

# | Attribute | Type | Cardinality | Description | B
--- | --- | --- | --- | --- | ---
8 | UMultiplicities | IfcInteger | L[2:?] | The multiplicities of the knots in the u parameter direction. | X | X
9 | VMultiplicities | IfcInteger | L[2:?] | The multiplicities of the knots in the v parameter direction. | X | X
10 | UKnots | IfcParameterValue | L[2:?] | The list of the distinct knots in the u parameter direction. | X | X
11 | VKnots | IfcParameterValue | L[2:?] | The list of the distinct knots in the v parameter direction. | X | X
12 | KnotSpec | IfcKnotType |  | The description of the knot type. | X | X
| KnotVUpper :=SIZEOF(VKnots) | IfcInteger |  | The number of distinct knots in the v parameter direction. | X | X
| KnotUUpper :=SIZEOF(UKnots) | IfcInteger |  | The number of distinct knots in the u parameter direction. | X | X

Formal Propositions

Rule | Description
--- | ---
UDirectionConstraints | The function returns TRUE when the parameter constraints are verified for the u direction.
VDirectionConstraints | The function returns TRUE when the parameter constraints are verified for the v direction.
CorrespondingULists | The number of UMultiplicities shall be the same as the number of UKnots.
CorrespondingVLists | The number of VMultiplicities shall be the same as the number of VKnots.

##### Inherited definitions from supertypes

Entity inheritance
Attribute inheritance

# | Attribute | Type | Cardinality | Description | B
--- | --- | --- | --- | --- | ---
IfcRepresentationItem

LayerAssignment

IfcPresentationLayerAssignment
@AssignedItems

S[0:1]

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.

X

StyledByItem

IfcStyledItem
@Item

S[0:1]

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.

X

X

IfcGeometricRepresentationItem
IfcSurface

Dim
:=3

IfcDimensionCount

The space dimensionality of IfcSurface. It is always a three-dimensional geometric representation item.

> IFC4 CHANGE Derived attribute promoted from subtypes.

X

X

IfcBoundedSurface
IfcBSplineSurface
1 | UDegree | IfcInteger |  | Algebraic degree of basis functions in u. | X | X
2 | VDegree | IfcInteger |  | Algebraic degree of basis functions in v. | X | X
3 | ControlPointsList | IfcCartesianPoint | L[2:?] L[2:?] | This is a list of lists of control points. | X | X
4 | SurfaceForm | IfcBSplineSurfaceForm |  | Indicator of special surface types. | X | X
5 | UClosed | IfcLogical |  | Indication of whether the surface is closed in the u direction; this is for information only. | X | X
6 | VClosed | IfcLogical |  | Indication of whether the surface is closed in the v direction; this is for information only. | X | X
7 | SelfIntersect | IfcLogical |  | Flag to indicate whether, or not, surface is self-intersecting; this is for information only. | X | X
| UUpper :=SIZEOF(ControlPointsList) - 1 | IfcInteger |  | Upper index on control points in u direction. | X | X
| VUpper :=SIZEOF(ControlPointsList[1]) - 1 | IfcInteger |  | Upper index on control points in v direction. | X | X
| ControlPoints :=IfcMakeArrayOfArray(ControlPointsList, 0,UUpper,0,VUpper) | IfcCartesianPoint | A[0:UUpper] A[0:VUpper] | Array (two-dimensional) of control points defining surface geometry. This array is constructed from the control points list. | X | X
IfcBSplineSurfaceWithKnots
8 | UMultiplicities | IfcInteger | L[2:?] | The multiplicities of the knots in the u parameter direction. | X | X
9 | VMultiplicities | IfcInteger | L[2:?] | The multiplicities of the knots in the v parameter direction. | X | X
10 | UKnots | IfcParameterValue | L[2:?] | The list of the distinct knots in the u parameter direction. | X | X
11 | VKnots | IfcParameterValue | L[2:?] | The list of the distinct knots in the v parameter direction. | X | X
12 | KnotSpec | IfcKnotType |  | The description of the knot type. | X | X
| KnotVUpper :=SIZEOF(VKnots) | IfcInteger |  | The number of distinct knots in the v parameter direction. | X | X
| KnotUUpper :=SIZEOF(UKnots) | IfcInteger |  | The number of distinct knots in the u parameter direction. | X | X

##### Formal representations

XML Specification
`<xs:element name="IfcBSplineSurfaceWithKnots" type="ifc:IfcBSplineSurfaceWithKnots" substitutionGroup="ifc:IfcBSplineSurface" nillable="true"/>
<xs:complexType name="IfcBSplineSurfaceWithKnots">
<xs:complexContent>
<xs:extension base="ifc:IfcBSplineSurface">
<xs:attribute name="UMultiplicities" use="optional">
<xs:simpleType>
<xs:restriction>
<xs:simpleType>
<xs:list itemType="ifc:IfcInteger"/>
</xs:simpleType>
<xs:minLength value="2"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="VMultiplicities" use="optional">
<xs:simpleType>
<xs:restriction>
<xs:simpleType>
<xs:list itemType="ifc:IfcInteger"/>
</xs:simpleType>
<xs:minLength value="2"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="UKnots" use="optional">
<xs:simpleType>
<xs:restriction>
<xs:simpleType>
<xs:list itemType="ifc:IfcParameterValue"/>
</xs:simpleType>
<xs:minLength value="2"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="VKnots" use="optional">
<xs:simpleType>
<xs:restriction>
<xs:simpleType>
<xs:list itemType="ifc:IfcParameterValue"/>
</xs:simpleType>
<xs:minLength value="2"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="KnotSpec" type="ifc:IfcKnotType" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
`
EXPRESS Specification
`ENTITY IfcBSplineSurfaceWithKnots
SUPERTYPE OF(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
UDirectionConstraints : IfcConstraintsParamBSpline (
SELF\IfcBSplineSurface.UDegree, KnotUUpper,
SELF\IfcBSplineSurface.UUpper, UMultiplicities, UKnots);
VDirectionConstraints : IfcConstraintsParamBSpline (
SELF\IfcBSplineSurface.VDegree, KnotVUpper,
SELF\IfcBSplineSurface.VUpper, VMultiplicities, VKnots);
CorrespondingULists : SIZEOF(UMultiplicities) = KnotUUpper;
CorrespondingVLists : SIZEOF(VMultiplicities) = KnotVUpper;
END_ENTITY;

EXPRESS-G diagram

`

Link to this page