IFC 4.3.2.20251031 (IFC4X3_ADD2) under development

8.9.3.74 IfcTrimmedCurve(裁剪曲线)

8.9.3.74.1 语义定义(Semantic definition)

IfcTrimmedCurve 是一种在两端被裁剪的有界曲线。裁剪点可以通过笛卡尔点或参数值提供,具体取决于 BasisCurve 的参数化方式。SenseAgreement 属性指示 IfcTrimmedCurve 的方向是否与 BasisCurve 的方向一致或相反。

曲线参数化
图 8.9.3.74.A 显示了通过相同的 BasisCurve(类型为 IfcCircle)和相同的裁剪点(由笛卡尔点和参数值给出),通过为 Trim1Trim2SenseAgreement 使用不同的赋值,可以定义的四段圆弧(带有箭头显示不同方向的蓝色和绿色虚线)。

曲线的每一端至少应指定其中一种方式。SenseAgreement 使得能够明确地定义闭合曲线(如圆)的任何段。方向和有序端点的组合使得可以定义连接圆或其他闭合曲线上两个不同点的四个不同的有向段。为此,假定参数范围具有循环特性;例如,370 度等同于 10 度。

IfcTrimmedCurve 具有从特定基础曲线引用继承的参数化。更精确地说,裁剪曲线的参数 s 从基础曲线的参数导出如下:

  • 如果 SenseAgreement 为 TRUE:s = t - t~1~
  • 如果 SenseAgreement 为 FALSE:s = t~2~ - t

在上述等式中,t~1~ 是由 Trim1 给出的值或对应于点 1 的参数值,t~2~ 是由 Trim2 给出的值或对应于点 2 的参数值。生成的 IfcTrimmedCurve 的参数范围从第一个裁剪点的 0 到第二个裁剪点的 |t~2~ - t~1~|。

非正式命题

  1. 如果 Trim1Trim2 同时存在参数值和笛卡尔点,则它们必须一致。(即,在参数值处评估的 BasisCurve 必须与指定的点重合)。
  2. 当通过 Trim1Trim2 指定笛卡尔点时,该点必须位于 BasisCurve 上。
  3. 除了闭合 BasisCurve 且参数 1 和参数 2 都存在的情况外,它们必须与方向标志一致,即(方向 = 参数 1 < 参数 2)。或者,对于每个开放曲线,如果参数 1 和参数 2 都存在,则它们必须与 SenseAgreement 一致,即 SenseAgreement = (参数 1 < 参数 2)。
  4. 如果参数 1 和参数 2 都存在,则参数 1 <> 参数 2。对于闭合基础曲线,例如 IfcCircleIfcEllipse,这也适用于循环特性,因为 360' 等于 0',参数 1 = 360' 和参数 2 = 0' 被视为相等,因此违反此命题。
  5. 当通过 Trim1Trim2 指定参数值时,该值必须位于 BasisCurve 的参数范围内。

8.9.3.74.2 实体继承(Entity inheritance)

8.9.3.74.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)的定义各不相同。

点击显示 3 个隐藏的继承特性 点击隐藏 3 个继承特性
IfcTrimmedCurve (5)
1 BasisCurve IfcCurve

要被裁剪的曲线。对于具有多种表示的曲线,任何作为 Trim1 或 Trim2 给出的参数值仅引用 BasisCurve 的主表示。

2 Trim1 SET [1:2] OF IfcTrimmingSelect

第一个裁剪点,可以指定为笛卡尔点、实数参数或两者。

3 Trim2 SET [1:2] OF IfcTrimmingSelect

第二个裁剪点,可以指定为笛卡尔点、实数参数或两者。

4 SenseAgreement IfcBoolean

指示裁剪曲线的方向是否与基础曲线的方向一致或相反的标志。

5 MasterRepresentation IfcTrimmingPreference

当曲线的任一端同时存在参数和点时,指示首选形式。

表 8.9.3.74.B

8.9.3.74.4 形式化命题(Formal propositions)

名称 描述
NoTrimOfBoundedCurves

已绑定的曲线不应被裁剪。

NOT('IFC4X3_DEV_62887e3f.IFCBOUNDEDCURVE' IN TYPEOF(BasisCurve))
Trim1ValuesConsistent

Trim1 要么指定单个值,要么两个裁剪值类型不同(点和参数)

(HIINDEX(Trim1) = 1) OR (TYPEOF(Trim1[1]) <> TYPEOF(Trim1[2]))
Trim2ValuesConsistent

Trim2 要么指定单个值,要么两个裁剪值类型不同(点和参数)

(HIINDEX(Trim2) = 1) OR (TYPEOF(Trim2[1]) <> TYPEOF(Trim2[2]))
表 8.9.3.74.C

8.9.3.74.5 形式化表示(Formal representation)

ENTITY IfcTrimmedCurve
 SUBTYPE OF (IfcBoundedCurve);
	BasisCurve : IfcCurve;
	Trim1 : SET [1:2] OF IfcTrimmingSelect;
	Trim2 : SET [1:2] OF IfcTrimmingSelect;
	SenseAgreement : IfcBoolean;
	MasterRepresentation : IfcTrimmingPreference;
 WHERE
	NoTrimOfBoundedCurves : NOT('IFC4X3_DEV_62887e3f.IFCBOUNDEDCURVE' IN TYPEOF(BasisCurve));
	Trim1ValuesConsistent : (HIINDEX(Trim1) = 1) OR (TYPEOF(Trim1[1]) <> TYPEOF(Trim1[2]));
	Trim2ValuesConsistent : (HIINDEX(Trim2) = 1) OR (TYPEOF(Trim2[1]) <> TYPEOF(Trim2[2]));
END_ENTITY;

8.9.3.74.6 参考文献