IFC 4.3.2.20251031 (IFC4X3_ADD2) under development

8.9.3.53 IfcRationalBSplineCurveWithKnots(带节点有理B样条曲线)

8.9.3.53.1 语义定义(Semantic definition)

带节点有理B样条曲线是一种通过控制点和基函数描述的B样条曲线。除了在超类型 IfcBSplineCurve 中定义的控制点外,它还描述了权重。

所有权重必须为正,曲线由以下公式给出:

Math
Figure 8.9.3.53.A

其中:

变量 定义
k+1 控制点数量
Pi 控制点
wi 权重
d 次数
表 8.9.3.53.B

8.9.3.53.2 实体继承(Entity inheritance)

8.9.3.53.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,例如,为几何曲线提供曲线样式,包括颜色和厚度。

IfcCurve (1)
* Dim IfcDimensionCount

此属性是形式化派生的

IfcCurveDim(SELF)

此抽象类的空间维度,所有子类(如 IfcLineIfcConicIfcBoundedCurve)的定义各不相同。

IfcBSplineCurve (7)
1 Degree IfcInteger

The algebraic degree of the basis functions.

2 ControlPointsList LIST [2:?] OF IfcCartesianPoint

The list of control points for the curve.

3 CurveForm IfcBSplineCurveForm

Used to identify particular types of curve; it is for information only.

4 ClosedCurve IfcLogical

Indication of whether the curve is closed; it is for information only.

5 SelfIntersect IfcLogical

Indication whether the curve self-intersects or not; it is for information only.

* UpperIndexOnControlPoints IfcInteger

此属性是形式化派生的

(SIZEOF(ControlPointsList) - 1)

The upper index on the array of control points; the lower index is 0. This value is derived from the control points list.

* ControlPoints ARRAY [0:UpperIndexOnControlPoints] OF IfcCartesianPoint

此属性是形式化派生的

IfcListToArray(ControlPointsList,0,UpperIndexOnControlPoints)

The array of control points used to define the geometry of the curve. This is derived from the list of control points.

IfcBSplineCurveWithKnots (4)
6 KnotMultiplicities LIST [2:?] OF IfcInteger

节点的重数。此列表定义了在构建节点数组时,节点列表中每个节点需要重复的次数。

7 Knots LIST [2:?] OF IfcParameterValue

用于定义B样条基函数的不同节点列表。

8 KnotSpec IfcKnotType

节点类型的描述。此信息仅供参考。

* UpperIndexOnKnots IfcInteger

此属性是形式化派生的

SIZEOF(Knots)

节点数组的上索引;下索引为1。

点击显示 14 个隐藏的继承特性 点击隐藏 14 个继承特性
IfcRationalBSplineCurveWithKnots (2)
9 WeightsData LIST [2:?] OF IfcReal

提供的权重值。

* Weights ARRAY [0:UpperIndexOnControlPoints] OF IfcReal

此属性是形式化派生的

IfcListToArray(WeightsData,0,SELF\IfcBSplineCurve.UpperIndexOnControlPoints)

与控制点关联的权重数组。这是从权重数据派生而来的。

表 8.9.3.53.C

8.9.3.53.4 形式化命题(Formal propositions)

名称 描述
SameNumOfWeightsAndPoints

权重数量必须与控制点数量相同。

SIZEOF(WeightsData) = SIZEOF(SELF\IfcBSplineCurve.ControlPointsList)
WeightsGreaterZero

所有权重必须具有大于 0.0 的值。

IfcCurveWeightsPositive(SELF)
表 8.9.3.53.D

8.9.3.53.5 形式化表示(Formal representation)

ENTITY IfcRationalBSplineCurveWithKnots
 SUBTYPE OF (IfcBSplineCurveWithKnots);
	WeightsData : LIST [2:?] OF IfcReal;
 DERIVE
	 Weights : ARRAY [0:UpperIndexOnControlPoints] OF IfcReal := IfcListToArray(WeightsData,0,SELF\IfcBSplineCurve.UpperIndexOnControlPoints);
 WHERE
	SameNumOfWeightsAndPoints : SIZEOF(WeightsData) = SIZEOF(SELF\IfcBSplineCurve.ControlPointsList);
	WeightsGreaterZero : IfcCurveWeightsPositive(SELF);
END_ENTITY;

8.9.3.53.6 参考文献