#ifndef  ENTITY_SDAIIFCCLASSIFICATION_H
#define  ENTITY_SDAIIFCCLASSIFICATION_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 SdaiIfcclassification : public SDAI_Application_instance {
    protected:
        SDAI_String _source;
        SDAI_String _edition;
        SDAI_Application_instance_ptr _editiondate = NULL;    //  OPTIONAL
        SDAI_String _name;
    public: 
        SdaiIfcclassification();
        SdaiIfcclassification( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiIfcclassification( SdaiIfcclassification & e );
        ~SdaiIfcclassification();
        int opcode() {
            return 298;
        }
  const SdaiIfclabel   source_() const;
        SdaiIfclabel   source_();
        void source_( const SdaiIfclabel x );

  const SdaiIfclabel   edition_() const;
        SdaiIfclabel   edition_();
        void edition_( const SdaiIfclabel x );

        SdaiIfccalendardate_ptr_c editiondate_() const;
        SdaiIfccalendardate_ptr   editiondate_();
        void editiondate_( const SdaiIfccalendardate_ptr x );

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

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

};

inline SdaiIfcclassification * create_SdaiIfcclassification() {
    return new SdaiIfcclassification;
}

void init_SdaiIfcclassification(Registry& reg);

namespace ifc2x3 {
    extern EntityDescriptor *e_ifcclassification;
    extern AttrDescriptor *a_652source;
    extern AttrDescriptor *a_653edition;
    extern AttrDescriptor *a_654editiondate;
    extern AttrDescriptor *a_655name;
    extern Inverse_attribute *a_656Icontains;
}

#endif
