8.9.3.53 IfcRationalBSplineCurveWithKnots(带节点有理B样条曲线)
8.9.3.53.1 语义定义(Semantic definition)
带节点有理B样条曲线是一种通过控制点和基函数描述的B样条曲线。除了在超类型 IfcBSplineCurve 中定义的控制点外,它还描述了权重。
所有权重必须为正,曲线由以下公式给出:

其中:
8.9.3.53.2 实体继承(Entity inheritance)
-
- IfcCurve
- IfcAnnotationFillArea
- IfcBooleanResult
- IfcBoundingBox
- IfcCartesianPointList
- IfcCartesianTransformationOperator
- IfcCsgPrimitive3D
- IfcDirection
- IfcFaceBasedSurfaceModel
- IfcFillAreaStyleHatching
- IfcFillAreaStyleTiles
- IfcGeometricSet
- IfcHalfSpaceSolid
- IfcLightSource
- IfcPlacement
- IfcPlanarExtent
- IfcPoint
- IfcSectionedSpine
- IfcSegment
- IfcShellBasedSurfaceModel
- IfcSolidModel
- IfcSurface
- IfcTessellatedItem
- IfcTextLiteral
- IfcVector
8.9.3.53.3 特性(Attributes)
| # | 特性(Attributes) | 类型 | 描述 |
|---|---|---|---|
| IfcRepresentationItem (2) | |||
| LayerAssignment | SET [0:1] OF IfcPresentationLayerAssignment FOR AssignedItems |
将表示项分配给单个或多个层。LayerAssignments 可以覆盖其所在的 IfcRepresentation 的 Items 列表中的 LayerAssignments。 |
|
| StyledByItem | SET [0:1] OF IfcStyledItem FOR Item |
引用为表示提供表现信息的 IfcStyledItem,例如,为几何曲线提供曲线样式,包括颜色和厚度。 |
|
| IfcCurve (1) | |||
| * | Dim | IfcDimensionCount |
此属性是形式化派生的
此抽象类的空间维度,所有子类(如 IfcLine、IfcConic 和 IfcBoundedCurve)的定义各不相同。 |
| 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 |
此属性是形式化派生的
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 |
此属性是形式化派生的
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 |
此属性是形式化派生的
节点数组的上索引;下索引为1。 |
| 点击显示 14 个隐藏的继承特性 点击隐藏 14 个继承特性 | |||
| IfcRationalBSplineCurveWithKnots (2) | |||
| 9 | WeightsData | LIST [2:?] OF IfcReal |
提供的权重值。 |
| * | Weights | ARRAY [0:UpperIndexOnControlPoints] OF IfcReal |
此属性是形式化派生的
与控制点关联的权重数组。这是从权重数据派生而来的。 |
8.9.3.53.4 形式化命题(Formal propositions)
| 名称 | 描述 |
|---|---|
| SameNumOfWeightsAndPoints |
权重数量必须与控制点数量相同。 |
|
|
| WeightsGreaterZero |
所有权重必须具有大于 0.0 的值。 |
|
|
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;