#ifndef  ENTITY_SDAIIFCDOOR_H
#define  ENTITY_SDAIIFCDOOR_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 SdaiIfcdoor : public SdaiIfcbuildingelement {
     protected:
        SDAI_Real _overallheight = 0.0;    //  OPTIONAL
        SDAI_Real _overallwidth = 0.0;    //  OPTIONAL
        SdaiIfcdoortypeenum_var _predefinedtype;    //  OPTIONAL
        SdaiIfcdoortypeoperationenum_var _operationtype;    //  OPTIONAL
        SDAI_String _userdefinedoperationtype;    //  OPTIONAL
    public: 
        SdaiIfcdoor();
        SdaiIfcdoor( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiIfcdoor( SdaiIfcdoor & e );
        ~SdaiIfcdoor();
        int opcode() {
            return 557;
        }
        SdaiIfcpositivelengthmeasure   overallheight_() const;
        void overallheight_( const SdaiIfcpositivelengthmeasure x );

        SdaiIfcpositivelengthmeasure   overallwidth_() const;
        void overallwidth_( const SdaiIfcpositivelengthmeasure x );

  const SdaiIfcdoortypeenum_var   predefinedtype_() const;
        SdaiIfcdoortypeenum_var   predefinedtype_();
        void predefinedtype_( const SdaiIfcdoortypeenum_var x );

  const SdaiIfcdoortypeoperationenum_var   operationtype_() const;
        SdaiIfcdoortypeoperationenum_var   operationtype_();
        void operationtype_( const SdaiIfcdoortypeoperationenum_var x );

  const SdaiIfclabel   userdefinedoperationtype_() const;
        SdaiIfclabel   userdefinedoperationtype_();
        void userdefinedoperationtype_( const SdaiIfclabel x );

};

inline SdaiIfcdoor * create_SdaiIfcdoor() {
    return new SdaiIfcdoor;
}

void init_SdaiIfcdoor(Registry& reg);

namespace ifc4 {
    extern EntityDescriptor *e_ifcdoor;
    extern AttrDescriptor *a_1244overallheight;
    extern AttrDescriptor *a_1245overallwidth;
    extern AttrDescriptor *a_1246predefinedtype;
    extern AttrDescriptor *a_1247operationtype;
    extern AttrDescriptor *a_1248userdefinedoperationtype;
}

#endif
