8.21.3.2 IfcOwnerHistory(所有者历史)
RV ⓘ
AbV ⓘ
8.21.3.2.1 语义定义(Semantic definition)
IfcOwnerHistory 定义了所有与历史和标识相关的信息。为提供快速访问,它直接关联至所有独立对象、关系和属性。
IfcOwnerHistory 用于标识关联对象的创建方和所属方应用及用户,同时记录最后修改的应用和用户。
非正式命题
- 若 LastModifiedDate 已定义但 ChangeAction 未断言,则假定 ChangeAction 状态为 UNDEFINED。
- 若 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.4 形式化命题(Formal propositions)
| 名称 | 描述 |
|---|---|
| CorrectChangeAction |
若 ChangeAction 被断言且 LastModifiedDate 未定义,则 ChangeAction 必须设置为 NOTDEFINED |
|
|
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;