/////////////////////////////////////////////////////////////////////////////// // 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 _IFC2X_FINAL_IFCCOSTMODIFIER_AUTO_IMPL_H #define _IFC2X_FINAL_IFCCOSTMODIFIER_AUTO_IMPL_H #include "Ifc2x_FinalBaseClass.h" #include "Ifc2x_FinalEnum.h" #include "Ifc2x_FinalSelectTypes.h" #include "Ifc2x_FinalCollectionTypes.h" #include "IfcCalendarDateAutoImpl.h" #include "TD_PackPush.h" /** \details The namespace contains schema-dependent classes, definitions and sub routines for work with IFC2X_FINAL express schema definitions. */ namespace OdIfc2x_final { /** \details An IfcCostModifier is a modifier object which influences a cost. Cost modifiers can potentially be applied on quite complex bases (e.g., a percentage markup on hours of overtime labor). Cost modifiers can accommodate other cost modifiers calculated on a simple basis only (static/running and add/subtract/multiply). Modifiers applied on a more complex basis can be converted within cost applications to these simple bases (e.g., the more complex modifier can be resolved into a fixed currency value modifier). */ class IFC2X_FINAL_EXPORT IfcCostModifier : public OdIfc2x_FinalInstance { //DOM-IGNORE-BEGIN OD_EXP_DECLARE_MEMBERS(OdIfc2x_final::IfcCostModifier); //DOM-IGNORE-END public: // // OdDAI early binding accessors // /** \details Returns the value of Purpose attribute. This attribute represents the purpose for which a cost modifier is applied. Examples: * trade discount, * bulk purchase rebate, * small quantity surcharge, * large quantity discount, * delivery charge, * waste allowance, * postage and packing charge, * factor to allow for working conditions (working at height, working in a hazardous or dirty environment etc.), * adjustments for costs derived from historical data (source date to project date adjustment, source location to project location adjustment), * etc. \returns Returns the value of Purpose attribute. */ const OdAnsiString& getPurpose() const; /** \details Sets the value of Purpose attribute. This attribute represents the purpose for which a cost modifier is applied. Examples: * trade discount, * bulk purchase rebate, * small quantity surcharge, * large quantity discount, * delivery charge, * waste allowance, * postage and packing charge, * factor to allow for working conditions (working at height, working in a hazardous or dirty environment etc.), * adjustments for costs derived from historical data (source date to project date adjustment, source location to project location adjustment), * etc. \param Purpose [in] Purpose attribute to set. */ void setPurpose(const OdAnsiString& Purpose); /** \details Returns the value of ModifierValue attribute. This attribute represents the value assigned to a cost modifier. \returns Returns the value of ModifierValue attribute. */ IfcCostModifierValueSelect modifierValue(); /** \details Returns the value of ModifierDate attribute. This attribute represents the date at which a modifier is applicable. \returns Returns the value of ModifierDate attribute. */ const OdDAIObjectId& getModifierDate() const; /** \details Sets the value of ModifierDate attribute. This attribute represents the date at which a modifier is applicable. \param ModifierDate [in] ModifierDate attribute to set. */ void setModifierDate(const OdDAIObjectId& ModifierDate); /** \details Returns the value of CostOperator attribute. This attribute represents a mathematical operator that determines how the cost modifier is to be applied to the cost to vary its value. \returns Returns the value of CostOperator attribute. */ IfcCostOperatorEnum getCostOperator() const; /** \details Sets the value of CostOperator attribute. This attribute represents a mathematical operator that determines how the cost modifier is to be applied to the cost to vary its value. \param CostOperator [in] CostOperator attribute to set. */ void setCostOperator(IfcCostOperatorEnum CostOperator); /** \details Returns the value of ModifierBasis attribute. This attribute represents the manner in which cost modifiers are applied to a cost. \returns Returns the value of ModifierBasis attribute. */ IfcCostModifierBasisEnum getModifierBasis() const; /** \details Sets the value of ModifierBasis attribute. This attribute represents the manner in which cost modifiers are applied to a cost. \param ModifierBasis [in] ModifierBasis attribute to set. */ void setModifierBasis(IfcCostModifierBasisEnum ModifierBasis); /** \details Gets the value of ModifiedCost attribute. This attribute represents cost value the cost modifier is assigned to. \param ModifiedCost [out] Receives the ModifiedCost attribute. */ void getInvModifiedCost(OdDAIObjectIds& ModifiedCost) const; /** \details Gets the value of ModifiersReferenced attribute. This attribute represents the IfcReferencesCostDocument relationship, which refers to a document from which the cost modifier is referenced. \param ModifiersReferenced [out] Receives the ModifiersReferenced attribute. */ void getInvModifiersReferenced(OdDAIObjectIds& ModifiersReferenced) const; public: /** \details Default constructor for the IfcCostModifier class. */ IfcCostModifier(); /** \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 OdDAI::Entity type that determines an entity definition within a schema. */ virtual OdDAI::Entity* getInstanceType() const override; /** \details Returns an attribute value for the specified attribute name. \param attrName [in] Name of an attribute to query. \returns OdRxValue object that represents a generic variant type value. */ virtual OdRxValue getAttr(const char * attrName) const override; /** \details Resets a value for the specified attribute. \param explicitAttrName [in] Explicit name of the attribute to reset. */ virtual void unsetAttr(const char * explicitAttrName) override; /** \details Checks whether the specified attribute is set. \param explicitAttrName [in] Explicit name of the attribute to test. \returns true if the specified attribute is set, false otherwise. */ virtual bool testAttr(const char * explicitAttrName) const override; /** \details Sets the specified attribute with a given value. \param explicitAttrName [in] Explicit name of the attribute to set. \param val [in] Value to set. \returns true if the value is successfully set for the specified attribute, false otherwise. */ virtual bool putAttr(const char * explicitAttrName, const OdRxValue &val) override; /** \details Checks whether the specified instance is the object derived from or belongs to this class. \param entityType [in] Entity to check. \returns true if the specified instance is the object derived from or belongs to this class, false otherwise. */ virtual bool isKindOf(OdIfc::OdIfcEntityType entityType) const override; /** \details Returns the type of this entity. \returns A value of the OdIfc::OdIfcEntityType type that represents type of this entity. */ virtual OdIfc::OdIfcEntityType type() const override; /** \details Returns an attribute value for the specified attribute definition. \param attrDef [in] Attribute definition to query. \returns OdRxValue object that represents a generic variant type value. */ virtual OdRxValue getAttr(const OdIfc::OdIfcAttribute attrDef) const override; /** \details Resets a value for the specified attribute. \param explicitAttrDef [in] Explicit definition that represents an attribute to reset. */ virtual void unsetAttr(const OdIfc::OdIfcAttribute explicitAttrDef) override; /** \details Checks whether the specified attribute is set. \param explicitAttrDef [in] Attribute definition to test. \returns true if the specified attribute is set, false otherwise. */ virtual bool testAttr(const OdIfc::OdIfcAttribute explicitAttrDef) const override; /** \details Sets the specified attribute with a given value. \param explicitAttrDef [in] Explicit attribute definition to set. \param val [in] Value to set. \returns true if the value is successfully set for the specified attribute, false otherwise. */ virtual bool putAttr(const OdIfc::OdIfcAttribute explicitAttrDef, const OdRxValue &val) override; protected: // Fields declaration: OdAnsiString m_Purpose; // IfcText OdDAI::Select m_ModifierValue; // IfcCostModifierValueSelect OdDAIObjectId m_ModifierDate; // IfcCalendarDate OdDAI::Enum m_CostOperator; // IfcCostOperatorEnum OdDAI::Enum m_ModifierBasis; // IfcCostModifierBasisEnum [optional] // Declare friend classes for inverse attributes functionality: friend class IfcCostValue; friend class IfcReferencesCostDocument; }; /** \details A data type that represents a smart pointer to a IfcCostModifier object. */ typedef OdSmartPtr IfcCostModifierPtr; } // namespace #include "TD_PackPop.h" #endif // _IFC2X_FINAL_IFCCOSTMODIFIER_AUTO_IMPL_H