#ifndef  ENTITY_SDAIIFCLIBRARYINFORMATION_H
#define  ENTITY_SDAIIFCLIBRARYINFORMATION_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 SdaiIfclibraryinformation : public SdaiIfcexternalinformation {
     protected:
        SDAI_String _name;
        SDAI_String _version;    //  OPTIONAL
        SdaiIfcactorselect _publisher;    //  OPTIONAL
        SDAI_String _versiondate;    //  OPTIONAL
        SDAI_String _location;    //  OPTIONAL
        SDAI_String _description;    //  OPTIONAL
    public: 
        SdaiIfclibraryinformation();
        SdaiIfclibraryinformation( SDAI_Application_instance *se, bool addAttrs = true );
        SdaiIfclibraryinformation( SdaiIfclibraryinformation & e );
        ~SdaiIfclibraryinformation();
        int opcode() {
            return 551;
        }
  const SdaiIfclabel   name_() const;
        SdaiIfclabel   name_();
        void name_( const SdaiIfclabel x );

  const SdaiIfclabel   version_() const;
        SdaiIfclabel   version_();
        void version_( const SdaiIfclabel x );

        SdaiIfcactorselect_ptr_c publisher_() const;
        SdaiIfcactorselect_ptr   publisher_();
        void publisher_( const SdaiIfcactorselect_ptr x );

  const SdaiIfcdatetime   versiondate_() const;
        SdaiIfcdatetime   versiondate_();
        void versiondate_( const SdaiIfcdatetime x );

  const SdaiIfcurireference   location_() const;
        SdaiIfcurireference   location_();
        void location_( const SdaiIfcurireference x );

  const SdaiIfctext   description_() const;
        SdaiIfctext   description_();
        void description_( const SdaiIfctext x );

        EntityAggregate_ptr_c libraryinfoforobjects_() const;
        EntityAggregate_ptr   libraryinfoforobjects_();
        void libraryinfoforobjects_( const EntityAggregate_ptr x );

        EntityAggregate_ptr_c haslibraryreferences_() const;
        EntityAggregate_ptr   haslibraryreferences_();
        void haslibraryreferences_( const EntityAggregate_ptr x );

};

inline SdaiIfclibraryinformation * create_SdaiIfclibraryinformation() {
    return new SdaiIfclibraryinformation;
}

void init_SdaiIfclibraryinformation(Registry& reg);

namespace ifc4 {
    extern EntityDescriptor *e_ifclibraryinformation;
    extern AttrDescriptor *a_1230name;
    extern AttrDescriptor *a_1231version;
    extern AttrDescriptor *a_1232publisher;
    extern AttrDescriptor *a_1233versiondate;
    extern AttrDescriptor *a_1234location;
    extern AttrDescriptor *a_1235description;
    extern Inverse_attribute *a_1236Ilibraryinfoforobjects;
    extern Inverse_attribute *a_1237Ihaslibraryreferences;
}

#endif
