5.3.3.6 IfcTask(任务)
5.3.3.6.1 语义定义
IfcTask 是在建筑项目中需要完成的可识别的工作单元。
任务通常用于描述产品建造或安装的活动,但不仅限于这些类型。例如,它可能用于描述设计过程、搬迁操作以及其他与设计、建造和运营相关的活动。
任务消耗的资源数量通过定义资源的 IfcElementQuantity 来处理,而不是在 IfcTask 的实例处处理。
沿革 IFC1.0 中的新实体。在 IFC2x 中从 IfcWorkTask 重命名而来。
5.3.3.6.1.1 特性用法定义
每个 IfcTask 实例都有一个名称,该名称指示其内容(IfcRoot.Name)。可以提供任务的文本描述,并且可以通过叙述性长描述(IfcProcess.LongDescription)进一步阐述。可以声明用于执行任务的工作方法。任务被标识为里程碑任务或非里程碑任务。里程碑任务由标记 IsMilestone 定义,并且没有持续时间。还可以为每个任务设置状态和优先级。
5.3.3.6.1.2 时间和持续时间用法定义
与之前的 IFC 版本相比,基本任务时间信息(计划开始时间、计划完成时间、持续时间)现在通过 TaskTime 特性直接附加到 IfcTask。常规任务通过 IfcTaskTime 定义。重复任务通过 IfcTaskTimeRecurring 定义。如果常规任务是从重复任务派生的,则这两个任务应通过 IfcRelNests 关系链接在一起,其中 IfcRelNests.IsNestedBy 指向重复任务,IfcRelNests.Nests 指向所有从重复任务派生的常规任务。
5.3.3.6.1.3 其他活动的表示
IfcTask 的使用定义已泛化,以表示其他活动,包括先前 IFC 版本中已有自己实体的活动。这包括
- 订单操作
- 搬迁操作
IfcTask 表示一项订单,可能由作为组织接口的 Helpdesk 执行,负责在设施用户和满足其需求的功能需求之间进行协调。IfcTask 实体表示的任务是将请求转化为订单并启动以完成订单的行动。IfcProjectOrder 或其子类型(包括维护工单)通过 IfcRelAssignsToControl 与 IfcTask 相关联。
IfcTask 也可用于描述将人员、组织内的群体或完整的组织及其相关家具和设备从一个地方移动到另一个地方的活动。因此,它取代了以前的 IFC 实体 IfcMove。功能在 IfcTask 中表示如下:
- 移动来源:人员及其相关设备移动的地点。使用 IfcRelAssignsToProcess,其中 RelatingProcess 指向任务,RelatedObjects 包含移动的来源位置。
- 移动目的地:人员及其相关设备移动到的地点。使用 IfcRelAssignsToProduct,其中 RelatedObjects 指向任务,RelatingProduct 指向移动的目的地。
- 检查清单:关于需要关注的搬迁的要点列表。使用 LongDescription 或识别子任务以单独跟踪检查清单项(通过 IfcRelNests)。
5.3.3.6.2 实体继承
5.3.3.6.3 特性
| # | 特性 | 类型 | 描述 |
|---|---|---|---|
| IfcRoot (4) | |||
| 1 | GlobalId | IfcGloballyUniqueId |
在整个软件世界中分配全局唯一标识符。 |
| 2 | OwnerHistory | OPTIONAL IfcOwnerHistory |
分配有关该对象当前所有权的信息,包括所有者参与者、应用程序、本地标识以及捕获到的关于对象近期更改的信息。 |
| 3 | Name | OPTIONAL IfcLabel |
供参与的软件系统或用户使用的可选名称。对于某些 IfcRoot 的子类型,可能需要插入 Name 特性。这将通过 where 规则强制执行。 |
| 4 | Description | OPTIONAL IfcText |
可选的描述,用于提供信息性注释。 |
| IfcObjectDefinition (7) | |||
| HasAssignments | SET [0:?] OF IfcRelAssigns FOR RelatedObjects |
引用分配(通过关联关系)其他 IfcObject 子类型到此对象实例的关系对象。例如,与产品、过程、控制、资源或组的关联。 |
|
| Nests | SET [0:1] OF IfcRelNests FOR RelatedObjects |
引用作为嵌套的分解关系。它确定此对象定义是顺序整体/部分分解关系中的一部分。对象实例或类型只能是单个分解的一部分(仅允许分层结构)。 |
|
| IsNestedBy | SET [0:?] OF IfcRelNests FOR RelatingObject |
引用作为嵌套的分解关系。它确定此对象定义是顺序整体/部分分解关系中的整体。对象或对象类型可以被多个其他对象(实例或类型)嵌套。 |
|
| HasContext | SET [0:1] OF IfcRelDeclares FOR RelatedDefinitions |
引用提供上下文信息的上下文,例如项目单位或表示上下文。它只应断言在最上层的非空间对象上。 |
|
| IsDecomposedBy | SET [0:?] OF IfcRelAggregates FOR RelatingObject |
引用作为聚合的分解关系。它确定此对象定义是无序整体/部分分解关系中的整体。对象定义可以被多个其他对象(实例或部分)聚合。 |
|
| Decomposes | SET [0:1] OF IfcRelAggregates FOR RelatedObjects |
引用作为聚合的分解关系。它确定此对象定义是无序整体/部分分解关系中的一部分。对象定义只能是单个分解的一部分(仅允许分层结构)。 |
|
| HasAssociations | SET [0:?] OF IfcRelAssociates FOR RelatedObjects |
引用将外部资源或资源定义与对象关联的关系对象。例如,与库、文档或分类的关联。 |
|
| IfcObject (5) | |||
| 5 | ObjectType | OPTIONAL IfcLabel |
该类型表示指示对象的特定类型。其用法应在可实例化的子类型层级上确定。特别是,如果特性 PredefinedType 的枚举设置为 USERDEFINED,或者当实例化的具体实体没有 PredefinedType 特性时,它保存用户定义的类型。后者发生在一些特殊的叶子类中,以及直接实例化 IfcBuiltElement 时。 |
| IsDeclaredBy | SET [0:1] OF IfcRelDefinesByObject FOR RelatedObjects |
链接到指向声明对象的关系对象,该声明对象为此对象实例提供对象定义。声明对象应是对象类型分解的一部分。关联的 IfcObject 或其子类型包含特定信息(作为类型或样式定义的一部分),该信息适用于该声明 IfcObject 或其子类型的所有对应实例。 |
|
| Declares | SET [0:?] OF IfcRelDefinesByObject FOR RelatingObject |
链接到指向接收对象定义的实例对应对象的关系对象。实例对应的对象应是对象实例分解的一部分。关联的 IfcObject 或其子类型提供特定信息(作为类型或样式定义的一部分),该信息适用于该声明 IfcObject 或其子类型的所有对应实例。 |
|
| IsTypedBy | SET [0:1] OF IfcRelDefinesByType FOR RelatedObjects |
与对象类型的关系集合,该对象类型为此对象实例提供类型定义。然后,关联的 IfcTypeObject 或其子类型包含特定信息(或类型或样式),该信息对于引用同一类型的所有 IfcObject 或其子类型的实例是通用的。 |
|
| IsDefinedBy | SET [0:?] OF IfcRelDefinesByProperties FOR RelatedObjects |
与附加到此对象的属性集定义的集合的关系。这些静态或动态定义的特性包含字母数字信息内容,这些内容进一步定义了对象。 |
|
| IfcProcess (5) | |||
| 6 | Identification | OPTIONAL IfcIdentifier |
为过程或活动指定的标识名称。 它是实例级别的标识符。 |
| 7 | LongDescription | OPTIONAL IfcText |
可以提供的扩展描述或叙述。 |
| IsPredecessorTo | SET [0:?] OF IfcRelSequence FOR RelatingProcess |
两个活动之间的依赖关系,它引用此活动的前驱后续活动。两个活动之间的链接可以包括链接类型和滞后时间。 |
|
| IsSuccessorFrom | SET [0:?] OF IfcRelSequence FOR RelatedProcess |
两个活动之间的依赖关系,它引用此活动的后继前驱活动。两个活动之间的链接可以包括链接类型和滞后时间。 |
|
| OperatesOn | SET [0:?] OF IfcRelAssignsToProcess FOR RelatingProcess |
与其他对象(例如产品、过程、控制、资源或参与者)的关系集合,这些对象被该过程操作。 |
|
| 点击显示 21 个隐藏的继承特性 点击隐藏 21 个继承特性 | |||
| IfcTask (6) | |||
| 8 | Status | OPTIONAL IfcLabel |
任务的当前状态。 |
| 9 | WorkMethod | OPTIONAL IfcLabel |
执行任务时使用的工作方法。 |
| 10 | IsMilestone | IfcBoolean |
标识任务是否为里程碑任务(= TRUE)或非里程碑任务(= FALSE)。 |
| 11 | Priority | OPTIONAL IfcInteger |
一个值,指示任务的相对优先级(与其它任务的优先级相比)。 |
| 12 | TaskTime | OPTIONAL IfcTaskTime |
与任务相关的时间信息。 |
| 13 | PredefinedType | OPTIONAL IfcTaskTypeEnum |
标识任务的预定义类型,可从中设置所需的类型。 |
5.3.3.6.4 形式化命题
| 名称 | 描述 |
|---|---|
| CorrectPredefinedType |
当 PredefinedType 的取值为 USERDEFINED 时,应声明 ObjectType 特性。 |
|
|
| HasName |
应插入 Name 特性来描述任务名称。 |
|
|
5.3.3.6.5 属性集
-
Pset_PackingInstructions
MOVE- PackingCareType(包装维护类型)
- WrappingMaterial(包装材料)
- ContainerMaterial(容器材料)
- SpecialInstructions(特殊说明)
-
Pset_Risk
- RiskName(风险名称)
- RiskType(风险类型)
- NatureOfRisk(风险性质)
- RiskAssessmentMethodology(风险评估方法)
- UnmitigatedRiskLikelihood(未缓解风险可能性)
- UnmitigatedRiskConsequence(未缓解风险后果)
- UnmitigatedRiskSignificance(未缓解风险重要性)
- MitigationPlanned(计划缓解措施)
- MitigatedRiskLikelihood(缓解风险可能性)
- MitigatedRiskConsequence(缓解风险后果)
- MitigatedRiskSignificance(缓解风险显著性)
- MitigationProposed(缓解措施建议)
- AssociatedProduct(关联产品)
- AssociatedActivity(关联活动)
- AssociatedLocation(关联位置)
5.3.3.6.6 概念用法
| 概念 | 用法 | 描述 | ||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| IfcRoot (2) | ||||||||||||||||||||||||||||||||
| Revision Control(版本控制) | 通用用法 |
使用 IfcOwnerHistory 捕获所有权、历史记录和合并状态。 |
||||||||||||||||||||||||||||||
| Software Identity(软件标识) | 通用用法 |
IfcRoot 分配全局唯一 ID。此外,它还可以为概念提供名称和描述。 |
||||||||||||||||||||||||||||||
| IfcObjectDefinition (9) | ||||||||||||||||||||||||||||||||
| Aggregation(聚合) | 通用用法 |
无可用描述 |
||||||||||||||||||||||||||||||
| Approval Association(审批关联) | 通用用法 |
无可用描述 |
||||||||||||||||||||||||||||||
| Classification Association(分类关联) | 通用用法 |
任何对象实例或对象类型都可以具有对特定分类引用的引用,即对分类系统中特定方面的引用。 |
||||||||||||||||||||||||||||||
| Constraint Association(约束关联) | 通用用法 |
无可用描述 |
||||||||||||||||||||||||||||||
| Document Association(文档关联) | 通用用法 |
无可用描述 |
||||||||||||||||||||||||||||||
| Library Association(库关联) | 通用用法 |
无可用描述 |
||||||||||||||||||||||||||||||
| Material Association(材料关联) | 通用用法 |
无可用描述 |
||||||||||||||||||||||||||||||
| Material Single(单一材料) | 通用用法 |
无可用描述 |
||||||||||||||||||||||||||||||
| Nesting(嵌套) | 通用用法 |
无可用描述 |
||||||||||||||||||||||||||||||
| IfcObject (5) | ||||||||||||||||||||||||||||||||
| Assignment to Group(指定到组) | 通用用法 |
无可用描述 |
||||||||||||||||||||||||||||||
| Object Predefined Type(对象预定义类型) | 通用用法 |
无可用描述 |
||||||||||||||||||||||||||||||
| Object Typing(对象类型化) | 通用用法 |
任何对象实例都可以通过被分配给一个使用此概念的通用对象类型来类型化。通过在 IfcObject 的子类型级别覆盖此概念,引入了一个限制可分配的 IfcTypeObject 子类型的特定规则。 此概念可应用于以下资源 |
||||||||||||||||||||||||||||||
| Object User Identity(对象用户标识) | 通用用法 |
特性 Name 和可选的 Description 可用于 IfcObject 的所有子类型。对于那些具有对象类型定义的子类型,例如 IfcBeam - IfcBeamType,通用的 Name 和可选的 Description 与对象类型相关联。 |
||||||||||||||||||||||||||||||
| Property Sets with Override(带覆盖的属性集) | 通用用法 |
任何对象实例都可以拥有属性集,可以直接在对象实例上作为构件特定的属性集,也可以在对象类型上作为类型属性集。在这种情况下,提供给对象实例的特性是构件特定特性和类型特性的组合。如果在实例和类型特性中都定义了相同的特性(在同一属性集中),则实例特性的特性值将覆盖类型特性的特性值。 |
||||||||||||||||||||||||||||||
| IfcProcess (4) | ||||||||||||||||||||||||||||||||
| Object Typing(对象类型化) | 通用用法 |
此概念可应用于以下资源 |
||||||||||||||||||||||||||||||
| Process Assignment(过程指定) | 通用用法 |
无可用描述 |
||||||||||||||||||||||||||||||
| Property Sets for Objects(对象属性集) | 通用用法 |
此概念可应用于以下资源 |
||||||||||||||||||||||||||||||
| Sequential Connectivity(顺序连接) | 通用用法 |
无可用描述 |
||||||||||||||||||||||||||||||
| 点击显示 20 个隐藏的继承概念 点击隐藏 20 个继承概念 | ||||||||||||||||||||||||||||||||
| IfcTask (7) | ||||||||||||||||||||||||||||||||
| Classification Association(分类关联) | 通用用法 |
IfcTask 可分配来自已发布的外部结构或公司标准的分解结构(WBS)代码。除了用于指定代码之外,分类结构还允许识别工作分解结构分类的来源。 |
||||||||||||||||||||||||||||||
| Constraint Association(约束关联) | 通用用法 |
可以通过将 IfcMetric.ReferencePath 设置为 IfcTaskTime 实体上相应的特性来将约束应用于任务的计划持续时间、开始或完成。 图 5.3.3.6.1.3.A 指示任务的固定持续时间,其中 ConstraintGrade 为 HARD,Benchmark 为 EQUALTO,因此对分配的 IfcConstructionResource.Usage.ScheduleWork 的更改将影响 IfcConstructionResource.Usage.ScheduleUsage,反之亦然。 图 5.3.3.6.1.3.B 指示如何约束任务的计划开始日期。根据 ConstraintGrade 和 Benchmark,约束可能表示不同的含义,如表 5.3.3.6.1.3.I 所示。
图 5.3.3.6.1.3.C 指示如何约束任务的计划完成日期。根据 ConstraintGrade 和 Benchmark,约束可能表示不同的含义,如表 5.3.3.6.1.3.J 所示。
|
||||||||||||||||||||||||||||||
| Object Nesting(对象嵌套) | 通用用法 |
IfcTask 可通过 IfcRelNests 关系包含在 IfcTask 中。IfcTask 还可以嵌套其他 IfcTask、IfcProcedure 或 IfcEvent 实体。此类嵌套表示细节的分解级别。从 IFC4 开始,应具有一个汇总任务(所有任务的根),用于定义与工作计划或工作计划的链接。然后,所有汇总任务的子任务都将隐式链接到此工作计划或工作计划。请注意,汇总任务用于数据组织,不用于存储用户定义的典型任务信息。因此,建议隐藏汇总任务,以避免混淆。另请注意,IfcRelNests 用于显示常规任务和重复任务定义之间的依赖关系(请参阅有关时间和持续时间使用定义的章节)。 如图 5.3.3.6.1.3.D 所示,在特定空间内安装若干设备可能是一个任务的主题,该任务被标识为“在空间 123 中固定设备”。IfcTask 表示建筑计划中某种类型过程的工作执行实例。 ![]() 任务可以像子项一样嵌套其他任务;嵌套关系由 IfcRelNests 建模,如图 5.3.3.6.1.3.E 所示。例如,螺柱墙的建造可以被指定为一个名为“安装墙 #1”的嵌套任务,包括“安装干墙”、“安装螺柱”、“墙面抹灰”和“竖立墙”等子过程。一个值,指示任务的相对树视图位置(与其它任务的树视图位置和 IfcRelNests 定义的任务层级结构相比)。 用于查看的任务顺序信息源自 IfcRelNests 关系定义的顺序,因此独立于通过 IfcRelSequence 定义的逻辑任务顺序。IfcRelNests 定义的层级结构和顺序使得可以在树视图或列表视图结构中对任务进行排序。 ![]() 顶级任务通过 IfcRelDeclares 关系在 IfcProject 中声明。 此概念可应用于以下资源 |
||||||||||||||||||||||||||||||
| Object Typing(对象类型化) | 通用用法 |
IfcTask 定义了任何任务的预期或实际发生;关于任务类型的通用信息由 IfcTaskType 处理。 此概念可应用于以下资源 |
||||||||||||||||||||||||||||||
| Process Assignment(过程指定) | 通用用法 |
建议使用“汇总任务”(任务管理所需的任务层级结构根对象)将所有子任务分配给工作计划或工作计划。任务使用的资源通过 IfcRelAssignsToProcess 分配。 |
||||||||||||||||||||||||||||||
| Property Sets for Objects(对象属性集) | 通用用法 |
此概念可应用于以下资源
|
||||||||||||||||||||||||||||||
| Sequential Connectivity(顺序连接) | 通用用法 |
IfcRelSequence 关系用于指示控制流。作为 IfcTask 后继的 IfcTask 表示这些任务应如何执行的逻辑顺序。IfcTask 实体可以触发 IfcEvent 实体,也可以被 IfcEvent 实体触发,这也通过 IfcRelSequence 关系定义。 |
||||||||||||||||||||||||||||||
5.3.3.6.7 形式化表示
ENTITY IfcTask
SUBTYPE OF (IfcProcess);
Status : OPTIONAL IfcLabel;
WorkMethod : OPTIONAL IfcLabel;
IsMilestone : IfcBoolean;
Priority : OPTIONAL IfcInteger;
TaskTime : OPTIONAL IfcTaskTime;
PredefinedType : OPTIONAL IfcTaskTypeEnum;
WHERE
CorrectPredefinedType : NOT(EXISTS(PredefinedType)) OR (PredefinedType <> IfcTaskTypeEnum.USERDEFINED) OR ((PredefinedType = IfcTaskTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcObject.ObjectType));
HasName : EXISTS(SELF\IfcRoot.Name);
END_ENTITY;

