CFx SDK Documentation 2026 SP0
Loading...
Searching...
No Matches
OdIfc4x4::IfcTask Class Reference

#include <IfcTaskAutoImpl.h>

Inheritance diagram for OdIfc4x4::IfcTask:
OdIfc4x4::IfcProcess OdIfc4x4::IfcObject OdIfc4x4::IfcObjectDefinition OdIfc4x4::IfcRoot OdIfc4x4::OdIFC4X4Instance OdIfc::OdIfcInstance

Public Member Functions

const OdAnsiString & getStatus () const
 
void setStatus (const OdAnsiString &Status)
 
const OdAnsiString & getWorkMethod () const
 
void setWorkMethod (const OdAnsiString &WorkMethod)
 
OdDAI::Boolean getIsMilestone () const
 
void setIsMilestone (OdDAI::Boolean IsMilestone)
 
int getPriority () const
 
void setPriority (int Priority)
 
const OdDAIObjectId & getTaskTime () const
 
void setTaskTime (const OdDAIObjectId &TaskTime)
 
IfcTaskTypeEnum getPredefinedType () const
 
void setPredefinedType (IfcTaskTypeEnum PredefinedType)
 
 IfcTask ()
 
virtual OdResult inFields (OdDAI::OdSpfFilerBase *rdFiler) override
 
virtual OdResult outFields (OdDAI::OdSpfFilerBase *wrFiler) override
 
virtual OdDAI::Entity * getInstanceType () const override
 
virtual OdRxValue getAttr (const char *attrName) const override
 
virtual bool comparedToEarlyImpl (const OdDAI::ApplicationInstance *pOther, OdRx::Ordering &ordering) const override
 
virtual void unsetAttr (const char *explicitAttrName) override
 
virtual bool testAttr (const char *explicitAttrName) const override
 
virtual bool putAttr (const char *explicitAttrName, const OdRxValue &val) override
 
virtual bool isKindOf (OdIfc::OdIfcEntityType entityType) const override
 
virtual OdIfc::OdIfcEntityType type () const override
 
virtual OdRxValue getAttr (const OdIfc::OdIfcAttribute attrDef) const override
 
virtual void unsetAttr (const OdIfc::OdIfcAttribute explicitAttrDef) override
 
virtual bool testAttr (const OdIfc::OdIfcAttribute explicitAttrDef) const override
 
virtual bool putAttr (const OdIfc::OdIfcAttribute explicitAttrDef, const OdRxValue &val) override
 
- Public Member Functions inherited from OdIfc4x4::IfcProcess
const OdAnsiString & getIdentification () const
 
void setIdentification (const OdAnsiString &Identification)
 
const OdAnsiString & getLongDescription () const
 
void setLongDescription (const OdAnsiString &LongDescription)
 
void getInvIsPredecessorTo (OdDAIObjectIds &IsPredecessorTo) const
 
void getInvIsSuccessorFrom (OdDAIObjectIds &IsSuccessorFrom) const
 
void getInvOperatesOn (OdDAIObjectIds &OperatesOn) const
 
 IfcProcess ()
 
- Public Member Functions inherited from OdIfc4x4::IfcObject
const OdAnsiString & getObjectType () const
 
void setObjectType (const OdAnsiString &ObjectType)
 
void getInvIsDeclaredBy (OdDAIObjectIds &IsDeclaredBy) const
 
void getInvDeclares (OdDAIObjectIds &Declares) const
 
void getInvIsTypedBy (OdDAIObjectIds &IsTypedBy) const
 
void getInvIsDefinedBy (OdDAIObjectIds &IsDefinedBy) const
 
 IfcObject ()
 
- Public Member Functions inherited from OdIfc4x4::IfcObjectDefinition
void getInvHasAssignments (OdDAIObjectIds &HasAssignments) const
 
void getInvNests (OdDAIObjectIds &Nests) const
 
void getInvIsNestedBy (OdDAIObjectIds &IsNestedBy) const
 
void getInvHasContext (OdDAIObjectIds &HasContext) const
 
