#ifndef  ENTITY_SDAIIFCPROPERTYTABLEVALUE_H
#define  ENTITY_SDAIIFCPROPERTYTABLEVALUE_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 SdaiIfcpropertytablevalue : public SdaiIfcsimpleproperty {
     protected:
        SdaiIfcvalue_agg_ptr _definingvalues = NULL;    //  OPTIONAL          //  of  ifcvalue

        SdaiIfcvalue_agg_ptr _definedvalues = NULL;    //  OPTIONAL          //  of  ifcvalue

        SDAI_String _expression;    //  OPTIONAL
        SdaiIfcunit _definingunit;    //  OPTIONAL
        SdaiIfcunit _definedunit;    //  OPTIONAL
        SdaiIfccurveinterpolationenum_var _curveinterpolation;    //  OPTIONAL
    public: 
        SdaiIfcpropertytablevalue();
        SdaiIfcpropertytablevalue( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiIfcpropertytablevalue( SdaiIfcpropertytablevalue & e );
        ~SdaiIfcpropertytablevalue();
        int opcode() {
            return 637;
        }
        SdaiIfcvalue_agg_ptr_c definingvalues_() const;
        SdaiIfcvalue_agg_ptr   definingvalues_();
        void definingvalues_( const SdaiIfcvalue_agg_ptr x );

        SdaiIfcvalue_agg_ptr_c definedvalues_() const;
        SdaiIfcvalue_agg_ptr   definedvalues_();
        void definedvalues_( const SdaiIfcvalue_agg_ptr x );

  const SdaiIfctext   expression_() const;
        SdaiIfctext   expression_();
        void expression_( const SdaiIfctext x );

        SdaiIfcunit_ptr_c definingunit_() const;
        SdaiIfcunit_ptr   definingunit_();
        void definingunit_( const SdaiIfcunit_ptr x );

        SdaiIfcunit_ptr_c definedunit_() const;
        SdaiIfcunit_ptr   definedunit_();
        void definedunit_( const SdaiIfcunit_ptr x );

  const SdaiIfccurveinterpolationenum_var   curveinterpolation_() const;
        SdaiIfccurveinterpolationenum_var   curveinterpolation_();
        void curveinterpolation_( const SdaiIfccurveinterpolationenum_var x );

};

inline SdaiIfcpropertytablevalue * create_SdaiIfcpropertytablevalue() {
    return new SdaiIfcpropertytablevalue;
}

void init_SdaiIfcpropertytablevalue(Registry& reg);

namespace ifc4 {
    extern EntityDescriptor *e_ifcpropertytablevalue;
    extern AttrDescriptor *a_1412definingvalues;
    extern AttrDescriptor *a_1413definedvalues;
    extern AttrDescriptor *a_1414expression;
    extern AttrDescriptor *a_1415definingunit;
    extern AttrDescriptor *a_1416definedunit;
    extern AttrDescriptor *a_1417curveinterpolation;
}

#endif
