#ifndef  ENTITY_SDAIIFCOBJECTIVE_H
#define  ENTITY_SDAIIFCOBJECTIVE_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 SdaiIfcobjective : public SdaiIfcconstraint {
     protected:
        EntityAggregate_ptr _benchmarkvalues = NULL;    //  OPTIONAL          //  of  ifcconstraint

        SdaiIfclogicaloperatorenum_var _logicalaggregator;    //  OPTIONAL
        SdaiIfcobjectiveenum_var _objectivequalifier;
        SDAI_String _userdefinedqualifier;    //  OPTIONAL
    public: 
        SdaiIfcobjective();
        SdaiIfcobjective( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiIfcobjective( SdaiIfcobjective & e );
        ~SdaiIfcobjective();
        int opcode() {
            return 220;
        }
        EntityAggregate_ptr_c benchmarkvalues_() const;
        EntityAggregate_ptr   benchmarkvalues_();
        void benchmarkvalues_( const EntityAggregate_ptr x );

  const SdaiIfclogicaloperatorenum_var   logicalaggregator_() const;
        SdaiIfclogicaloperatorenum_var   logicalaggregator_();
        void logicalaggregator_( const SdaiIfclogicaloperatorenum_var x );

  const SdaiIfcobjectiveenum_var   objectivequalifier_() const;
        SdaiIfcobjectiveenum_var   objectivequalifier_();
        void objectivequalifier_( const SdaiIfcobjectiveenum_var x );

  const SdaiIfclabel   userdefinedqualifier_() const;
        SdaiIfclabel   userdefinedqualifier_();
        void userdefinedqualifier_( const SdaiIfclabel x );

};

inline SdaiIfcobjective * create_SdaiIfcobjective() {
    return new SdaiIfcobjective;
}

void init_SdaiIfcobjective(Registry& reg);

namespace ifc4 {
    extern EntityDescriptor *e_ifcobjective;
    extern AttrDescriptor *a_491benchmarkvalues;
    extern AttrDescriptor *a_492logicalaggregator;
    extern AttrDescriptor *a_493objectivequalifier;
    extern AttrDescriptor *a_494userdefinedqualifier;
}

#endif