void getInvIsDecomposedBy (OdDAIObjectIds &IsDecomposedBy) const
 
void getInvDecomposes (OdDAIObjectIds &Decomposes) const
 
void getInvHasAssociations (OdDAIObjectIds &HasAssociations) const
 
- Public Member Functions inherited from OdIfc4x4::IfcRoot
OdDAI::CompressedGUID getGlobalId () const
 
void setGlobalId (OdDAI::CompressedGUID GlobalId)
 
const OdDAIObjectId & getOwnerHistory () const
 
void setOwnerHistory (const OdDAIObjectId &OwnerHistory)
 
const OdAnsiString & getName () const
 
void setName (const OdAnsiString &Name)
 
const OdAnsiString & getDescription () const
 
void setDescription (const OdAnsiString &Description)
 
 IfcRoot ()
 
- Public Member Functions inherited from OdIfc4x4::OdIFC4X4Instance
void setInverseCounterParts () override
 
- Public Member Functions inherited from OdIfc::OdIfcInstance
 ODRX_DECLARE_MEMBERS (OdIfcInstance)
 
 OdIfcInstance ()
 
 ~OdIfcInstance ()
 
bool isInstanceOf (OdIfcEntityType entityType) const
 
IfcOpResult resolved ()
 
void resolve (IfcOpResult resolved, void *resPtr)
 
void unresolve ()
 
virtual void setGsNode (OdGsCache *pGsNode)
 
virtual OdGsCachegsNode () const
 
virtual OdUInt32 subSetAttributes (OdGiDrawableTraits *traits) const
 
virtual bool subWorldDraw (OdGiWorldDraw *wd) const
 
virtual OdDbStub * ownerId () const
 

Protected Attributes

OdAnsiString m_Status
 
OdAnsiString m_WorkMethod
 
OdDAI::Boolean m_IsMilestone
 
int m_Priority
 
OdDAIObjectId m_TaskTime
 
OdDAI::Enum m_PredefinedType
 
- Protected Attributes inherited from OdIfc4x4::IfcProcess
OdAnsiString m_Identification
 
OdAnsiString m_LongDescription
 
- Protected Attributes inherited from OdIfc4x4::IfcObject
OdAnsiString m_ObjectType
 
- Protected Attributes inherited from OdIfc4x4::IfcRoot
OdDAI::CompressedGUID m_GlobalId
 
OdDAIObjectId m_OwnerHistory
 
OdAnsiString m_Name
 
OdAnsiString m_Description
 
- Protected Attributes inherited from OdIfc::OdIfcInstance
voidm_resPtr
 
IfcOpResult m_resolved
 

Additional Inherited Members

- Static Public Member Functions inherited from OdIfc::OdIfcInstance
static const OdGePoint3dasPoint3d (const OdIfcInstance *inst)
 
static const OdGePoint2dasPoint2d (const OdIfcInstance *inst)
 
static const OdGeVector3dasVector3d (const OdIfcInstance *inst)
 
static const OdGeVector2dasVector2d (const OdIfcInstance *inst)
 
static const OdGeMatrix2dasMatrix2d (const OdIfcInstance *inst)
 
static const OdGeMatrix3dasMatrix3d (const OdIfcInstance *inst)
 
static OdIfcCompoundPtr asCompound (OdSmartPtr< OdIfcInstance > inst)
 
static const OdCmEntityColorasRgbColor (const OdIfcInstance *inst)
 

Detailed Description

