#ifndef  ENTITY_SDAIIFCAPPLIEDVALUE_H
#define  ENTITY_SDAIIFCAPPLIEDVALUE_H

// This file was generated by exp2cxx,
// 0.8.1.
// You probably don't want to edit it since your modifications
// will be lost if exp2cxx is used to regenerate it.

class SC_SCHEMA_EXPORT SdaiIfcappliedvalue : public SDAI_Application_instance {
    protected:
        SDAI_String _name;    //  OPTIONAL
        SDAI_String _description;    //  OPTIONAL
        SdaiIfcappliedvalueselect _appliedvalue;    //  OPTIONAL
        SDAI_Application_instance_ptr _unitbasis = NULL;    //  OPTIONAL
        SdaiIfcdatetimeselect _applicabledate;    //  OPTIONAL
        SdaiIfcdatetimeselect _fixeduntildate;    //  OPTIONAL
    public: 
        SdaiIfcappliedvalue();
        SdaiIfcappliedvalue( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiIfcappliedvalue( SdaiIfcappliedvalue & e );
        ~SdaiIfcappliedvalue();
        int opcode() {
            return 229;
        }
  const SdaiIfclabel   name_() const;
        SdaiIfclabel   name_();
        void name_( const SdaiIfclabel x );

  const SdaiIfctext   description_() const;
        SdaiIfctext   description_();
        void description_( const SdaiIfctext x );

        SdaiIfcappliedvalueselect_ptr_c appliedvalue_() const;
        SdaiIfcappliedvalueselect_ptr   appliedvalue_();
        void appliedvalue_( const SdaiIfcappliedvalueselect_ptr x );

        SdaiIfcmeasurewithunit_ptr_c unitbasis_() const;
        SdaiIfcmeasurewithunit_ptr   unitbasis_();
        void unitbasis_( const SdaiIfcmeasurewithunit_ptr x );

        SdaiIfcdatetimeselect_ptr_c applicabledate_() const;
        SdaiIfcdatetimeselect_ptr   applicabledate_();
        void applicabledate_( const SdaiIfcdatetimeselect_ptr x );

        SdaiIfcdatetimeselect_ptr_c fixeduntildate_() const;
        SdaiIfcdatetimeselect_ptr   fixeduntildate_();
        void fixeduntildate_( const SdaiIfcdatetimeselect_ptr x );

        EntityAggregate_ptr_c valuesreferenced_() const;
        EntityAggregate_ptr   valuesreferenced_();
        void valuesreferenced_( const EntityAggregate_ptr x );

        EntityAggregate_ptr_c valueofcomponents_() const;
        EntityAggregate_ptr   valueofcomponents_();
        void valueofcomponents_( const EntityAggregate_ptr x );

        EntityAggregate_ptr_c iscomponentin_() const;
        EntityAggregate_ptr   iscomponentin_();
        void iscomponentin_( const EntityAggregate_ptr x );

};

inline SdaiIfcappliedvalue * create_SdaiIfcappliedvalue() {
    return new SdaiIfcappliedvalue;
}

void init_SdaiIfcappliedvalue(Registry& reg);

namespace ifc2x3 {
    extern EntityDescriptor *e_ifcappliedvalue;
    extern AttrDescriptor *a_514name;
    extern AttrDescriptor *a_515description;
    extern AttrDescriptor *a_516appliedvalue;
    extern AttrDescriptor *a_517unitbasis;
    extern AttrDescriptor *a_518applicabledate;
    extern AttrDescriptor *a_519fixeduntildate;
    extern Inverse_attribute *a_520Ivaluesreferenced;
    extern Inverse_attribute *a_521Ivalueofcomponents;
    extern Inverse_attribute *a_522Iiscomponentin;
}

#endif
