8.7.3.2 IfcAlignmentHorizontalSegment(线形水平段)
8.7.3.2.1 语义定义(Semantic definition)
在 x/y 坐标空间中定义的 IfcAlignmentHorizontal 沿线独立区段。每个独立的水平线形区段具有可选的关联区段定义。IfcAlignmentHorizontalSegment 的放置与 IfcCurveSegment 的 StartPlacement 相互对应。
以下信息可通过计算得出(因此为避免冗余和不一致,不进行显式交换):
- 终点(根据起点、方向、区段长度和曲线参数计算)
- 沿线起始距离(根据前一区段的沿线终点距离,或水平线形的沿线起始距离(若为首个区段)计算)
- 沿线终点距离(根据起始距离和区段长度计算)
- 终点方向(根据曲线参数、起始方向和区段长度计算)
- 交点(根据起始方向和终点方向计算)
可通过以下检查验证交换的正确性:
- 连续性——前一区段的计算终点是否与本区段提供的起点匹配
- 切向连续性——前一区段的计算终点方向是否与本区段提供的起始方向匹配
8.7.3.2.2 实体继承(Entity inheritance)
8.7.3.2.3 特性(Attributes)
| # | 特性(Attributes) | 类型 | 描述 |
|---|---|---|---|
| IfcAlignmentParameterSegment (2) | |||
| 1 | StartTag | OPTIONAL IfcLabel |
用于注释线形段起点的标签。 |
| 2 | EndTag | OPTIONAL IfcLabel |
用于注释线形段终点的标签。 |
| 点击显示 2 个隐藏的继承特性 点击隐藏 2 个继承特性 | |||
| IfcAlignmentHorizontalSegment (7) | |||
| 3 | StartPoint | IfcCartesianPoint |
由笛卡尔点定义的区段起点。 |
| 4 | StartDirection | IfcPlaneAngleMeasure |
起点处的切线方向。方向值 0 表示起始切线沿正 x 轴方向的曲线。数值逆时针递增,顺时针递减。根据平面角度单位(度或弧度),合理范围为 -360° ≤ n ≤ 360°(或 -2π ≤ n ≤ 2π)。不应使用大于整圆的值(>|360°| 或 >|2π|)。 |
| 5 | StartRadiusOfCurvature | IfcLengthMeasure |
对于非线性水平区段类型,表示起点处(区段的 Placement)的曲线半径。对于圆形类型,该值为常数,即 StartRadiusOfCurvature 和 EndRadiusOfCurvature 始终相同。对于直线类型,StartRadiusOfCurvature 和 EndRadiusOfCurvature 均为 0。若半径为 0,应解释为无穷大。正值表示逆时针方向,负值表示顺时针方向。 |
| 6 | EndRadiusOfCurvature | IfcLengthMeasure |
对于非线性水平区段类型,表示终点处的曲线半径。若半径为 0,应解释为无穷大。正值表示逆时针方向,负值表示顺时针方向。 |
| 7 | SegmentLength | IfcNonNegativeLengthMeasure |
沿曲线的长度。 |
| 8 | GravityCenterLineHeight | OPTIONAL IfcPositiveLengthMeasure |
维也纳弯道过渡段交换所需的可选属性。 |
| 9 | PredefinedType | IfcAlignmentHorizontalSegmentTypeEnum |
水平线形区段的预定义类型。 |
8.7.3.2.4 形式化表示(Formal representation)
ENTITY IfcAlignmentHorizontalSegment
SUBTYPE OF (IfcAlignmentParameterSegment);
StartPoint : IfcCartesianPoint;
StartDirection : IfcPlaneAngleMeasure;
StartRadiusOfCurvature : IfcLengthMeasure;
EndRadiusOfCurvature : IfcLengthMeasure;
SegmentLength : IfcNonNegativeLengthMeasure;
GravityCenterLineHeight : OPTIONAL IfcPositiveLengthMeasure;
PredefinedType : IfcAlignmentHorizontalSegmentTypeEnum;
END_ENTITY;