#ifndef  ENTITY_SDAIIFCCONTEXT_H
#define  ENTITY_SDAIIFCCONTEXT_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 SdaiIfccontext : public SdaiIfcobjectdefinition {
     protected:
        SDAI_String _objecttype;    //  OPTIONAL
        SDAI_String _longname;    //  OPTIONAL
        SDAI_String _phase;    //  OPTIONAL
        EntityAggregate_ptr _representationcontexts = NULL;    //  OPTIONAL          //  of  ifcrepresentationcontext

        SDAI_Application_instance_ptr _unitsincontext = NULL;    //  OPTIONAL
    public: 
        SdaiIfccontext();
        SdaiIfccontext( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiIfccontext( SdaiIfccontext & e );
        ~SdaiIfccontext();
        int opcode() {
            return 366;
        }
  const SdaiIfclabel   objecttype_() const;
        SdaiIfclabel   objecttype_();
        void objecttype_( const SdaiIfclabel x );

  const SdaiIfclabel   longname_() const;
        SdaiIfclabel   longname_();
        void longname_( const SdaiIfclabel x );

  const SdaiIfclabel   phase_() const;
        SdaiIfclabel   phase_();
        void phase_( const SdaiIfclabel x );

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

        SdaiIfcunitassignment_ptr_c unitsincontext_() const;
        SdaiIfcunitassignment_ptr   unitsincontext_();
        void unitsincontext_( const SdaiIfcunitassignment_ptr x );

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

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

};

inline SdaiIfccontext * create_SdaiIfccontext() {
    return new SdaiIfccontext;
}

void init_SdaiIfccontext(Registry& reg);

namespace ifc4 {
    extern EntityDescriptor *e_ifccontext;
    extern AttrDescriptor *a_794objecttype;
    extern AttrDescriptor *a_795longname;
    extern AttrDescriptor *a_796phase;
    extern AttrDescriptor *a_797representationcontexts;
    extern AttrDescriptor *a_798unitsincontext;
    extern Inverse_attribute *a_799Iisdefinedby;
    extern Inverse_attribute *a_800Ideclares;
}

#endif
