ifcbsprinesSurfaceWithKnots是有理或多项式参数曲面的一种一般形式,其中节点值是直接给定的。
注:定义根据ISO/CD 10303-42:1992
这是一个B样条曲面,其中明确给出了节点值。该子类型应用于表示非均匀B样条曲面,也可用于其他结类型。
除第一个和最后一个外,所有结重数应在1,…,d范围内;第一个和最后一个可能具有最大值d+1。在计算基函数时,例如重数3的结u被解释为结数组中的序列u,u,u。
注:实体根据ISO 10303-42中定义的b_样条曲面_和_节点改编。
IFC4中增加的新实体。
Attribute definitions
# | Attribute | Type | Cardinality | Description | C |
---|---|---|---|---|---|
8 | UMultiplicities | IfcInteger | L[2:?] | The multiplicities of the knots in the u parameter direction. | X |
9 | VMultiplicities | IfcInteger | L[2:?] | The multiplicities of the knots in the v parameter direction. | X |
10 | UKnots | IfcParameterValue | L[2:?] | The list of the distinct knots in the u parameter direction. | X |
11 | VKnots | IfcParameterValue | L[2:?] | The list of the distinct knots in the v parameter direction. | X |
12 | KnotSpec | IfcKnotType | [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
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. |
# | Attribute | Type | Cardinality | Description | C |
---|---|---|---|---|---|
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. | 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. | 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 | |||||
1 | UDegree | IfcInteger | [1:1] | Algebraic degree of basis functions in u. | X |
2 | VDegree | IfcInteger | [1:1] | Algebraic degree of basis functions in v. | X |
3 | ControlPointsList | IfcCartesianPoint | L[2:?]L[2:?] | This is a list of lists of control points. | X |
4 | SurfaceForm | IfcBSplineSurfaceForm | [1:1] | Indicator of special surface types. | X |
5 | UClosed | IfcLogical | [1:1] | Indication of whether the surface is closed in the u direction; this is for information only. | X |
6 | VClosed | IfcLogical | [1:1] | Indication of whether the surface is closed in the v direction; this is for information only. | X |
7 | SelfIntersect | IfcLogical | [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) |
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 | |
IfcBSplineSurfaceWithKnots | |||||
8 | UMultiplicities | IfcInteger | L[2:?] | The multiplicities of the knots in the u parameter direction. | X |
9 | VMultiplicities | IfcInteger | L[2:?] | The multiplicities of the knots in the v parameter direction. | X |
10 | UKnots | IfcParameterValue | L[2:?] | The list of the distinct knots in the u parameter direction. | X |
11 | VKnots | IfcParameterValue | L[2:?] | The list of the distinct knots in the v parameter direction. | X |
12 | KnotSpec | IfcKnotType | [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 |
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 ( SELFIfcBSplineSurface.UDegree, KnotUUpper, SELFIfcBSplineSurface.UUpper, UMultiplicities, UKnots);
VDirectionConstraints : IfcConstraintsParamBSpline ( SELFIfcBSplineSurface.VDegree, KnotVUpper, SELFIfcBSplineSurface.VUpper, VMultiplicities, VKnots);
CorrespondingULists : SIZEOF(UMultiplicities) = KnotUUpper;
CorrespondingVLists : SIZEOF(VMultiplicities) = KnotVUpper;
END_ENTITY;