#ifndef  ENTITY_SDAIIFCOBJECTDEFINITION_H
#define  ENTITY_SDAIIFCOBJECTDEFINITION_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 SdaiIfcobjectdefinition : public SdaiIfcroot {
     protected:
    public: 
        SdaiIfcobjectdefinition();
        SdaiIfcobjectdefinition( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiIfcobjectdefinition( SdaiIfcobjectdefinition & e );
        ~SdaiIfcobjectdefinition();
        int opcode() {
            return 6;
        }
        EntityAggregate_ptr_c hasassignments_() const;
        EntityAggregate_ptr   hasassignments_();
        void hasassignments_( const EntityAggregate_ptr x );

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

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

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

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

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

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

};

inline SdaiIfcobjectdefinition * create_SdaiIfcobjectdefinition() {
    return new SdaiIfcobjectdefinition;
}

void init_SdaiIfcobjectdefinition(Registry& reg);

namespace ifc4 {
    extern EntityDescriptor *e_ifcobjectdefinition;
    extern Inverse_attribute *a_12Ihasassignments;
    extern Inverse_attribute *a_13Inests;
    extern Inverse_attribute *a_14Iisnestedby;
    extern Inverse_attribute *a_15Ihascontext;
    extern Inverse_attribute *a_16Iisdecomposedby;
    extern Inverse_attribute *a_17Idecomposes;
    extern Inverse_attribute *a_18Ihasassociations;
}

#endif
