IfcBSplineSurfaceWithKnots

Natural language names
Bézier-Spline-Fläche mit (gegebenen) Kontrollpunkten
BSpline Surface With Knots
Change log
ItemSPFXMLChangeDescription
IFC2x3 to IFC4 4.0.0.0
    IfcBSplineSurfaceWithKnotsADDED
IFC4 Addendum 1 4.0.1.0
    IfcBSplineSurfaceWithKnots
      UDegreeMODIFIEDType changed from INTEGER to IfcInteger.
      VDegreeMODIFIEDType changed from INTEGER to IfcInteger.
      UClosedMODIFIEDType changed from LOGICAL to IfcLogical.
      VClosedMODIFIEDType changed from LOGICAL to IfcLogical.
      SelfIntersectMODIFIEDType changed from LOGICAL to IfcLogical.
      UMultiplicitiesMODIFIEDType changed from INTEGER to IfcInteger.
      VMultiplicitiesMODIFIEDType 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
#AttributeTypeCardinalityDescription G
8UMultiplicitiesIfcIntegerL[2:?] The multiplicities of the knots in the u parameter direction. X
9VMultiplicitiesIfcIntegerL[2:?] The multiplicities of the knots in the v parameter direction. X
10UKnotsIfcParameterValueL[2:?] The list of the distinct knots in the u parameter direction. X
11VKnotsIfcParameterValueL[2:?] The list of the distinct knots in the v parameter direction. X
12KnotSpecIfcKnotType The description of the knot type. X
KnotVUpper
:=SIZEOF(VKnots)
IfcIntegerThe number of distinct knots in the v parameter direction. X
KnotUUpper
:=SIZEOF(UKnots)
IfcIntegerThe number of distinct knots in the u parameter direction. X
Formal Propositions
RuleDescription
UDirectionConstraintsThe function returns TRUE when the parameter constraints are verified for the u direction.
VDirectionConstraintsThe function returns TRUE when the parameter constraints are verified for the v direction.
CorrespondingUListsThe number of UMultiplicities shall be the same as the number of UKnots.
CorrespondingVListsThe number of VMultiplicities shall be the same as the number of VKnots.
Inherited definitions from supertypes
Entity inheritance IfcRationalBSplineSurfaceWithKnots IfcBSplineSurface IfcBoundedSurface IfcSurface IfcGeometricRepresentationItem IfcRepresentationItem
Attribute inheritance
#AttributeTypeCardinalityDescriptionG
IfcRepresentationItem
LayerAssignmentIfcPresentationLayerAssignment
@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
StyledByItemIfcStyledItem
@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
IfcGeometricRepresentationItem
IfcSurface
Dim
:=3
IfcDimensionCountThe space dimensionality of IfcSurface. It is always a three-dimensional geometric representation item.
IFC4 CHANGE Derived attribute promoted from subtypes.
X
IfcBoundedSurface
IfcBSplineSurface
1UDegreeIfcInteger Algebraic degree of basis functions in u. X
2VDegreeIfcInteger Algebraic degree of basis functions in v. X
3ControlPointsListIfcCartesianPointL[2:?] L[2:?] This is a list of lists of control points. X
4SurfaceFormIfcBSplineSurfaceForm Indicator of special surface types. X
5UClosedIfcLogical Indication of whether the surface is closed in the u direction; this is for information only. X
6VClosedIfcLogical Indication of whether the surface is closed in the v direction; this is for information only. X
7SelfIntersectIfcLogical Flag to indicate whether, or not, surface is self-intersecting; this is for information only. X
UUpper
:=SIZEOF(ControlPointsList) - 1
IfcIntegerUpper index on control points in u direction. X
VUpper
:=SIZEOF(ControlPointsList[1]) - 1
IfcIntegerUpper index on control points in v direction. X
ControlPoints
:=IfcMakeArrayOfArray(ControlPointsList, 0,UUpper,0,VUpper)
IfcCartesianPointA[0:UUpper] A[0:VUpper]Array (two-dimensional) of control points defining surface geometry. This array is constructed from the control points list. X
IfcBSplineSurfaceWithKnots
8UMultiplicitiesIfcIntegerL[2:?] The multiplicities of the knots in the u parameter direction. X
9VMultiplicitiesIfcIntegerL[2:?] The multiplicities of the knots in the v parameter direction. X
10UKnotsIfcParameterValueL[2:?] The list of the distinct knots in the u parameter direction. X
11VKnotsIfcParameterValueL[2:?] The list of the distinct knots in the v parameter direction. X
12KnotSpecIfcKnotType The description of the knot type. X
KnotVUpper
:=SIZEOF(VKnots)
IfcIntegerThe number of distinct knots in the v parameter direction. X
KnotUUpper
:=SIZEOF(UKnots)
IfcIntegerThe number of distinct knots in the u parameter direction. 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;

Link to EXPRESS-G diagram EXPRESS-G diagram

Link to this page  Link to this page