8.21.2.1 IfcChangeActionEnum(变更操作枚举)
8.21.2.1.1 语义定义
IfcChangeActionEnum 标识了对象在上次会话期间可能发生的变更类型(例如:添加、修改、删除)。在部分模型交换场景中需要此信息,以便应用程序或模型服务器能够了解对象可能受到先前应用程序影响的方式。有效枚举项包括:
假设应用程序 A 将创建一个 IFC 数据集,希望发布给其他方进行修改,并能够后续将这些变更合并回原始模型。在发布之前,它可能需要将 IfcChangeActionEnum 设置为 NOCHANGE 以建立基线,从而便于识别其他应用程序的变更。随后应用程序 B 接收此 IFC 数据集并添加新对象,将 IfcChangeActionEnum 设置为 ADDED,同时将应用程序 B 定义为所属应用程序。接着应用程序 B 修改现有对象,将 LastModifiedDate 重新定义为修改时间,将 LastModifyingUser 设置为执行变更的 IfcPersonAndOrganization,并将 LastModifyingApplication 设置为应用程序 B。当应用程序 A 收到此修改后的数据集时,可以确定哪些对象已被应用程序 B 添加和修改,并根据需要合并或拒绝这些变更。因此,其核心机制是:应用程序仅在对对象执行操作时修改 IfcChangeActionEnum 的值,而模型服务器在准备重新发布时负责将 IfcChangeActionEnum 重置为 NOCHANGE。
沿革 在 IFC2.0 中新增的枚举类型。
8.21.2.1.2 类型值
| 类型 | 描述 |
|---|---|
ADDED(已添加) |
对象已被 OwningUser 和 OwningApplication 分别定义的用户和应用程序创建。 |
DELETED(已删除) |
对象已被 LastModifyingUser 和 LastModifyingApplication 分别定义的用户和应用程序删除。 |
MODIFIED(已修改) |
对象已被 LastModifyingUser 和 LastModifyingApplication 分别定义的用户和应用程序修改。 |
NOCHANGE(无变更) |
对象未被修改。 |
NOTDEFINED(未定义) |
变更操作未知或未定义。 |
8.21.2.1.3 形式化表示
TYPE IfcChangeActionEnum = ENUMERATION OF
(ADDED
,DELETED
,MODIFIED
,NOCHANGE
,NOTDEFINED);
END_TYPE;