#ifndef  ENTITY_SDAIIFCTSHAPEPROFILEDEF_H
#define  ENTITY_SDAIIFCTSHAPEPROFILEDEF_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 SdaiIfctshapeprofiledef : public SdaiIfcparameterizedprofiledef {
     protected:
        SDAI_Real _depth = 0.0;
        SDAI_Real _flangewidth = 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 _webedgeradius = 0.0;    //  OPTIONAL
        SDAI_Real _webslope = 0.0;    //  OPTIONAL
        SDAI_Real _flangeslope = 0.0;    //  OPTIONAL
        SDAI_Real _centreofgravityiny = 0.0;    //  OPTIONAL
    public: 
        SdaiIfctshapeprofiledef();
        SdaiIfctshapeprofiledef( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiIfctshapeprofiledef( SdaiIfctshapeprofiledef & e );
        ~SdaiIfctshapeprofiledef();
        int opcode() {
            return 292;
        }
        SdaiIfcpositivelengthmeasure   depth_() const;
        void depth_( const SdaiIfcpositivelengthmeasure x );

        SdaiIfcpositivelengthmeasure   flangewidth_() const;
        void flangewidth_( const SdaiIfcpositivelengthmeasure x );

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

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

        SdaiIfcpositivelengthmeasure   filletradius_() const;
        void filletradius_( const SdaiIfcpositivelengthmeasure x );

        SdaiIfcpositivelengthmeasure   flangeedgeradius_() const;
        void flangeedgeradius_( const SdaiIfcpositivelengthmeasure x );

        SdaiIfcpositivelengthmeasure   webedgeradius_() const;
        void webedgeradius_( const SdaiIfcpositivelengthmeasure x );

        SdaiIfcplaneanglemeasure   webslope_() const;
        void webslope_( const SdaiIfcplaneanglemeasure x );

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

        SdaiIfcpositivelengthmeasure   centreofgravityiny_() const;
        void centreofgravityiny_( const SdaiIfcpositivelengthmeasure x );

};

inline SdaiIfctshapeprofiledef * create_SdaiIfctshapeprofiledef() {
    return new SdaiIfctshapeprofiledef;
}

void init_SdaiIfctshapeprofiledef(Registry& reg);

namespace ifc2x3 {
    extern EntityDescriptor *e_ifctshapeprofiledef;
    extern AttrDescriptor *a_637depth;
    extern AttrDescriptor *a_638flangewidth;
    extern AttrDescriptor *a_639webthickness;
    extern AttrDescriptor *a_640flangethickness;
    extern AttrDescriptor *a_641filletradius;
    extern AttrDescriptor *a_642flangeedgeradius;
    extern AttrDescriptor *a_643webedgeradius;
    extern AttrDescriptor *a_644webslope;
    extern AttrDescriptor *a_645flangeslope;
    extern AttrDescriptor *a_646centreofgravityiny;
}

#endif
