IFC 4.3.2.20251031 (IFC4X3_ADD2) under development

8.9.3.6 IfcBSplineCurveWithKnots(带节点B样条曲线)

8.9.3.6.1 语义定义(Semantic definition)

IfcBSplineCurveWithKnots 是一种通过样条函数参数化的样条曲线,其节点值被明确给出。

公式
Figure 8.9.3.6.A

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

8.9.3.6.2 实体继承(Entity inheritance)

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

点击显示 10 个隐藏的继承特性 点击隐藏 10 个继承特性
IfcBSplineCurveWithKnots (4)
6 KnotMultiplicities LIST [2:?] OF IfcInteger

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

7 Knots LIST [2:?] OF IfcParameterValue

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

8 KnotSpec IfcKnotType

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

* UpperIndexOnKnots IfcInteger

此属性是形式化派生的

SIZEOF(Knots)

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

表 8.9.3.6.B

8.9.3.6.4 形式化命题(Formal propositions)

名称 描述
ConsistentBSpline

如果未发现B样条参数化中的不一致之处,则函数 IfcConstraintsParamBSpline 返回 TRUE。

IfcConstraintsParamBSpline(Degree, UpperIndexOnKnots,
UpperIndexOnControlPoints, KnotMultiplicities, Knots)
CorrespondingKnotLists

节点重数列表中的元素数量应等于节点列表中的元素数量。

SIZEOF(KnotMultiplicities) = UpperIndexOnKnots
表 8.9.3.6.C

8.9.3.6.5 形式化表示(Formal representation)

ENTITY IfcBSplineCurveWithKnots
 SUPERTYPE OF (ONEOF
	(IfcRationalBSplineCurveWithKnots))
 SUBTYPE OF (IfcBSplineCurve);
	KnotMultiplicities : LIST [2:?] OF IfcInteger;
	Knots : LIST [2:?] OF IfcParameterValue;
	KnotSpec : IfcKnotType;
 DERIVE
	 UpperIndexOnKnots : IfcInteger := SIZEOF(Knots);
 WHERE
	ConsistentBSpline : IfcConstraintsParamBSpline(Degree, UpperIndexOnKnots,
UpperIndexOnControlPoints, KnotMultiplicities, Knots);
	CorrespondingKnotLists : SIZEOF(KnotMultiplicities) = UpperIndexOnKnots;
END_ENTITY;

8.9.3.6.6 参考文献