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