///////////////////////////////////////////////////////////////////////////////
// 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_IFCRESOURCETIME_AUTO_IMPL_H
#define _IFC4X3_ADD2_IFCRESOURCETIME_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
IfcResourceTime captures the time-related information about a construction resource.
*/
class IFC4X3_EXPORT IfcResourceTime : public IfcSchedulingTime
{
//DOM-IGNORE-BEGIN
OD_EXP_DECLARE_MEMBERS(OdIfc4x3_add2::IfcResourceTime);
//DOM-IGNORE-END
public:
//
// OdDAI early binding accessors
//
/** \details
Returns the value of ScheduleWork attribute.
This attribute represents the total work (e.g. person-hours) allocated to the task on behalf of the resource.
\returns
Returns the value of ScheduleWork attribute.
\remarks
This is not necessarily the same as the task duration (IfcTaskTime.ScheduleDuration);
it can vary according to the resource usage ratio and other resources assigned to the task.
*/
const OdAnsiString& getScheduleWork() const;
/** \details
Sets the value of ScheduleWork attribute.
This attribute represents the total work (e.g. person-hours) allocated to the task on behalf of the resource.
\param ScheduleWork [in] Schedule work to set.
\remarks
This is not necessarily the same as the task duration (IfcTaskTime.ScheduleDuration);
it can vary according to the resource usage ratio and other resources assigned to the task.
*/
void setScheduleWork(const OdAnsiString& ScheduleWork);
/** \details
Returns the value of ScheduleUsage attribute.
This attribute represents the amount of the resource used concurrently.
For example, 100% means 1 worker, 300% means 3 workers, 50% means half of 1 worker's time for scenarios where multitasking is feasible.
If not provided, then the usage ratio is considered to be 100%.
\returns
Returns the value of ScheduleUsage attribute.
*/
double getScheduleUsage() const;
/** \details
Sets the value of ScheduleUsage attribute.
This attribute represents the amount of the resource used concurrently.
For example, 100% means 1 worker, 300% means 3 workers, 50% means half of 1 worker's time for scenarios where multitasking is feasible.
If not provided, then the usage ratio is considered to be 100%.
\param ScheduleUsage [in] Schedule usage to set.
*/
void setScheduleUsage(double ScheduleUsage);
/** \details
Returns the value of ScheduleStart attribute.
This attribute represents the time when the resource is scheduled to start working.
\returns
Returns the value of ScheduleStart attribute.
*/
const OdAnsiString& getScheduleStart() const;
/** \details
Sets the value of ScheduleStart attribute.
This attribute represents the time when the resource is scheduled to start working.
\param ScheduleStart [in] Schedule start to set.
*/
void setScheduleStart(const OdAnsiString& ScheduleStart);
/** \details
Returns the value of ScheduleFinish attribute.
This attribute represents the time when the resource is scheduled to finish working.
\returns
Returns the value of ScheduleFinish attribute.
*/
const OdAnsiString& getScheduleFinish() const;
/** \details
Sets the value of ScheduleFinish attribute.
This attribute represents the time when the resource is scheduled to finish working.
\param ScheduleFinish [in] Schedule finish to set.
*/
void setScheduleFinish(const OdAnsiString& ScheduleFinish);
/** \details
Returns the value of ScheduleContour attribute.
This attribute indicates how a resource should be leveled over time by adjusting the resource usage according to a specified curve.
Standard values include: 'Flat', 'BackLoaded', 'FrontLoaded', 'DoublePeak', 'EarlyPeak', 'LatePeak', 'Bell', and 'Turtle'.
Custom values specify a custom name or formula.
\returns
Returns the value of ScheduleContour attribute.
*/
const OdAnsiString& getScheduleContour() const;
/** \details
Sets the value of ScheduleContour attribute.
This attribute indicates how a resource should be leveled over time by adjusting the resource usage according to a specified curve.
Standard values include: 'Flat', 'BackLoaded', 'FrontLoaded', 'DoublePeak', 'EarlyPeak', 'LatePeak', 'Bell', and 'Turtle'.
Custom values specify a custom name or formula.
\param ScheduleContour [in] Schedule contour to set.
*/
void setScheduleContour(const OdAnsiString& ScheduleContour);
/** \details
Returns the value of LevelingDelay attribute.
This attribute represents a delay in the ScheduleStart caused by leveling.
\returns
Returns the value of LevelingDelay attribute.
*/
const OdAnsiString& getLevelingDelay() const;
/** \details
Sets the value of LevelingDelay attribute.
This attribute represents a delay in the ScheduleStart caused by leveling.
\param LevelingDelay [in] Leveling delay to set.
*/
void setLevelingDelay(const OdAnsiString& LevelingDelay);
/** \details
Returns the value of IsOverAllocated attribute.
This attribute indicates whether the resource is scheduled in excess of its capacity.
\returns
Returns the value of IsOverAllocated attribute.
*/
OdDAI::Boolean getIsOverAllocated() const;
/** \details
Sets the value of IsOverAllocated attribute.
This attribute indicates whether the resource is scheduled in excess of its capacity.
\param IsOverAllocated [in] IsOverAllocated attribute to set.
*/
void setIsOverAllocated(OdDAI::Boolean IsOverAllocated);
/** \details
Returns the value of StatusTime attribute.
This attribute represents the date and time for which status values are applicable;
particularly completion, actual, and remaining values.
If values are time-phased (the referencing IfcConstructionResource has associated time series values for attributes),
then the status values can be determined from such time-phased data as of the StatusTime.
\returns
Returns the value of StatusTime attribute.
*/
const OdAnsiString& getStatusTime() const;
/** \details
Sets the value of StatusTime attribute.
This attribute represents the date and time for which status values are applicable;
particularly completion, actual, and remaining values.
If values are time-phased (the referencing IfcConstructionResource has associated time series values for attributes),
then the status values can be determined from such time-phased data as of the StatusTime.
\param StatusTime [in] Status time to set.
*/
void setStatusTime(const OdAnsiString& StatusTime);
/** \details
Returns the value of ActualWork attribute.
This attribute represents the actual work performed by the resource as of the StatusTime.
\returns
Returns the value of ActualWork attribute.
*/
const OdAnsiString& getActualWork() const;
/** \details
Sets the value of ActualWork attribute.
This attribute represents the actual work performed by the resource as of the StatusTime.
\param ActualWork [in] Actual work to set.
*/
void setActualWork(const OdAnsiString& ActualWork);
/** \details
Returns the value of ActualUsage attribute.
This attribute represents the actual amount of the resource used concurrently.
\returns
Returns the value of ActualUsage attribute.
*/
double getActualUsage() const;
/** \details
Sets the value of ActualUsage attribute.
This attribute represents the actual amount of the resource used concurrently.
\param ActualUsage [in] Actual usage to set.
*/
void setActualUsage(double ActualUsage);
/** \details
Returns the value of ActualStart attribute.
This attribute represents the time when the resource actually started working.
\returns
Returns the value of ActualStart attribute.
*/
const OdAnsiString& getActualStart() const;
/** \details
Sets the value of ActualStart attribute.
This attribute represents the time when the resource actually started working.
\param ActualStart [in] Actual start to set.
*/
void setActualStart(const OdAnsiString& ActualStart);
/** \details
Returns the value of ActualFinish attribute.
This attribute represents the time when the resource actually finished working.
\returns
Returns the value of ActualFinish attribute.
*/
const OdAnsiString& getActualFinish() const;
/** \details
Sets the value of ActualFinish attribute.
This attribute represents the time when the resource actually finished working.
\param ActualFinish [in] Actual finish to set.
*/
void setActualFinish(const OdAnsiString& ActualFinish);
/** \details
Returns the value of RemainingWork attribute.
This attribute represents the work remaining to be completed by the resource.
\returns
Returns the value of RemainingWork attribute.
*/
const OdAnsiString& getRemainingWork() const;
/** \details
Sets the value of RemainingWork attribute.
This attribute represents the work remaining to be completed by the resource.
\param RemainingWork [in] Remaining work to set.
*/
void setRemainingWork(const OdAnsiString& RemainingWork);
double getRemainingUsage() const;
void setRemainingUsage(double RemainingUsage);
/** \details
Returns the value of Completion attribute.
This attribute represents the percent completion of this resource.
* if the resource is assigned to a task, then indicates completion of the task on behalf of the resource
* if the resource is partitioned into sub-allocations, then indicates overall completion of sub-allocations
\returns
Returns the value of Completion attribute.
*/
double getCompletion() const;
/** \details
Sets the value of Completion attribute.
This attribute represents the percent completion of this resource.
* if the resource is assigned to a task, then indicates completion of the task on behalf of the resource
* if the resource is partitioned into sub-allocations, then indicates overall completion of sub-allocations
\param Completion [in] Completion to set.
*/
void setCompletion(double Completion);
public:
/** \details
Default constructor for the IfcResourceTime class.
*/
IfcResourceTime();
/** \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