8.9.3.7 IfcBSplineSurface(B样条曲面)
抽象 该定义可能不会被直接实例化。
8.9.3.7.1 语义定义(Semantic definition)
IfcBSplineSurface 是有理或多项式参数曲面的一般形式。
此处使用的符号说明:
控制点的排序为:P00, P01, P02, ..., PK1(K2-1), PK1K2
在有理子类型的情况下,权重的排序方式类似。
对于每个参数 s = u 或 v,如果 k 是控制点的上标且 d 是 s 的次数,则节点数组是一个包含 (k + d + 2) 个实数的数组 [s-d, ...., sk+1],使得对于所有在 [-d, k] 范围内的索引 j,都有 sj ≤ sj+1。该数组通过根据重数重复每个多重节点从相应的 u_knots 或 v_knots 列表获得。
Nid,即次数为 d 的第 i 个规范化B样条基函数,定义在该数组的子集 [si-d, ...., si+1] 上。
令 L 表示节点列表中不同节点值的数量;L 将被称为"节点上标"。令 mj 表示第 j 个不同节点值的重数(即重复次数)。则有:

除第一个和最后一个节点外,所有节点的重数应在范围 1, ...., d 内;第一个和最后一个节点的最大重数可为 d+1。在计算基函数时,例如重数为3的节点 u 在节点数组中被解释为序列 u, u, u。
曲面形式用于识别特定的二次曲面类型(其次数必须为二)、直纹曲面和旋转曲面。与B样条曲线一样,曲面形式仅为信息性,样条数据具有优先权。
该曲面应按如下方式解释:在多项式情况下,曲面由以下方程给出:

在有理情况下,曲面方程为:

8.9.3.7.2 实体继承(Entity inheritance)
-
- IfcSurface
- IfcAnnotationFillArea
- IfcBooleanResult
- IfcBoundingBox
- IfcCartesianPointList
- IfcCartesianTransformationOperator
- IfcCsgPrimitive3D
- IfcCurve
- IfcDirection
- IfcFaceBasedSurfaceModel
- IfcFillAreaStyleHatching
- IfcFillAreaStyleTiles
- IfcGeometricSet
- IfcHalfSpaceSolid
- IfcLightSource
- IfcPlacement
- IfcPlanarExtent
- IfcPoint
- IfcSectionedSpine
- IfcSegment
- IfcShellBasedSurfaceModel
- IfcSolidModel
- IfcTessellatedItem
- IfcTextLiteral
- IfcVector
8.9.3.7.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,例如,为几何曲线提供曲线样式,包括颜色和厚度。 |
|
| IfcSurface (1) | |||
| * | Dim | IfcDimensionCount |
此属性是形式化派生的
IfcSurface 的空间维度。它始终是三维几何表示项。 |
| 点击显示 3 个隐藏的继承特性 点击隐藏 3 个继承特性 | |||
| 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 |
此属性是形式化派生的
u 方向控制点的上标。 |
| * | VUpper | IfcInteger |
此属性是形式化派生的
v 方向控制点的上标。 |
| * | ControlPoints | ARRAY [0:UUpper] OF ARRAY [0:VUpper] OF IfcCartesianPoint |
此属性是形式化派生的
定义曲面几何形状的控制点的二维数组。该数组由控制点列表构造而成。 |
8.9.3.7.4 形式化表示(Formal representation)
ENTITY IfcBSplineSurface
ABSTRACT SUPERTYPE OF (ONEOF
(IfcBSplineSurfaceWithKnots))
SUBTYPE OF (IfcBoundedSurface);
UDegree : IfcInteger;
VDegree : IfcInteger;
ControlPointsList : LIST [2:?] OF LIST [2:?] OF IfcCartesianPoint;
SurfaceForm : IfcBSplineSurfaceForm;
UClosed : IfcLogical;
VClosed : IfcLogical;
SelfIntersect : IfcLogical;
DERIVE
UUpper : IfcInteger := SIZEOF(ControlPointsList) - 1;
VUpper : IfcInteger := SIZEOF(ControlPointsList[1]) - 1;
ControlPoints : ARRAY [0:UUpper] OF ARRAY [0:VUpper] OF IfcCartesianPoint := IfcMakeArrayOfArray(ControlPointsList,
0,UUpper,0,VUpper);
END_ENTITY;