#ifndef  ENTITY_SDAIIFCPROPERTYDEPENDENCYRELATIONSHIP_H
#define  ENTITY_SDAIIFCPROPERTYDEPENDENCYRELATIONSHIP_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 SdaiIfcpropertydependencyrelationship : public SdaiIfcresourcelevelrelationship {
     protected:
        SDAI_Application_instance_ptr _dependingproperty = NULL;
        SDAI_Application_instance_ptr _dependantproperty = NULL;
        SDAI_String _expression;    //  OPTIONAL
    public: 
        SdaiIfcpropertydependencyrelationship();
        SdaiIfcpropertydependencyrelationship( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiIfcpropertydependencyrelationship( SdaiIfcpropertydependencyrelationship & e );
        ~SdaiIfcpropertydependencyrelationship();
        int opcode() {
            return 393;
        }
        SdaiIfcproperty_ptr_c dependingproperty_() const;
        SdaiIfcproperty_ptr   dependingproperty_();
        void dependingproperty_( const SdaiIfcproperty_ptr x );

        SdaiIfcproperty_ptr_c dependantproperty_() const;
        SdaiIfcproperty_ptr   dependantproperty_();
        void dependantproperty_( const SdaiIfcproperty_ptr x );

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

};

inline SdaiIfcpropertydependencyrelationship * create_SdaiIfcpropertydependencyrelationship() {
    return new SdaiIfcpropertydependencyrelationship;
}

void init_SdaiIfcpropertydependencyrelationship(Registry& reg);

namespace ifc4 {
    extern EntityDescriptor *e_ifcpropertydependencyrelationship;
    extern AttrDescriptor *a_891dependingproperty;
    extern AttrDescriptor *a_892dependantproperty;
    extern AttrDescriptor *a_893expression;
}

#endif