An IfcTask is an identifiable unit of work to be carried out in a construction project. A task is typically used to describe an activity for the construction or installation of products, but is not limited to these types. For example, it might be used to describe design processes, move operations and other design, construction and operation related activities as well. Quantities of resources consumed by the task are dealt with by defining the IfcElementQuantity for the resource and not at the instance of IfcTask.

  • Attribute Use Definition - Each occurrence of IfcTask is given a name that is indicative of its content (IfcRoot.Name). A textual description of the task can be provided and this can be further elaborated by a narrative long description (IfcProcess.LongDescription). A work method can be declared for the method of work used in carrying out a task. A task is identified as being either a milestone task or not. A milestone task is defined by the marker IsMilestone and has no duration. A status and priority for each task can also be set.
  • Time and Duration Use Definition - Compared to releases before IFC4, basic task time information (scheduled start time, scheduled finish time, duration) is now directly attached to IfcTask through the TaskTime attribute. Regular tasks are defined through IfcTaskTime. Recurring tasks are defined through IfcTaskTimeRecurring. In case a regular task is derived from a recurring task both tasks should be linked together through a IfcRelNests relationship, where IfcRelNests.IsNestedBy points to the recurring task and IfcRelNests.Nests points to all regular tasks that have been derived from the recurring task.
  • Representation of Other Activities - The use definitions for IfcTask have been generalized to represent other activities as well, including activities that had been defined by own entities in previous IFC releases. This includes: Order actions Move operations

IfcTask can also be used to describe an activity that moves people, groups within an organization or complete organizations together with their associated furniture and equipment from one place to another. Thus, it replaces the previous IFC entity IfcMove. The functionality is represented in IfcTask as follows: Move from: The place from which actors and their associated equipment are moving. Use IfcRelAssignsToProcess where RelatingProcess points to the task and RelatedObjects holds the location(s) from which to move. Move to: The place to which actors and their associated equipment are moving. Use IfcRelAssignsToProduct where RelatedObjects points to the task(s) and RelatingProduct points to the location to which to move. Punch list: A list of points concerning a move that require attention. Use LongDescription or identify sub-tasks to track punch list items individually via IfcRelNests.

  • Object Typing - The IfcTask defines the expected or actual occurrence of any task. Common information about task types is handled by IfcTaskType. EXAMPLE: It includes fixed duration, fixed unit or fixed work. An IfcTask can be aggregated to a task type in order to specify a task sequence or any time-related information, e.g. the duration of a task.
  • Property Sets - This concept can be applied to the following resources: Pset_PackingInstructions (only applies to MOVE)
  • Nesting - IfcTask can be contained within an IfcTask using the IfcRelNests relationship. An IfcTask can in turn nest other IfcTask, IfcProcedure or IfcEvent entities. Such nesting indicates decomposed level of detail. From IFC4 onwards it is required to have a summary task (root of all tasks), which is used to define a link to the work plan or work schedule. All subtasks of the summary tasks are then implicitly linked to this work plan or work schedule.

As shown on the image below, the installation of a number of items of equipment within a particular space can be the subject of a single task which is identified as 'fix equipment in space 123'. IfcTask represents the occurrence of a work performance of a type of process in a construction plan.

<IMAGE ifctask_example>

A task can nest other tasks as sub-items; the nesting relationship is modeled by IfcRelNests as shown on the image below. For example, the construction of a stud wall can be designated as a nesting task named 'install wall #1' including other tasks such as 'install dry wall', 'install studs', 'wall taping', and 'erect wall' as sub-processes.

The hierarchy and order defined through IfcRelNests enables to order the tasks in a tree view or list view structure.

<IMAGE IfcTask_instantiation_diagram>

A top-level task is declared within the IfcProject using the IfcRelDeclares relationship.

  • Sequential Connectivity - The relationship IfcRelSequence is used to indicate control flow. An IfcTask as a successor to an IfcTask indicates logical sequence how these tasks should be performed. IfcTask's can be triggered or can trigger IfcEvent's, which is also defined through the IfcRelSequence relationship.
  • Control Assignment - Occurrences of IfcTask can be assigned to an IfcWorkControl (either a work plan or a work schedule) through IfcRelAssignsToControl. Note that the IfcRelAssignsTasks relationship class has been removed in IFC4 and is no longer available.
  • Process Assignment - It is suggested to use the 'summary task' (root element of the task hierarchy that is required for task management purposes) to assign all subtask to a work plan or work schedule. Resources used by tasks are assigned by IfcRelAssignsToProcess.
  • Classification - An IfcTask can be assigned a Work Breakdown Structure (WBS) code. A WBS code is dealt with as a classification of task and is associated to a task occurrence using the IfcRelAssociatesClassification relationship class. As well as being to designate the code, the classification structure also enables the source of the work breakdown structure classification to be identified.
  • Constraint - Constraints can be applied to a task to indicate fixed task duration, fixed start or fixed finish, where IfcMetric.ReferencePath is set to the corresponding attribute on the IfcTaskTime entity.

