/////////////////////////////////////////////////////////////////////////////// // 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. /////////////////////////////////////////////////////////////////////////////// #ifndef _STEP_COMPOUND_H_ #define _STEP_COMPOUND_H_ #include "RxObject.h" #include "daiCompound.h" #include "daiApplicationInstance.h" //#include "StepAPFile.h" #include "StepBuildOptions.h" class OdStepEntResolver; class OdStepFile; /** \details Implements the Data Access Interface (DAI) that provides functionality for manipulating data that is defined within the EXPRESS SCHEMA format. */ namespace OdStep { /** \details A class that implements working with a SDAI compound object. */ class STEPCORE_EXPORT OdStepCompound : public OdDAI::OdCompound { //DOM-IGNORE-BEGIN ODRX_DECLARE_MEMBERS(OdStepCompound); //DOM-IGNORE-END /**\details Composes the compound object into a specified model. */ void compose() override; /**\details Retrieves the current type of the compound object. \returns Returns a string value that represents the current compound object type. */ OdAnsiString type(); /** \details Checks whether this object is persistent (stored in a database). \returns true this object is persistent (stored in a database), false otherwise. */ virtual bool isPersistent() const ODRX_OVERRIDE; /** \details Retrieves the database ID of this object. \returns pointer to OdDbStub which represents a database identifier of this object. \remarks Returns a null pointer if this object is not persistent. */ virtual OdDbStub* id() const ODRX_OVERRIDE; /** \details Retrieves the current value of an attribute specified by its name. \param attrName [in] An ANSI string that contains the attribute name. \returns Returns the current value of the attribute. \remarks The method provides late binding access to the attribute value by its name. Attributes of select and aggregate data types are also supported. */ virtual OdRxValue getAttr(const OdAnsiString& attrName) const { return m_id.openObject()->getAttr(attrName); } /** \details Retrieves the compound object's underlying STEP entity instance. \param pInst [in] A raw pointer to the compound object. \returns Returns a smart pointer to the compound object. */ static OdDAI::ApplicationInstancePtr earlyAccess(OdStepCompound* pInst) { return pInst->m_id.openObject(); }; /** \details Retrieves the owning file for STEP entity instance. \returns Returns a smart pointer to the owning file. */ OdStepFile* owningStepFile() const ODRX_OVERRIDE; /**\details Retrieves the entity name for CDA tree. \returns Returns a string value that represents the entity name for CDA tree. */ virtual OdString getBlockName(); protected: //DOM-IGNORE-BEGIN OdDAIObjectId m_id; friend class ::OdStepEntResolver; //DOM-IGNORE-END }; /** \details A data type that represents a smart pointer to an