#ifndef  ENTITY_SDAIIFCPERSONANDORGANIZATION_H
#define  ENTITY_SDAIIFCPERSONANDORGANIZATION_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 SdaiIfcpersonandorganization : public SDAI_Application_instance {
    protected:
        SDAI_Application_instance_ptr _theperson = NULL;
        SDAI_Application_instance_ptr _theorganization = NULL;
        EntityAggregate_ptr _roles = NULL;    //  OPTIONAL          //  of  ifcactorrole

    public: 
        SdaiIfcpersonandorganization();
        SdaiIfcpersonandorganization( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiIfcpersonandorganization( SdaiIfcpersonandorganization & e );
        ~SdaiIfcpersonandorganization();
        int opcode() {
            return 563;
        }
        SdaiIfcperson_ptr_c theperson_() const;
        SdaiIfcperson_ptr   theperson_();
        void theperson_( const SdaiIfcperson_ptr x );

        SdaiIfcorganization_ptr_c theorganization_() const;
        SdaiIfcorganization_ptr   theorganization_();
        void theorganization_( const SdaiIfcorganization_ptr x );

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

};

inline SdaiIfcpersonandorganization * create_SdaiIfcpersonandorganization() {
    return new SdaiIfcpersonandorganization;
}

void init_SdaiIfcpersonandorganization(Registry& reg);

namespace ifc2x3 {
    extern EntityDescriptor *e_ifcpersonandorganization;
    extern AttrDescriptor *a_1265theperson;
    extern AttrDescriptor *a_1266theorganization;
    extern AttrDescriptor *a_1267roles;
}

#endif
