IfcBSplineSurfaceWithKnots

ifcbsprinesSurfaceWithKnots是有理或多项式参数曲面的一种一般形式,其中节点值是直接给定的。


注:定义根据ISO/CD 10303-42:1992

这是一个B样条曲面,其中明确给出了节点值。该子类型应用于表示非均匀B样条曲面,也可用于其他结类型。

除第一个和最后一个外,所有结重数应在1,…,d范围内;第一个和最后一个可能具有最大值d+1。在计算基函数时,例如重数3的结u被解释为结数组中的序列u,u,u。


注:实体根据ISO 10303-42中定义的b_样条曲面_和_节点改编。


IFC4中增加的新实体。

Attribute definitions

#AttributeTypeCardinalityDescriptionC
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

RuleDescription
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.
 

 

 

 

 

 

 

 

 

#AttributeTypeCardinalityDescriptionC
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 ( 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;

 

posted @ 2020-11-05 19:58  西北逍遥  阅读(182)  评论(0编辑  收藏  举报