#ifndef  ENTITY_SDAIIFCGRID_H
#define  ENTITY_SDAIIFCGRID_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 SdaiIfcgrid : public SdaiIfcproduct {
     protected:
        EntityAggregate_ptr _uaxes = NULL;          //  of  ifcgridaxis

        EntityAggregate_ptr _vaxes = NULL;          //  of  ifcgridaxis

        EntityAggregate_ptr _waxes = NULL;    //  OPTIONAL          //  of  ifcgridaxis

    public: 
        SdaiIfcgrid();
        SdaiIfcgrid( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiIfcgrid( SdaiIfcgrid & e );
        ~SdaiIfcgrid();
        int opcode() {
            return 640;
        }
        EntityAggregate_ptr_c uaxes_() const;
        EntityAggregate_ptr   uaxes_();
        void uaxes_( const EntityAggregate_ptr x );

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

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

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

};

inline SdaiIfcgrid * create_SdaiIfcgrid() {
    return new SdaiIfcgrid;
}

void init_SdaiIfcgrid(Registry& reg);

namespace ifc2x3 {
    extern EntityDescriptor *e_ifcgrid;
    extern AttrDescriptor *a_1440uaxes;
    extern AttrDescriptor *a_1441vaxes;
    extern AttrDescriptor *a_1442waxes;
    extern Inverse_attribute *a_1443Icontainedinstructure;
}

#endif
