IfcRationalBSplineSurfaceWithKnots

Natural language names
deRationale Bézier-Spline - Oberfläche mit Kontrollpunkten
enRational BSpline Surface With Knots
frSurfaces Bsplines rationnelles avec nœuds
Change log
ItemSPFXMLChangeDescription
IFC2x3 to IFC4
    IfcRationalBSplineSurfaceWithKnotsADDED
IFC4 Addendum 1
    IfcRationalBSplineSurfaceWithKnots
      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.
      WeightsDataMODIFIEDType changed from REAL to IfcReal.
Semantic definitions at the entity
Entity definition

A rational B-spline surface with knots is a piecewise parametric rational surface described in terms of control points, and associated weight values.

The surface is to be interpreted as follows:

σformula
NOTE  Entity adapted from rational_b_spline_surface in ISO 10303-42.
HISTORY  New entity in IFC4.
Attribute definitions
#AttributeTypeCardinalityDescription C
13WeightsDataIfcRealL[2:?]L[2:?] The weights associated with the control points in the rational case.X
Weights
:=IfcMakeArrayOfArray(WeightsData,0,UUpper,0,VUpper)
IfcRealA[0:UUpper]A[0:VUpper]Array (two-dimensional) of weight values constructed from the WeightsData. X
Formal Propositions
RuleDescription
CorrespondingWeightsDataListsThe array dimensions for the weights shall be consistent with the control points data.
WeightValuesGreaterZeroThe weight value associated with each control point shall be greater than zero.
Inherited definitions from supertypes
Entity inheritance IfcBSplineSurfaceWithKnots 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
IfcRationalBSplineSurfaceWithKnots
13WeightsDataIfcRealL[2:?]L[2:?] The weights associated with the control points in the rational case.X
Weights
:=IfcMakeArrayOfArray(WeightsData,0,UUpper,0,VUpper)
IfcRealA[0:UUpper]A[0:VUpper]Array (two-dimensional) of weight values constructed from the WeightsData. X
Formal representations
XSD Specification
 <xs:element name="IfcRationalBSplineSurfaceWithKnots" type="ifc:IfcRationalBSplineSurfaceWithKnots" substitutionGroup="ifc:IfcBSplineSurfaceWithKnots" nillable="true"/>
 <xs:complexType name="IfcRationalBSplineSurfaceWithKnots">
  <xs:complexContent>
   <xs:extension base="ifc:IfcBSplineSurfaceWithKnots">
    <xs:sequence>
     <xs:element name="WeightsData">
      <xs:complexType>
       <xs:sequence>
        <xs:element ref="ifc:IfcReal-wrapper" minOccurs="4" maxOccurs="unbounded"/>
       </xs:sequence>
       <xs:attribute ref="ifc:itemType" fixed="ifc:IfcReal-wrapper"/>
       <xs:attribute ref="ifc:cType" fixed="list list"/>
       <xs:attribute ref="ifc:arraySize" use="optional"/>
      </xs:complexType>
     </xs:element>
    </xs:sequence>
   </xs:extension>
  </xs:complexContent>
 </xs:complexType>
EXPRESS Specification
ENTITY IfcRationalBSplineSurfaceWithKnots
 SUBTYPE OF (IfcBSplineSurfaceWithKnots);
  WeightsData : LIST [2:?] OF LIST [2:?] OF IfcReal;
 DERIVE
  Weights : ARRAY [0:UUpper] OF ARRAY [0:VUpper] OF IfcReal := IfcMakeArrayOfArray(WeightsData,0,UUpper,0,VUpper);
 WHERE
  CorrespondingWeightsDataLists : (SIZEOF(WeightsData) = SIZEOF(SELF\IfcBSplineSurface.ControlPointsList)) AND (SIZEOF(WeightsData[1]) = SIZEOF(SELF\IfcBSplineSurface.ControlPointsList[1]));
  WeightValuesGreaterZero : IfcSurfaceWeightsPositive(SELF);
END_ENTITY;

Link to EXPRESS-G diagram EXPRESS-G diagram

Link to this page  Link to this page