/////////////////////////////////////////////////////////////////////////////// // Copyright (C) 2002-2025, Open Design Alliance (the "Alliance"). // All rights reserved. // // This software and its documentation and related materials are owned by // the Alliance. The software may only be incorporated into application // programs owned by members of the Alliance, subject to a signed // Membership Agreement and Supplemental Software License Agreement with the // Alliance. The structure and organization of this software are the valuable // trade secrets of the Alliance and its suppliers. The software is also // protected by copyright law and international treaty provisions. Application // programs incorporating this software must include the following statement // with their copyright notices: // // This application incorporates Open Design Alliance software pursuant to a license // agreement with Open Design Alliance. // Open Design Alliance Copyright (C) 2002-2025 by Open Design Alliance. // All rights reserved. // // By use of this software, its documentation or related materials, you // acknowledge and accept the above terms. /////////////////////////////////////////////////////////////////////////////// // This file is generated automatically. #ifndef _IFC4X4_IFCCLASSIFICATION_AUTO_IMPL_H #define _IFC4X4_IFCCLASSIFICATION_AUTO_IMPL_H #include "IfcExternalInformationAutoImpl.h" #include "TD_PackPush.h" /** \details The namespace contains schema-dependent classes, definitions and sub routines for work with IFC4X4 express schema definitions. */ namespace OdIfc4x4 { /** \details An IfcClassification is used for the arrangement of objects into a class or category according to a common purpose or their possession of common characteristics. A category of objects relates to other categories in a generalization-specialization relationship. The classification items in an classification are organized in a tree structure. \changes * IFC4 changes: * Attribute Edition is optional * Type of the EditionDate attribute changed from "IfcCalendarDate" to "IfcDate" * Attribute Source is optional * Inverse attribute Contains renamed to ClassificationForObjects * Type of the inverse attribute Contains Changed from "SET OF [0:?] IfcClassificationItem FOR ItemOf" to "SET OF [0:?] IfcRelAssociatesClassification FOR RelatingClassification" * IFC4X3_RC1 changes: Attribute Location renamed to Specification */ class IFC4X4_EXPORT IfcClassification : public IfcExternalInformation { //DOM-IGNORE-BEGIN OD_EXP_DECLARE_MEMBERS(OdIfc4x4::IfcClassification); //DOM-IGNORE-END public: // // OdDAI early binding accessors // /** \details Returns the value of Source attribute. This attribute represents source (or publisher) for this classification. \returns Returns the value of Source attribute. \remarks The source of the classification means the person or organization that is the original author or the person or organization currently acting as the publisher. */ const OdAnsiString& getSource() const; /** \details Sets the value of Source attribute. This attribute represents source (or publisher) for this classification. \param Source [in] Source to set. \remarks The source of the classification means the person or organization that is the original author or the person or organization currently acting as the publisher. */ void setSource(const OdAnsiString& Source); /** \details Returns the value of Edition attribute. This attribute represents the edition or version of the classification system from which the classification notation is derived. \returns Returns the value of Edition attribute. \remarks The version labeling system is specific to the classification system. */ const OdAnsiString& getEdition() const; /** \details Sets the value of Edition attribute. This attribute represents the edition or version of the classification system from which the classification notation is derived. \param Edition [in] Edition to set. \remarks The version labeling system is specific to the classification system. */ void setEdition(const OdAnsiString& Edition); /** \details Returns the value of EditionDate attribute. This attribute represents the date on which the edition of the classification became valid. \returns Returns the value of EditionDate attribute. \remarks The edition date is provided as an optional attribute to enable more precise identification where required. */ const OdAnsiString& getEditionDate() const; /** \details Sets the value of EditionDate attribute. This attribute represents the date on which the edition of the classification became valid. \param EditionDate [in] Edition date to set. \remarks The edition date is provided as an optional attribute to enable more precise identification where required. */ void setEditionDate(const OdAnsiString& EditionDate); /** \details Returns the value of Name attribute. This attribute represents the name or label by which the classification is normally known. \returns Returns the value of Name attribute. \remarks Examples of names include CI/SfB, Masterformat, BSAB, Uniclass, STABU, DIN276, DIN277, etc. */ const OdAnsiString& getName() const; /** \details Sets the value of Name attribute. This attribute represents the name or label by which the classification is normally known. \param Name [in] Name to set. \remarks Examples of names include CI/SfB, Masterformat, BSAB, Uniclass, STABU, DIN276, DIN277, etc. */ void setName(const OdAnsiString& Name); /** \details Returns the value of Description attribute. This attribute represents additional description provided for the classification. \returns Returns the value of Description attribute. */ const OdAnsiString& getDescription() const; /** \details Sets the value of Description attribute. This attribute represents additional description provided for the classification. \param Description [in] Description to set. */ void setDescription(const OdAnsiString& Description); /** \details Returns the value of Specification attribute. This attribute represents resource identifier or locator, provided as URI, URN or URL, of the classification. \returns Returns the value of Specification attribute. */ const OdAnsiString& getSpecification() const; /** \details Sets the value of Specification attribute. This attribute represents resource identifier or locator, provided as URI, URN or URL, of the classification. \param Specification [in] Specification to set. */ void setSpecification(const OdAnsiString& Specification); /** \details Gets the value of ReferenceTokens attribute. This attribute represents the delimiter tokens that are used to mark the boundaries of individual facets (substrings) in a classification reference. \param ReferenceTokens [out] Receives reference tokens. \remarks This typically applies when the IfcClassification is used together with IfcClassificationReference's. If only one reference token is provided, it applies to all boundaries of individual facets, if more than one, then the first token applies to the first boundary, the second token to the second boundary, and the nth token to the nth and any additional boundary. */ void getReferenceTokens(OdArray& ReferenceTokens) const; /** \details Returns the value of ReferenceTokens attribute. This attribute represents the delimiter tokens that are used to mark the boundaries of individual facets (substrings) in a classification reference. \returns Returns the value of ReferenceTokens attribute. \remarks This typically applies when the IfcClassification is used together with IfcClassificationReference's. If only one reference token is provided, it applies to all boundaries of individual facets, if more than one, then the first token applies to the first boundary, the second token to the second boundary, and the nth token to the nth and any additional boundary. */ OdDAI::ListOfOdAnsiString& referenceTokens(); /** \details Returns the value of ClassificationForObjects attribute. This attribute represents the classification with which objects are associated. \param ClassificationForObjects [out] Receives the value of ClassificationForObjects attribute. */ void getInvClassificationForObjects(OdDAIObjectIds& ClassificationForObjects) const; /** \details Returns the value of HasReferences attribute. This attribute represents the classification references to which the classification applies. It can either be the final classification notation, or an intermediate classification item. \param HasReferences [out] Receives the value of HasReferences attribute. */ void getInvHasReferences(OdDAIObjectIds& HasReferences) const; public: /** \details Default constructor for the IfcClassification class. */ IfcClassification(); /** \details Reads object's data from the specified filer. \param rdFiler [in] Pointer to a filer from which to read the data. \returns A value of OdResult type that contains the result of the method execution. */ virtual OdResult inFields(OdDAI::OdSpfFilerBase* rdFiler) override; /** \details Writes object's data the the specified filer. \param wrFiler [in] Pointer to a filer to which to write the data. \returns A value of OdResult type that contains the result of the method execution. */ virtual OdResult outFields(OdDAI::OdSpfFilerBase* wrFiler) override; /** \details Returns a type of a class instance. \returns Pointer to the OdDAI::Entity type that determines an entity definition within a schema. */ virtual OdDAI::Entity* getInstanceType() const override; /** \details Returns an attribute value for the specified attribute name. \param attrName [in] Name of an attribute to query. \returns OdRxValue object that represents a generic variant type value. */ virtual OdRxValue getAttr(const char * attrName) const override; /** \details Early-bound version of instances comparison. \param pOther [in] Other application instance. \param ordering [out] Receives the ordering (comparison) status. \returns true if comparison was performed, false if method has no implementation, so late-bound version could be applied. \remarks If the method returns true, the ordering parameter can receive one of the following statuses: Name Value Description _kLessThan_ -1 This object < Other Object. _kEqual_ 0 This object = Other Object. _kGreaterThan_ 1 This object > Other Object. _kNotOrderable_ 2 This class is not orderable.
*/ virtual bool comparedToEarlyImpl(const OdDAI::ApplicationInstance *pOther, OdRx::Ordering &ordering) const override; /** \details Resets a value for the specified attribute. \param explicitAttrName [in] Explicit name of the attribute to reset. */ virtual void unsetAttr(const char * explicitAttrName) override; /** \details Checks whether the specified attribute is set. \param explicitAttrName [in] Explicit name of the attribute to test. \returns true if the specified attribute is set, false otherwise. */ virtual bool testAttr(const char * explicitAttrName) const override; /** \details Sets the specified attribute with a given value. \param explicitAttrName [in] Explicit name of the attribute to set. \param val [in] Value to set. \returns true if the value is successfully set for the specified attribute, false otherwise. */ virtual bool putAttr(const char * explicitAttrName, const OdRxValue &val) override; /** \details Checks whether the specified instance is the object derived from or belongs to this class. \param entityType [in] Entity to check. \returns true if the specified instance is the object derived from or belongs to this class, false otherwise. */ virtual bool isKindOf(OdIfc::OdIfcEntityType entityType) const override; /** \details Returns the type of this entity. \returns A value of the OdIfc::OdIfcEntityType type that represents type of this entity. */ virtual OdIfc::OdIfcEntityType type() const override; /** \details Returns an attribute value for the specified attribute definition. \param attrDef [in] Attribute definition to query. \returns OdRxValue object that represents a generic variant type value. */ virtual OdRxValue getAttr(const OdIfc::OdIfcAttribute attrDef) const override; /** \details Resets a value for the specified attribute. \param explicitAttrDef [in] Explicit definition that represents an attribute to reset. */ virtual void unsetAttr(const OdIfc::OdIfcAttribute explicitAttrDef) override; /** \details Checks whether the specified attribute is set. \param explicitAttrDef [in] Attribute definition to test. \returns true if the specified attribute is set, false otherwise. */ virtual bool testAttr(const OdIfc::OdIfcAttribute explicitAttrDef) const override; /** \details Sets the specified attribute with a given value. \param explicitAttrDef [in] Explicit attribute definition to set. \param val [in] Value to set. \returns true if the value is successfully set for the specified attribute, false otherwise. */ virtual bool putAttr(const OdIfc::OdIfcAttribute explicitAttrDef, const OdRxValue &val) override; protected: // Fields declaration: OdAnsiString m_Source; // IfcLabel [optional] OdAnsiString m_Edition; // IfcLabel [optional] OdAnsiString m_EditionDate; // IfcDate [optional] OdAnsiString m_Name; // IfcLabel OdAnsiString m_Description; // IfcText [optional] OdAnsiString m_Specification; // IfcURIReference [optional] OdDAI::ListOfOdAnsiString m_ReferenceTokens; // LIST [1:?] of IfcIdentifier [optional] // Declare friend classes for inverse attributes functionality: friend class IfcRelAssociatesClassification; friend class IfcClassificationReference; }; /** \details A data type that represents a smart pointer to a IfcClassification object. */ typedef OdSmartPtr IfcClassificationPtr; } // namespace #include "TD_PackPop.h" #endif // _IFC4X4_IFCCLASSIFICATION_AUTO_IMPL_H