\changes

IFC4 changes: Name of the IsMilestone attribute changed to Priority. Attribute IsMilestone is optional. Type of the IsMilestone attribute changed from "boolean" to "IfcInteger". Name of the Priority attribute changed to TaskTime. Type of the Priority attribute changed from "integer" to "IfcTaskTime".

Definition at line 132 of file IFC4X4/IfcTaskAutoImpl.h.

Constructor & Destructor Documentation

◆ IfcTask()

OdIfc4x4::IfcTask::IfcTask ( )

Default constructor for the IfcTask class.

Member Function Documentation

◆ comparedToEarlyImpl()

virtual bool OdIfc4x4::IfcTask::comparedToEarlyImpl ( const OdDAI::ApplicationInstance * pOther,
OdRx::Ordering & ordering ) const
overridevirtual

Early-bound version of instances comparison.

Parameters
pOther[in] Other application instance.
ordering[out] Receives the ordering (comparison) status.
Returns
true if comparison was performed, false if method has no implementation, so late-bound version could be applied.
Remarks
If the method returns true, the ordering parameter can receive one of the following statuses:
Value Description kLessThan -1 This object < Other Object. kEqual 0 This object = Other Object. kGreaterThan 1 This object > Other Object. kNotOrderable 2 This class is not orderable.

Reimplemented from OdIfc4x4::IfcProcess.

◆ getAttr() [1/2]

virtual OdRxValue OdIfc4x4::IfcTask::getAttr ( const char * attrName) const
overridevirtual

Returns an attribute value for the specified attribute name.

Parameters
attrName[in] Name of an attribute to query.
Returns
OdRxValue object that represents a generic variant type value.

Reimplemented from OdIfc4x4::IfcProcess.

◆ getAttr() [2/2]

virtual OdRxValue OdIfc4x4::IfcTask::getAttr ( const OdIfc::OdIfcAttribute attrDef) const
overridevirtual

Returns an attribute value for the specified attribute definition.

Parameters
attrDef[in] Attribute definition to query.
Returns
OdRxValue object that represents a generic variant type value.

Reimplemented from OdIfc4x4::IfcProcess.

◆ getInstanceType()

virtual OdDAI::Entity * OdIfc4x4::IfcTask::getInstanceType ( ) const
overridevirtual

Returns a type of a class instance.

Returns
Pointer to the <exref target=https://docs.opendesign.com/tkernel_api_cpp/OdDAI__Entity.html>>OdDAI::Entity</exref> type that determines an entity definition within a schema.

Reimplemented from OdIfc4x4::IfcProcess.

◆ getIsMilestone()

OdDAI::Boolean OdIfc4x4::IfcTask::getIsMilestone ( ) const

Returns the value of IsMilestone attribute. This attribute represents whether a task is a milestone task (=TRUE) or not(= FALSE).

Returns
Returns the value of IsMilestone attribute.
Remarks
In small project planning applications, a milestone task can be understood to be a task having no duration. As such, it represents a singular point in time.

◆ getPredefinedType()

IfcTaskTypeEnum OdIfc4x4::IfcTask::getPredefinedType ( ) const

Returns the value of PredefinedType attribute. This attribute represents the predefined types of a task from which the required type can be set.

Returns
Returns the value of PredefinedType attribute.

◆ getPriority()

int OdIfc4x4::IfcTask::getPriority ( ) const

Returns the value of Priority attribute. This attribute represents a value that indicates the relative priority of the task (in comparison to the priorities of other tasks).

Returns
Returns the value of Priority attribute.

◆ getStatus()

const OdAnsiString & OdIfc4x4::IfcTask::getStatus ( ) const

Returns the value of Status attribute. This attribute represents current status of the task.

