#ifndef  ENTITY_SDAIIFCCRANERAILFSHAPEPROFILEDEF_H
#define  ENTITY_SDAIIFCCRANERAILFSHAPEPROFILEDEF_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 SdaiIfccranerailfshapeprofiledef : public SdaiIfcparameterizedprofiledef {
     protected:
        SDAI_Real _overallheight = 0.0;
        SDAI_Real _headwidth = 0.0;
        SDAI_Real _radius = 0.0;    //  OPTIONAL
        SDAI_Real _headdepth2 = 0.0;
        SDAI_Real _headdepth3 = 0.0;
        SDAI_Real _webthickness = 0.0;
        SDAI_Real _basedepth1 = 0.0;
        SDAI_Real _basedepth2 = 0.0;
        SDAI_Real _centreofgravityiny = 0.0;    //  OPTIONAL
    public: 
        SdaiIfccranerailfshapeprofiledef();
        SdaiIfccranerailfshapeprofiledef( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiIfccranerailfshapeprofiledef( SdaiIfccranerailfshapeprofiledef & e );
        ~SdaiIfccranerailfshapeprofiledef();
        int opcode() {
            return 645;
        }
        SdaiIfcpositivelengthmeasure   overallheight_() const;
        void overallheight_( const SdaiIfcpositivelengthmeasure x );

        SdaiIfcpositivelengthmeasure   headwidth_() const;
        void headwidth_( const SdaiIfcpositivelengthmeasure x );

        SdaiIfcpositivelengthmeasure   radius_() const;
        void radius_( const SdaiIfcpositivelengthmeasure x );

        SdaiIfcpositivelengthmeasure   headdepth2_() const;
        void headdepth2_( const SdaiIfcpositivelengthmeasure x );

        SdaiIfcpositivelengthmeasure   headdepth3_() const;
        void headdepth3_( const SdaiIfcpositivelengthmeasure x );

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

        SdaiIfcpositivelengthmeasure   basedepth1_() const;
        void basedepth1_( const SdaiIfcpositivelengthmeasure x );

        SdaiIfcpositivelengthmeasure   basedepth2_() const;
        void basedepth2_( const SdaiIfcpositivelengthmeasure x );

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

};

inline SdaiIfccranerailfshapeprofiledef * create_SdaiIfccranerailfshapeprofiledef() {
    return new SdaiIfccranerailfshapeprofiledef;
}

void init_SdaiIfccranerailfshapeprofiledef(Registry& reg);

namespace ifc2x3 {
    extern EntityDescriptor *e_ifccranerailfshapeprofiledef;
    extern AttrDescriptor *a_1457overallheight;
    extern AttrDescriptor *a_1458headwidth;
    extern AttrDescriptor *a_1459radius;
    extern AttrDescriptor *a_1460headdepth2;
    extern AttrDescriptor *a_1461headdepth3;
    extern AttrDescriptor *a_1462webthickness;
    extern AttrDescriptor *a_1463basedepth1;
    extern AttrDescriptor *a_1464basedepth2;
    extern AttrDescriptor *a_1465centreofgravityiny;
}

#endif
