#ifndef  ENTITY_SDAIIFCISHAPEPROFILEDEF_H
#define  ENTITY_SDAIIFCISHAPEPROFILEDEF_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 SdaiIfcishapeprofiledef : public SdaiIfcparameterizedprofiledef {
     protected:
        SDAI_Real _overallwidth = 0.0;
        SDAI_Real _overalldepth = 0.0;
        SDAI_Real _webthickness = 0.0;
        SDAI_Real _flangethickness = 0.0;
        SDAI_Real _filletradius = 0.0;    //  OPTIONAL
        SDAI_Real _flangeedgeradius = 0.0;    //  OPTIONAL
        SDAI_Real _flangeslope = 0.0;    //  OPTIONAL
    public: 
        SdaiIfcishapeprofiledef();
        SdaiIfcishapeprofiledef( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiIfcishapeprofiledef( SdaiIfcishapeprofiledef & e );
        ~SdaiIfcishapeprofiledef();
        int opcode() {
            return 221;
        }
        SdaiIfcpositivelengthmeasure   overallwidth_() const;
        void overallwidth_( const SdaiIfcpositivelengthmeasure x );

        SdaiIfcpositivelengthmeasure   overalldepth_() const;
        void overalldepth_( const SdaiIfcpositivelengthmeasure x );

        SdaiIfcpositivelengthmeasure   webthickness_() const;
        void webthickness_( const SdaiIfcpositivelengthmeasure x );

        SdaiIfcpositivelengthmeasure   flangethickness_() const;
        void flangethickness_( const SdaiIfcpositivelengthmeasure x );

        SdaiIfcnonnegativelengthmeasure   filletradius_() const;
        void filletradius_( const SdaiIfcnonnegativelengthmeasure x );

        SdaiIfcnonnegativelengthmeasure   flangeedgeradius_() const;
        void flangeedgeradius_( const SdaiIfcnonnegativelengthmeasure x );

        SdaiIfcplaneanglemeasure   flangeslope_() const;
        void flangeslope_( const SdaiIfcplaneanglemeasure x );

};

inline SdaiIfcishapeprofiledef * create_SdaiIfcishapeprofiledef() {
    return new SdaiIfcishapeprofiledef;
}

void init_SdaiIfcishapeprofiledef(Registry& reg);

namespace ifc4 {
    extern EntityDescriptor *e_ifcishapeprofiledef;
    extern AttrDescriptor *a_495overallwidth;
    extern AttrDescriptor *a_496overalldepth;
    extern AttrDescriptor *a_497webthickness;
    extern AttrDescriptor *a_498flangethickness;
    extern AttrDescriptor *a_499filletradius;
    extern AttrDescriptor *a_500flangeedgeradius;
    extern AttrDescriptor *a_501flangeslope;
}

#endif
