///////////////////////////////////////////////////////////////////////////////
// Copyright (C) 2002-2025, Open Design Alliance (the "Alliance").
// All rights reserved.
//
// This software and its documentation and related materials are owned by
// the Alliance. The software may only be incorporated into application
// programs owned by members of the Alliance, subject to a signed
// Membership Agreement and Supplemental Software License Agreement with the
// Alliance. The structure and organization of this software are the valuable
// trade secrets of the Alliance and its suppliers. The software is also
// protected by copyright law and international treaty provisions. Application
// programs incorporating this software must include the following statement
// with their copyright notices:
//
// This application incorporates Open Design Alliance software pursuant to a license
// agreement with Open Design Alliance.
// Open Design Alliance Copyright (C) 2002-2025 by Open Design Alliance.
// All rights reserved.
//
// By use of this software, its documentation or related materials, you
// acknowledge and accept the above terms.
///////////////////////////////////////////////////////////////////////////////
// This file is generated automatically.
#ifndef _IFC4X3_ADD2_IFCTASKTIME_AUTO_IMPL_H
#define _IFC4X3_ADD2_IFCTASKTIME_AUTO_IMPL_H
#include "IfcSchedulingTimeAutoImpl.h"
#include "TD_PackPush.h"
/** \details
The namespace contains schema-dependent classes, definitions and sub routines
for work with IFC4X3_ADD2 express schema definitions.
*/
namespace OdIfc4x3_add2 {
/** \details
IfcTaskTime captures the time-related information about a task including the different types (actual or scheduled) of starting and ending times.
*/
class IFC4X3_EXPORT IfcTaskTime : public IfcSchedulingTime
{
//DOM-IGNORE-BEGIN
OD_EXP_DECLARE_MEMBERS(OdIfc4x3_add2::IfcTaskTime);
//DOM-IGNORE-END
public:
//
// OdDAI early binding accessors
//
/** \details
Returns the value of DurationType attribute.
This attribute specifies the type of duration values for ScheduleDuration, ActualDuration and RemainingTime.
The duration type is either work time or elapsed time.
\returns
Returns the value of DurationType attribute.
*/
IfcTaskDurationEnum getDurationType() const;
/** \details
Sets the value of DurationType attribute.
This attribute specifies the type of duration values for ScheduleDuration, ActualDuration and RemainingTime.
The duration type is either work time or elapsed time.
\param DurationType [in] Duration type to set.
*/
void setDurationType(IfcTaskDurationEnum DurationType);
/** \details
Returns the value of ScheduleDuration attribute.
This attribute represents the amount of time which is scheduled for completion of a task.
The value can be measured or somehow calculated, which is defined byScheduleDataOrigin.
The value is either provided as elapsed time or work time, which is defined by DurationType.
\returns
Returns the value of ScheduleDuration attribute.
\remarks
Scheduled duration can be calculated as the time from scheduled start date to scheduled finish date.
*/
const OdAnsiString& getScheduleDuration() const;
/** \details
Sets the value of ScheduleDuration attribute.
This attribute represents the amount of time which is scheduled for completion of a task.
The value can be measured or somehow calculated, which is defined byScheduleDataOrigin.
The value is either provided as elapsed time or work time, which is defined by DurationType.
\param ScheduleDuration [in] Schedule duration to set.
\remarks
Scheduled duration can be calculated as the time from scheduled start date to scheduled finish date.
*/
void setScheduleDuration(const OdAnsiString& ScheduleDuration);
/** \details
Returns the value of ScheduleStart attribute.
This attribute represents the date on which a task is scheduled to be started.
The value can be measured or somehow calculated, which is defined byScheduleDataOrigin.
\returns
Returns the value of ScheduleStart attribute.
\remarks
The scheduled start date must be greater than or equal to the earliest start date.
*/
const OdAnsiString& getScheduleStart() const;
/** \details
Sets the value of ScheduleStart attribute.
This attribute represents the date on which a task is scheduled to be started.
The value can be measured or somehow calculated, which is defined byScheduleDataOrigin.
\param ScheduleStart [in] Schedule start to set.
\remarks
The scheduled start date must be greater than or equal to the earliest start date.
*/
void setScheduleStart(const OdAnsiString& ScheduleStart);
/** \details
Returns the value of ScheduleFinish attribute.
This attribute represents the date on which a task is scheduled to be finished.
The value can be measured or somehow calculated, which is defined by ScheduleDataOrigin.
\returns
Returns the value of ScheduleFinish attribute.
\remarks
The scheduled finish date must be greater than or equal to the earliest finish date.
*/
const OdAnsiString& getScheduleFinish() const;
/** \details
Sets the value of ScheduleFinish attribute.
This attribute represents the date on which a task is scheduled to be finished.
The value can be measured or somehow calculated, which is defined by ScheduleDataOrigin.
\param ScheduleFinish [in] Schedule finish to set.
\remarks
The scheduled finish date must be greater than or equal to the earliest finish date.
*/
void setScheduleFinish(const OdAnsiString& ScheduleFinish);
/** \details
Returns the value of EarlyStart attribute.
This attribute represents the earliest date on which a task can be started.
\returns
Returns the value of EarlyStart attribute.
*/
const OdAnsiString& getEarlyStart() const;
/** \details
Sets the value of EarlyStart attribute.
This attribute represents the earliest date on which a task can be started.
\param EarlyStart [in] Early start to set.
*/
void setEarlyStart(const OdAnsiString& EarlyStart);
/** \details
Returns the value of EarlyFinish attribute.
This attribute represents the earliest date on which a task can be finished.
\returns
Returns the value of EarlyFinish attribute.
*/
const OdAnsiString& getEarlyFinish() const;
/** \details
Sets the value of EarlyFinish attribute.
This attribute represents the earliest date on which a task can be finished.
\param EarlyFinish [in] Early finish to set.
*/
void setEarlyFinish(const OdAnsiString& EarlyFinish);
/** \details
Returns the value of LateStart attribute.
This attribute represents the latest date on which a task can be started.
\returns
Returns the value of LateStart attribute.
*/
const OdAnsiString& getLateStart() const;
/** \details
Sets the value of LateStart attribute.
This attribute represents the latest date on which a task can be started.
\param LateStart [in] Late start to set.
*/
void setLateStart(const OdAnsiString& LateStart);
/** \details
Returns the value of LateFinish attribute.
This attribute represents the latest date on which a task can be finished.
\returns
Returns the value of LateFinish attribute.
*/
const OdAnsiString& getLateFinish() const;
/** \details
Sets the value of LateFinish attribute.
This attribute represents the latest date on which a task can be finished.
\param LateFinish [in] Late finish to set.
*/
void setLateFinish(const OdAnsiString& LateFinish);
/** \details
Returns the value of FreeFloat attribute.
This attribute represents the amount of time during which the start or finish of a task
can be varied without any effect on the overall program of work.
\returns
Returns the value of FreeFloat attribute.
*/
const OdAnsiString& getFreeFloat() const;
/** \details
Sets the value of FreeFloat attribute.
This attribute represents the amount of time during which the start or finish of a task
can be varied without any effect on the overall program of work.
\param FreeFloat [in] Free float to set.
*/
void setFreeFloat(const OdAnsiString& FreeFloat);
/** \details
Returns the value of TotalFloat attribute.
This attribute represents the difference between the duration available to carry out a task and the scheduled duration of the task.
\returns
Returns the value of TotalFloat attribute.
\remarks
Total Float time can be calculated as a the difference
between the scheduled duration of a task and the available duration from earliest start to latest finish.
Float time can be either positive, zero or negative. Where it is zero or negative, the task becomes critical.
*/
const OdAnsiString& getTotalFloat() const;
/** \details
Sets the value of TotalFloat attribute.
This attribute represents the difference between the duration available to carry out a task and the scheduled duration of the task.
\param TotalFloat [in] Total float to set.
\remarks
Total Float time can be calculated as a the difference
between the scheduled duration of a task and the available duration from earliest start to latest finish.
Float time can be either positive, zero or negative. Where it is zero or negative, the task becomes critical.
*/
void setTotalFloat(const OdAnsiString& TotalFloat);
/** \details
Returns the value of IsCritical attribute.
This attribute indicates whether a scheduled task is a critical item within the program.
\returns
Returns the value of IsCritical attribute.
\remarks
A task becomes critical when the float time becomes zero or negative.
*/
OdDAI::Boolean getIsCritical() const;
/** \details
Sets the value of IsCritical attribute.
This attribute indicates whether a scheduled task is a critical item within the program.
\param IsCritical [in] IsCritical attribute to set.
\remarks
A task becomes critical when the float time becomes zero or negative.
*/
void setIsCritical(OdDAI::Boolean IsCritical);
/** \details
Returns the value of StatusTime attribute.
This attribute represents the date or time at which the status of the tasks within the schedule is analyzed.
\returns
Returns the value of StatusTime attribute.
*/
const OdAnsiString& getStatusTime() const;
/** \details
Sets the value of StatusTime attribute.
This attribute represents the date or time at which the status of the tasks within the schedule is analyzed.
\param StatusTime [in] Status time to set.
*/
void setStatusTime(const OdAnsiString& StatusTime);
/** \details
Returns the value of ActualDuration attribute.
This attribute represents the actual duration of the task.
The value is either provided as elapsed time or work time, which is defined by DurationType.
\returns
Returns the value of ActualDuration attribute.
*/
const OdAnsiString& getActualDuration() const;
/** \details
Sets the value of ActualDuration attribute.
This attribute represents the actual duration of the task.
The value is either provided as elapsed time or work time, which is defined by DurationType.
\param ActualDuration [in] Actual duration to set.
*/
void setActualDuration(const OdAnsiString& ActualDuration);
/** \details
Returns the value of ActualStart attribute.
This attribute represents the date on which a task is actually started.
\returns
Returns the value of ActualStart attribute.
\remarks
The scheduled start date must be greater than or equal to the earliest start date.
No constraint is applied to the actual start date with respect to the scheduled start date
since a task can be started earlier than had originally been scheduled if circumstances allow.
*/
const OdAnsiString& getActualStart() const;
/** \details
Sets the value of ActualStart attribute.
This attribute represents the date on which a task is actually started.
\param ActualStart [in] Actual start to set.
\remarks
The scheduled start date must be greater than or equal to the earliest start date.
No constraint is applied to the actual start date with respect to the scheduled start date
since a task can be started earlier than had originally been scheduled if circumstances allow.
*/
void setActualStart(const OdAnsiString& ActualStart);
/** \details
Returns the value of ActualFinish attribute.
This attribute represents the date on which a task is actually finished.
\returns
Returns the value of ActualFinish attribute.
*/
const OdAnsiString& getActualFinish() const;
/** \details
Sets the value of ActualFinish attribute.
This attribute represents the date on which a task is actually finished.
\param ActualFinish [in] Actual finish to set.
*/
void setActualFinish(const OdAnsiString& ActualFinish);
/** \details
Returns the value of RemainingTime attribute.
This attribute represents the amount of time remaining to complete a task.
The value is either provided as elapsed time or work time, which is defined by DurationType.
\returns
Returns the value of RemainingTime attribute.
\remarks
The time remaining in which to complete a task can be determined both for tasks which have not yet started and those which have.
Remaining time for a task that has not started has the same value as the scheduled duration.
For a task already started, remaining time is calculated as the difference between the scheduled finish and the point of analysis.
*/
const OdAnsiString& getRemainingTime() const;
/** \details
Sets the value of RemainingTime attribute.
This attribute represents the amount of time remaining to complete a task.
The value is either provided as elapsed time or work time, which is defined by DurationType.
\param RemainingTime [in] Remaining time to set.
\remarks
The time remaining in which to complete a task can be determined both for tasks which have not yet started and those which have.
Remaining time for a task that has not started has the same value as the scheduled duration.
For a task already started, remaining time is calculated as the difference between the scheduled finish and the point of analysis.
*/
void setRemainingTime(const OdAnsiString& RemainingTime);
/** \details
Returns the value of Completion attribute.
This attribute represents the extent of completion expressed as a ratio or percentage.
\returns
Returns the value of Completion attribute.
*/
double getCompletion() const;
/** \details
Sets the value of Completion attribute.
This attribute represents the extent of completion expressed as a ratio or percentage.
\param Completion [in] Completion to set.
*/
void setCompletion(double Completion);
public:
/** \details
Default constructor for the IfcTaskTime class.
*/
IfcTaskTime();
/** \details
Reads object's data from the specified filer.
\param 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.
*/
virtual OdResult inFields(OdDAI::OdSpfFilerBase* rdFiler) override;
/** \details
Writes object's data the the specified filer.
\param 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.
*/
virtual OdResult outFields(OdDAI::OdSpfFilerBase* wrFiler) override;
/** \details
Returns a type of a class instance.
\returns
Pointer to the