IFC 4.3.2.20251031 (IFC4X3_ADD2) under development

8.21.3.2 IfcOwnerHistory(所有者历史)

RV ⓘ
AbV ⓘ

8.21.3.2.1 语义定义(Semantic definition)

IfcOwnerHistory 定义了所有与历史和标识相关的信息。为提供快速访问,它直接关联至所有独立对象、关系和属性。

IfcOwnerHistory 用于标识关联对象的创建方和所属方应用及用户,同时记录最后修改的应用和用户。

非正式命题

  1. 若 LastModifiedDate 已定义但 ChangeAction 未断言,则假定 ChangeAction 状态为 UNDEFINED。
  2. 若 LastModifiedDate 与 ChangeAction 均被断言,则 ChangeAction 的状态适用于 LastModifiedDate 中的断言值。

8.21.3.2.2 实体继承(Entity inheritance)

8.21.3.2.3 特性(Attributes)

# 特性(Attributes) 类型 描述
IfcOwnerHistory (8)
1 OwningUser IfcPersonAndOrganization

直接引用当前"拥有"该对象的终端用户。注意 IFC 包含所有权在用户间转移的概念,因此需区分所属用户与创建用户。

2 OwningApplication IfcApplication

直接引用代表所属用户当前"拥有"该对象的应用程序。注意 IFC 包含所有权在应用间转移的概念,因此需区分所属应用与创建应用。

3 State OPTIONAL IfcStateEnum

定义对象当前访问状态的枚举。

4 ChangeAction OPTIONAL IfcChangeActionEnum

定义对象修改动作的枚举。

5 LastModifiedDate OPTIONAL IfcTimeStamp

由 LastModifyingUser 和 LastModifyingApplication 执行最后修改的日期与时间(以世界协调时 UTC 表示,原格林威治标准时 GMT)。

6 LastModifyingUser OPTIONAL IfcPersonAndOrganization

使用 LastModifyingApplication 执行最后修改的用户。

7 LastModifyingApplication OPTIONAL IfcApplication

用于执行最后修改的应用程序。

8 CreationDate IfcTimeStamp

由原始 OwningApplication 首次创建时的日期与时间(以世界协调时 UTC 表示,原格林威治标准时 GMT)。该值一经定义即在实体生命周期内保持不变。

表 8.21.3.2.A

8.21.3.2.4 形式化命题(Formal propositions)

名称 描述
CorrectChangeAction

若 ChangeAction 被断言且 LastModifiedDate 未定义,则 ChangeAction 必须设置为 NOTDEFINED

(EXISTS(LastModifiedDate)) OR
(NOT(EXISTS(LastModifiedDate)) AND NOT(EXISTS(ChangeAction))) OR
(NOT(EXISTS(LastModifiedDate)) AND EXISTS(ChangeAction) AND ((ChangeAction = IfcChangeActionEnum.NOTDEFINED) OR (ChangeAction = IfcChangeActionEnum.NOCHANGE)))
表 8.21.3.2.B

8.21.3.2.5 形式化表示(Formal representation)

ENTITY IfcOwnerHistory;
	OwningUser : IfcPersonAndOrganization;
	OwningApplication : IfcApplication;
	State : OPTIONAL IfcStateEnum;
	ChangeAction : OPTIONAL IfcChangeActionEnum;
	LastModifiedDate : OPTIONAL IfcTimeStamp;
	LastModifyingUser : OPTIONAL IfcPersonAndOrganization;
	LastModifyingApplication : OPTIONAL IfcApplication;
	CreationDate : IfcTimeStamp;
 WHERE
	CorrectChangeAction : (EXISTS(LastModifiedDate)) OR
(NOT(EXISTS(LastModifiedDate)) AND NOT(EXISTS(ChangeAction))) OR
(NOT(EXISTS(LastModifiedDate)) AND EXISTS(ChangeAction) AND ((ChangeAction = IfcChangeActionEnum.NOTDEFINED) OR (ChangeAction = IfcChangeActionEnum.NOCHANGE)));
END_ENTITY;

8.21.3.2.6 参考文献