#ifndef  ENTITY_SDAIIFCDERIVEDUNIT_H
#define  ENTITY_SDAIIFCDERIVEDUNIT_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 SdaiIfcderivedunit : public SDAI_Application_instance {
    protected:
        EntityAggregate_ptr _elements = NULL;          //  of  ifcderivedunitelement

        SdaiIfcderivedunitenum_var _unittype;
        SDAI_String _userdefinedtype;    //  OPTIONAL
    public: 
        SdaiIfcderivedunit();
        SdaiIfcderivedunit( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiIfcderivedunit( SdaiIfcderivedunit & e );
        ~SdaiIfcderivedunit();
        int opcode() {
            return 605;
        }
        EntityAggregate_ptr_c elements_() const;
        EntityAggregate_ptr   elements_();
        void elements_( const EntityAggregate_ptr x );

  const SdaiIfcderivedunitenum_var   unittype_() const;
        SdaiIfcderivedunitenum_var   unittype_();
        void unittype_( const SdaiIfcderivedunitenum_var x );

  const SdaiIfclabel   userdefinedtype_() const;
        SdaiIfclabel   userdefinedtype_();
        void userdefinedtype_( const SdaiIfclabel x );

};

inline SdaiIfcderivedunit * create_SdaiIfcderivedunit() {
    return new SdaiIfcderivedunit;
}

void init_SdaiIfcderivedunit(Registry& reg);

namespace ifc4 {
    extern EntityDescriptor *e_ifcderivedunit;
    extern AttrDescriptor *a_1340elements;
    extern AttrDescriptor *a_1341unittype;
    extern AttrDescriptor *a_1342userdefinedtype;
    extern Derived_attribute *a_1343Ddimensions;
}

#endif
