IFC 4.3.2.20251031 (IFC4X3_ADD2) under development

8.9.3.8 IfcBSplineSurfaceWithKnots(带节点B样条曲面)

8.9.3.8.1 语义定义(Semantic definition)

IfcBSplineSurfaceWithKnots 是一种有理或多项式参数曲面的一般形式,其中节点值被明确给出。

8.9.3.8.2 实体继承(Entity inheritance)

8.9.3.8.3 特性(Attributes)

# 特性(Attributes) 类型 描述
IfcRepresentationItem (2)
LayerAssignment SET [0:1] OF IfcPresentationLayerAssignment FOR AssignedItems

将表示项分配给单个或多个层。LayerAssignments 可以覆盖其所在的 IfcRepresentationItems 列表中的 LayerAssignments

StyledByItem SET [0:1] OF IfcStyledItem FOR Item

引用为表示提供表现信息的 IfcStyledItem,例如,为几何曲线提供曲线样式,包括颜色和厚度。

IfcSurface (1)
* Dim IfcDimensionCount

此属性是形式化派生的

3

IfcSurface 的空间维度。它始终是三维几何表示项。

IfcBSplineSurface (10)
1 UDegree IfcInteger

u 方向基函数的代数次数。

2 VDegree IfcInteger

v 方向基函数的代数次数。

3 ControlPointsList LIST [2:?] OF LIST [2:?] OF IfcCartesianPoint

这是控制点的列表的列表。

4 SurfaceForm IfcBSplineSurfaceForm

特殊曲面类型的指示符。

5 UClosed IfcLogical

指示曲面在 u 方向是否闭合;此信息仅供参考。

6 VClosed IfcLogical

指示曲面在 v 方向是否闭合;此信息仅供参考。

7 SelfIntersect IfcLogical

指示曲面是否自相交的标志;此信息仅供参考。

* UUpper IfcInteger

此属性是形式化派生的

SIZEOF(ControlPointsList) - 1

u 方向控制点的上标。

* VUpper IfcInteger

此属性是形式化派生的

SIZEOF(ControlPointsList[1]) - 1

v 方向控制点的上标。

* ControlPoints ARRAY [0:UUpper] OF ARRAY [0:VUpper] OF IfcCartesianPoint

此属性是形式化派生的

IfcMakeArrayOfArray(ControlPointsList,
0,UUpper,0,VUpper)

定义曲面几何形状的控制点的二维数组。该数组由控制点列表构造而成。

点击显示 13 个隐藏的继承特性 点击隐藏 13 个继承特性
IfcBSplineSurfaceWithKnots (7)
8 UMultiplicities LIST [2:?] OF IfcInteger

u 参数方向上的节点重数。

9 VMultiplicities LIST [2:?] OF IfcInteger

v 参数方向上的节点重数。

10 UKnots LIST [2:?] OF IfcParameterValue

u 参数方向上不同节点的列表。

11 VKnots LIST [2:?] OF IfcParameterValue

v 参数方向上不同节点的列表。

12 KnotSpec IfcKnotType

节点类型的描述。

* KnotVUpper IfcInteger

此属性是形式化派生的

SIZEOF(VKnots)

v 参数方向上不同节点的数量。

* KnotUUpper IfcInteger

此属性是形式化派生的

SIZEOF(UKnots)

u 参数方向上不同节点的数量。

表 8.9.3.8.A

8.9.3.8.4 形式化命题(Formal propositions)

名称 描述
CorrespondingULists

UMultiplicities 的数量应与 UKnots 的数量相同。

SIZEOF(UMultiplicities) = KnotUUpper
CorrespondingVLists

VMultiplicities 的数量应与 VKnots 的数量相同。

SIZEOF(VMultiplicities) = KnotVUpper
UDirectionConstraints

当参数约束在_u_方向上得到验证时,函数返回TRUE。

IfcConstraintsParamBSpline (
  SELF\IfcBSplineSurface.UDegree, KnotUUpper, 
  SELF\IfcBSplineSurface.UUpper, UMultiplicities, UKnots)
VDirectionConstraints

当参数约束在_v_方向上得到验证时,函数返回TRUE。

IfcConstraintsParamBSpline (
  SELF\IfcBSplineSurface.VDegree, KnotVUpper, 
  SELF\IfcBSplineSurface.VUpper, VMultiplicities, VKnots)
表 8.9.3.8.B

8.9.3.8.5 形式化表示(Formal representation)

ENTITY IfcBSplineSurfaceWithKnots
 SUPERTYPE OF (ONEOF
	(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
	CorrespondingULists : SIZEOF(UMultiplicities) = KnotUUpper;
	CorrespondingVLists : SIZEOF(VMultiplicities) = KnotVUpper;
	UDirectionConstraints : IfcConstraintsParamBSpline (
  SELF\IfcBSplineSurface.UDegree, KnotUUpper, 
  SELF\IfcBSplineSurface.UUpper, UMultiplicities, UKnots);
	VDirectionConstraints : IfcConstraintsParamBSpline (
  SELF\IfcBSplineSurface.VDegree, KnotVUpper, 
  SELF\IfcBSplineSurface.VUpper, VMultiplicities, VKnots);
END_ENTITY;

8.9.3.8.6 参考文献