IFC 4.3.x development

8.9.3.8 IfcBSplineSurfaceWithKnots

Change log

IFC4

added

8.9.3.8.1 Semantic definitions at the entity

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.

8.9.3.8.1 Attributes

# Attribute Type Description
IfcRepresentationItem
LayerAssignment SET [0:1] OF IfcPresentationLayerAssignment FOR AssignedItemsAssignment 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 ControlPointsListLIST [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.

8.9.3.8.2 Entity inheritance

dot_inheritance IfcRationalBSplineSurfaceWithKnots IfcRationalBSplineSurfaceWithKnots IfcBSplineSurfaceWithKnots IfcBSplineSurfaceWithKnots IfcRationalBSplineSurfaceWithKnots->IfcBSplineSurfaceWithKnots IfcBSplineSurface IfcBSplineSurface IfcBSplineSurfaceWithKnots->IfcBSplineSurface IfcBoundedSurface IfcBoundedSurface IfcBSplineSurface->IfcBoundedSurface IfcBoundedSurface_children 3 more... IfcBoundedSurface_children->IfcBoundedSurface IfcSurface IfcSurface IfcBoundedSurface->IfcSurface IfcSurface_children 3 more... IfcSurface_children->IfcSurface IfcGeometricRepresentationItem IfcGeometricRepresentationItem IfcSurface->IfcGeometricRepresentationItem IfcGeometricRepresentationItem_children 24 more... IfcGeometricRepresentationItem_children->IfcGeometricRepresentationItem IfcRepresentationItem IfcRepresentationItem IfcGeometricRepresentationItem->IfcRepresentationItem IfcRepresentationItem_children 3 more... IfcRepresentationItem_children->IfcRepresentationItem

8.9.3.8.3 Formal representations

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
	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;