IfcBSplineSurfaceWithKnots

Natural language names
deBézier-Spline-Fläche mit (gegebenen) Kontrollpunkten
enBSpline Surface With Knots
Change log
ItemSPFXMLChangeDescription
IFC2x3 to IFC4
    IfcBSplineSurfaceWithKnotsADDED
IFC4 Addendum 1
    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 C
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[1:1] The description of the knot type.X
KnotVUpper
:=SIZEOF(VKnots)
IfcInteger[1:1]The number of distinct knots in the v parameter direction. X
KnotUUpper
:=SIZEOF(UKnots)
IfcInteger[1:1]The 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
#AttributeTypeCardinalityDescriptionC
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. 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. X
IfcGeometricRepresentationItem
IfcSurface
Dim
:=3
IfcDimensionCount[1:1]The space dimensionality of IfcSurface. It is always a three-dimensional geometric representation item. X
IfcBoundedSurface
IfcBSplineSurface
1UDegreeIfcInteger[1:1] Algebraic degree of basis functions in u.X
2VDegreeIfcInteger[1:1] Algebraic degree of basis functions in v.X
3ControlPointsListIfcCartesianPointL[2:?]L[2:?] This is a list of lists of control points.X
4SurfaceFormIfcBSplineSurfaceForm[1:1] Indicator of special surface types.X
5UClosedIfcLogical[1:1] Indication of whether the surface is closed in the u direction; this is for information only.X
6VClosedIfcLogical[1:1] Indication of whether the surface is closed in the v direction; this is for information only.X
7SelfIntersectIfcLogical[1:1] Flag to indicate whether, or not, surface is self-intersecting; this is for information only.X
UUpper
:=SIZEOF(ControlPointsList) - 1
IfcInteger[1:1]Upper index on control points in u direction. X
VUpper
:=SIZEOF(ControlPointsList[1]) - 1
IfcInteger[1:1]Upper 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[1:1] The description of the knot type.X
KnotVUpper
:=SIZEOF(VKnots)
IfcInteger[1:1]The number of distinct knots in the v parameter direction. X
KnotUUpper
:=SIZEOF(UKnots)
IfcInteger[1:1]The number of distinct knots in the u parameter direction. X
Formal representations
XSD 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