/////////////////////////////////////////////////////////////////////////////// // 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 _IFC2X2_FINAL_IFCPROPERTYSETDEFINITION_AUTO_IMPL_H #define _IFC2X2_FINAL_IFCPROPERTYSETDEFINITION_AUTO_IMPL_H #include "IfcPropertyDefinitionAutoImpl.h" #include "TD_PackPush.h" /** \details The namespace contains schema-dependent classes, definitions and sub routines for work with IFC2X2_FINAL express schema definitions. */ namespace OdIfc2x2_final { /** \details IfcPropertySetDefinition is a generalization of all individual property sets that can be assigned to an object or type object. The property set definition can be either: * Dynamically extendable property sets - IfcPropertySet, a set of properties for which the IFC specification only provides a kind of "meta model", to be further declared by agreement. This means that no entity definition of the properties exists within the IFC specification. The declaration is done by assigning a significant string value to the Name attribute of the entity as defined in the entity IfcPropertySet and at each subtype of IfcProperty, referenced by the property set. Dynamically defined property sets can have an underlying template provided by IfcPropertySetTemplate. * Statically defined property sets - IfcPreDefinedPropertySet, a property set entity that exists within the IFC specification. The semantic meaning of each statically defined property set is declared by its entity type and the meaning of the properties is defined by the name and data type of the explicit attribute representing it. Property set definitions define information that is shared among multiple instances of objects, either object occurrences or object types. IfcPropertySetDefinition's (by their instantiable subtypes) can participate within the following relationships: * Assignment to object types - a DefinesType direct relationship to IfcTypeObject that applies the property set, with all included properties, to the object type. Those properties apply to all object occurrences having the same object type. * Assignment to object occurrences - an DefinesOccurrence relationship to IfcRelDefinesByProperties that applies the property set, with all included properties, to the object occurrence. */ class IFC2X2_FINAL_EXPORT IfcPropertySetDefinition : public IfcPropertyDefinition { //DOM-IGNORE-BEGIN OD_EXP_NON_INSTANTIABLE_DECLARE_MEMBERS(OdIfc2x2_final::IfcPropertySetDefinition); //DOM-IGNORE-END public: // // OdDAI early binding accessors // /** \details Returns the value of PropertyDefinitionOf attribute. This attribute represents reference to the relation to one or many objects that are characterized by the property definition. The reference may be omitted, if the property definition is used to define a style library and no instances, to which the particular style of property set is associated, exist yet. \param PropertyDefinitionOf [out] Receives an array of object identifiers representing the PropertyDefinitionOf attribute. */ void getInvPropertyDefinitionOf(OdDAIObjectIds& PropertyDefinitionOf) const; /** \details Returns the value of DefinesType attribute. DefinesType is the type of an object to which the property set is assigned. The property set acts as a shared property set to all occurrences of the type object. \param DefinesType [out] Receives an array of object identifiers representing the DefinesType attribute. \remarks The relationship between the IfcPropertySetDefinition and the IfcTypeObject is a direct relationship, not utilizing IfcRelDefinesByProperties, for maintaining compatibility with earlier releases of this standard. */ void getInvDefinesType(OdDAIObjectIds& DefinesType) const; public: /** \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 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 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: using IfcRoot::getAttr; using IfcRoot::putAttr; protected: // Declare friend classes for inverse attributes functionality: friend class IfcRelDefinesByProperties; friend class IfcTypeObject; }; /** \details A data type that represents a smart pointer to a IfcPropertySetDefinition object. */ typedef OdSmartPtr IfcPropertySetDefinitionPtr; } // namespace #include "TD_PackPop.h" #endif // _IFC2X2_FINAL_IFCPROPERTYSETDEFINITION_AUTO_IMPL_H