#ifndef  ENTITY_SDAIIFCAPPLIEDVALUERELATIONSHIP_H
#define  ENTITY_SDAIIFCAPPLIEDVALUERELATIONSHIP_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 SdaiIfcappliedvaluerelationship : public SDAI_Application_instance {
    protected:
        SDAI_Application_instance_ptr _componentoftotal = NULL;
        EntityAggregate_ptr _components = NULL;          //  of  ifcappliedvalue

        SdaiIfcarithmeticoperatorenum_var _arithmeticoperator;
        SDAI_String _name;    //  OPTIONAL
        SDAI_String _description;    //  OPTIONAL
    public: 
        SdaiIfcappliedvaluerelationship();
        SdaiIfcappliedvaluerelationship( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiIfcappliedvaluerelationship( SdaiIfcappliedvaluerelationship & e );
        ~SdaiIfcappliedvaluerelationship();
        int opcode() {
            return 265;
        }
        SdaiIfcappliedvalue_ptr_c componentoftotal_() const;
        SdaiIfcappliedvalue_ptr   componentoftotal_();
        void componentoftotal_( const SdaiIfcappliedvalue_ptr x );

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

  const SdaiIfcarithmeticoperatorenum_var   arithmeticoperator_() const;
        SdaiIfcarithmeticoperatorenum_var   arithmeticoperator_();
        void arithmeticoperator_( const SdaiIfcarithmeticoperatorenum_var x );

  const SdaiIfclabel   name_() const;
        SdaiIfclabel   name_();
        void name_( const SdaiIfclabel x );

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

};

inline SdaiIfcappliedvaluerelationship * create_SdaiIfcappliedvaluerelationship() {
    return new SdaiIfcappliedvaluerelationship;
}

void init_SdaiIfcappliedvaluerelationship(Registry& reg);

namespace ifc2x3 {
    extern EntityDescriptor *e_ifcappliedvaluerelationship;
    extern AttrDescriptor *a_587componentoftotal;
    extern AttrDescriptor *a_588components;
    extern AttrDescriptor *a_589arithmeticoperator;
    extern AttrDescriptor *a_590name;
    extern AttrDescriptor *a_591description;
}

#endif