Returns
Returns the value of Status attribute.
Remarks
Particular values for status are not specified, these should be determined and agreed by local usage. Examples of possible status values include 'Not Yet Started', 'Started', 'Completed'.

◆ getTaskTime()

const OdDAIObjectId & OdIfc4x4::IfcTask::getTaskTime ( ) const

Returns the value of TaskTime attribute. This attribute represents time related information for the task.

Returns
Returns the value of TaskTime attribute.

◆ getWorkMethod()

const OdAnsiString & OdIfc4x4::IfcTask::getWorkMethod ( ) const

Returns the value of WorkMethod attribute. This attribute represents the method of work used in carrying out a task.

Returns
Returns the value of WorkMethod attribute.
Remarks
This attribute should not be used if the work method is specified for the IfcTaskType.

◆ inFields()

virtual OdResult OdIfc4x4::IfcTask::inFields ( OdDAI::OdSpfFilerBase * rdFiler)
overridevirtual

Reads object's data from the specified filer.

Parameters
rdFiler[in] Pointer to a filer from which to read the data.
Returns
A value of OdResult type that contains the result of the method execution.

Reimplemented from OdIfc4x4::IfcProcess.

◆ isKindOf()

virtual bool OdIfc4x4::IfcTask::isKindOf ( OdIfc::OdIfcEntityType entityType) const
overridevirtual

Checks whether the specified instance is the object derived from or belongs to this class.

Parameters
entityType[in] Entity to check.
Returns
true if the specified instance is the object derived from or belongs to this class, false otherwise.

Reimplemented from OdIfc4x4::IfcProcess.

◆ outFields()

virtual OdResult OdIfc4x4::IfcTask::outFields ( OdDAI::OdSpfFilerBase * wrFiler)
overridevirtual

Writes object's data the the specified filer.

Parameters
wrFiler[in] Pointer to a filer to which to write the data.
Returns
A value of OdResult type that contains the result of the method execution.

Reimplemented from OdIfc4x4::IfcProcess.

◆ putAttr() [1/2]

virtual bool OdIfc4x4::IfcTask::putAttr ( const char * explicitAttrName,
const OdRxValue & val )
overridevirtual

Sets the specified attribute with a given value.

Parameters
explicitAttrName[in] Explicit name of the attribute to set.
val[in] Value to set.
Returns
true if the value is successfully set for the specified attribute, false otherwise.

Reimplemented from OdIfc4x4::IfcProcess.

◆ putAttr() [2/2]

virtual bool OdIfc4x4::IfcTask::putAttr ( const OdIfc::OdIfcAttribute explicitAttrDef,
const OdRxValue & val )
overridevirtual

Sets the specified attribute with a given value.

Parameters
explicitAttrDef[in] Explicit attribute definition to set.
val[in] Value to set.
Returns
true if the value is successfully set for the specified attribute, false otherwise.

Reimplemented from OdIfc4x4::IfcProcess.

◆ setIsMilestone()

void OdIfc4x4::IfcTask::setIsMilestone ( OdDAI::Boolean IsMilestone)

Sets the value of IsMilestone attribute. This attribute represents whether a task is a milestone task (=TRUE) or not(= FALSE).

Parameters
IsMilestone[in] IsMilestone attribute to set.
Remarks
In small project planning applications, a milestone task can be understood to be a task having no duration. As such, it represents a singular point in time.

◆ setPredefinedType()

void OdIfc4x4::IfcTask::setPredefinedType ( IfcTaskTypeEnum PredefinedType)

Sets the value of PredefinedType attribute. This attribute represents the predefined types of a task from which the required type can be set.

Parameters
PredefinedType[in] Predefined type to set.

◆ setPriority()

void OdIfc4x4::IfcTask::setPriority ( int Priority)

Sets the value of Priority attribute. This attribute represents a value that indicates the relative priority of the task (in comparison to the priorities of other tasks).

Parameters
Priority[in] Priority to set.

◆ setStatus()

void OdIfc4x4::IfcTask::setStatus ( const OdAnsiString & Status)

