///////////////////////////////////////////////////////////////////////////////
// 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_IFCLAGTIME_AUTO_IMPL_H
#define _IFC4X3_ADD2_IFCLAGTIME_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
IfcLagTime describes the time parameters that can exist within a sequence relationship between two processes.
An IfcLagTime provides information about the time lag that exists between the predecessor and successor process in a sequence.
The assertion of the time lag is optional for a sequence but for work schedules
that specifically deal with processes occurring at particular times, it should be asserted.
A lag time has a duration type. This allows the identification of whether elapsed time or work time is being measured
(where work time is the estimate of the time required to complete the process and elapsed time being the amount of time actually allocated to the process).
*/
class IFC4X3_EXPORT IfcLagTime : public IfcSchedulingTime
{
//DOM-IGNORE-BEGIN
OD_EXP_DECLARE_MEMBERS(OdIfc4x3_add2::IfcLagTime);
//DOM-IGNORE-END
public:
//
// OdDAI early binding accessors
//
/** \details
Returns the value of LagValue attribute.
This attribute represents value of the time lag selected as being either a ratio or time measure.
\returns
Returns the value of LagValue attribute.
*/
IfcTimeOrRatioSelect lagValue();
/** \details
Returns the value of DurationType attribute.
This attribute represents the allowed types of task duration
that specify the lag time measurement (work time or elapsed time).
\returns
Returns the value of DurationType attribute.
*/
IfcTaskDurationEnum getDurationType() const;
/** \details
Sets the value of DurationType attribute.
This attribute represents the allowed types of task duration
that specify the lag time measurement (work time or elapsed time).
\param DurationType [in] Duration type to set.
*/
void setDurationType(IfcTaskDurationEnum DurationType);
public:
/** \details
Default constructor for the IfcLagTime class.
*/
IfcLagTime();
/** \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