Sets the value of Status attribute. This attribute represents current status of the task.

Parameters
Status[in] Status to set.
Remarks
Particular values for status are not specified, these should be determined and agreed by local usage. Examples of possible status values include 'Not Yet Started', 'Started', 'Completed'.

◆ setTaskTime()

void OdIfc4x4::IfcTask::setTaskTime ( const OdDAIObjectId & TaskTime)

Sets the value of TaskTime attribute. This attribute represents time related information for the task.

Parameters
TaskTime[in] Task time to set.

◆ setWorkMethod()

void OdIfc4x4::IfcTask::setWorkMethod ( const OdAnsiString & WorkMethod)

Sets the value of WorkMethod attribute. This attribute represents the method of work used in carrying out a task.

Parameters
WorkMethod[in] Work method to set.
Remarks
This attribute should not be used if the work method is specified for the IfcTaskType.

◆ testAttr() [1/2]

virtual bool OdIfc4x4::IfcTask::testAttr ( const char * explicitAttrName) const
overridevirtual

Checks whether the specified attribute is set.

Parameters
explicitAttrName[in] Explicit name of the attribute to test.
Returns
true if the specified attribute is set, false otherwise.

Reimplemented from OdIfc4x4::IfcProcess.

◆ testAttr() [2/2]

virtual bool OdIfc4x4::IfcTask::testAttr ( const OdIfc::OdIfcAttribute explicitAttrDef) const
overridevirtual

Checks whether the specified attribute is set.

Parameters
explicitAttrDef[in] Attribute definition to test.
Returns
true if the specified attribute is set, false otherwise.

Reimplemented from OdIfc4x4::IfcProcess.

◆ type()

virtual OdIfc::OdIfcEntityType OdIfc4x4::IfcTask::type ( ) const
overridevirtual

Returns the type of this entity.

Returns
A value of the <exref target=https://docs.opendesign.com/tkernel_api_cpp/OdIfc__OdIfcEntityType.html>>OdIfc::OdIfcEntityType</exref> type that represents type of this entity.

Reimplemented from OdIfc4x4::IfcProcess.

◆ unsetAttr() [1/2]

virtual void OdIfc4x4::IfcTask::unsetAttr ( const char * explicitAttrName)
overridevirtual

Resets a value for the specified attribute.

Parameters
explicitAttrName[in] Explicit name of the attribute to reset.

Reimplemented from OdIfc4x4::IfcProcess.

◆ unsetAttr() [2/2]

virtual void OdIfc4x4::IfcTask::unsetAttr ( const OdIfc::OdIfcAttribute explicitAttrDef)
overridevirtual

Resets a value for the specified attribute.

Parameters
explicitAttrDef[in] Explicit definition that represents an attribute to reset.

Reimplemented from OdIfc4x4::IfcProcess.

Member Data Documentation

◆ m_IsMilestone

OdDAI::Boolean OdIfc4x4::IfcTask::m_IsMilestone
protected

Definition at line 381 of file IFC4X4/IfcTaskAutoImpl.h.

◆ m_PredefinedType

OdDAI::Enum OdIfc4x4::IfcTask::m_PredefinedType
protected

Definition at line 384 of file IFC4X4/IfcTaskAutoImpl.h.

◆ m_Priority

int OdIfc4x4::IfcTask::m_Priority
protected

Definition at line 382 of file IFC4X4/IfcTaskAutoImpl.h.

◆ m_Status

OdAnsiString OdIfc4x4::IfcTask::m_Status
protected

Definition at line 379 of file IFC4X4/IfcTaskAutoImpl.h.

◆ m_TaskTime

OdDAIObjectId OdIfc4x4::IfcTask::m_TaskTime
protected

Definition at line 383 of file IFC4X4/IfcTaskAutoImpl.h.

◆ m_WorkMethod

OdAnsiString OdIfc4x4::IfcTask::m_WorkMethod
protected

Definition at line 380 of file IFC4X4/IfcTaskAutoImpl.h.


The documentation for this class was generated from the following file: