/////////////////////////////////////////////////////////////////////////////// // 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 _BCF_3_0_TOPIC_H #define _BCF_3_0_TOPIC_H #include "BcfCommon.h" #include "SharedPtr.h" #include "StringArray.h" #include "OdGUID.h" #include "BcfElement.h" /** \details Contains declarations related to working with BCF files content. */ namespace OdBcf { class OdBcfTimeStamp; typedef OdSmartPtr OdBcfTimeStampPtr; class OdBcfValidationContext; } /** \details Contains declarations related to working with data of the BCF format version 3.0. */ namespace OdBcf_3_0 { class OdBcfReferenceLinks; /** \details A data type that represents a smart pointer to an OdBcfReferenceLinks object. */ typedef OdSmartPtr OdBcfReferenceLinksPtr; class OdBcfLabels; /** \details A data type that represents a smart pointer to an OdBcfLabels object. */ typedef OdSmartPtr OdBcfLabelsPtr; class OdBcfBimSnippet; /** \details A data type that represents a smart pointer to an OdBcfBimSnippet object. */ typedef OdSmartPtr OdBcfBimSnippetPtr; class OdBcfDocumentReferences; /** \details A data type that represents a smart pointer to an OdBcfDocumentReference object. */ typedef OdSmartPtr OdBcfDocumentReferencesPtr; class OdBcfRelatedTopics; /** \details A data type that represents a smart pointer to an OdBcfRelatedTopics object. */ typedef OdSmartPtr OdBcfRelatedTopicsPtr; class OdBcfComments; /** \details A data type that represents a smart pointer to an OdBcfComments object. */ typedef OdSmartPtr OdBcfCommentsPtr; class OdBcfViewpoints; /** \details A data type that represents a smart pointer to an OdBcfViewpoints object. */ typedef OdSmartPtr OdBcfViewpointsPtr; class OdBcfSession; /** \details A class that stores a BCF topic metadata. */ class BCF_3_0_EXPORT OdBcfTopicData { public: /** \details Creates a new topic data object with default parameters. */ OdBcfTopicData(); /** \details A smart pointer to the reference links object that contains reference links to the topic. */ OdBcfReferenceLinksPtr m_pReferenceLinks; /** \details A string that contains the topic's title. */ OdString m_title; /** \details A string that contains the topic's priority value. */ OdString m_priority; /** \details The topic's index value. */ OdInt32 m_index; /** \details A smart pointer to the labels object that contains the topic's labels. */ OdBcfLabelsPtr m_pLabels; /** \details A smart pointer to the timestamp object that contains the topic's due date. */ OdBcf::OdBcfTimeStampPtr m_pDueDate; /** \details A string that contains the object the topic is assigned to. */ OdString m_assignedTo; /** \details A string that contains the topic's stage name. */ OdString m_stage; /** \details A string that contains the topic's description. */ OdString m_description; /** \details A smart pointer to the topic's BIM snippet object. */ OdBcfBimSnippetPtr m_pBimSnippet; /** \details A smart pointer to the comments object that contains topic's comments. */ OdBcfCommentsPtr m_pComments; /** \details A string that contains the topic's type. */ OdString m_topicType; /** \details A string that contains the topic's status. */ OdString m_topicStatus; public: /** \details A smart pointer to a timestamp object that contains the date and time of the topic creation. \remarks Set this field only in conjunction with createManually flag in OdBcfSession::createTopic. */ OdBcf::OdBcfTimeStampPtr m_pCreationDate; /** \details A string that contains the topic's author. \remarks Set this field only in conjunction with createManually flag in OdBcfSession::createTopic. */ OdString m_creationAuthor; /** \details A smart pointer to a timestamp object that contains the date and time of the topic modification. \remarks Set this field only in conjunction with createManually flag in OdBcfSession::createTopic. */ OdBcf::OdBcfTimeStampPtr m_pModifiedDate; /** \details A string that contains the name of the author that modified the topic. \remarks Set this field only in conjunction with createManually flag in OdBcfSession::createTopic. */ OdString m_modifiedAuthor; /** \details A smart pointer to the document references object, which is related to the topic. \remarks Set this field only in conjunction with createManually flag in OdBcfSession::createTopic. */ OdBcfDocumentReferencesPtr m_pDocumentReferences; /** \details A smart pointer to the related topics object, which is related to the topic. \remarks Set this field only in conjunction with createManually flag in OdBcfSession::createTopic. */ OdBcfRelatedTopicsPtr m_pRelatedTopics; /** \details A smart pointer to the viewpoint object, which is related to the topic. \remarks Set this field only in conjunction with createManually flag in OdBcfSession::createTopic. */ OdBcfViewpointsPtr m_pViewpoints; /** \details A globally unique identifier of the topic. \remarks Set this field only in conjunction with createManually flag in OdBcfSession::createTopic. */ OdGUID m_guid; /** \details A server assigned identifier of the topic. \remarks Set this field only in conjunction with createManually flag in OdBcfSession::createTopic. */ OdString m_serverAssignedId; }; /** \details A class that stores and operates a topic data. */ class BCF_3_0_EXPORT OdBcfTopic : public OdBcf::OdBcfElement, protected OdBcfTopicData { public: //DOM-IGNORE-BEGIN ODRX_DECLARE_MEMBERS(OdBcfTopic); //DOM-IGNORE-END /** \details Reads XML data into ODA data structures. \param pParent [in] A pointer to the parent element of the data structure. \returns eOk if data is successfully read; otherwise, the method returns an appropriate error code. */ virtual OdResult inFields(TiXmlElement *pParent) ODRX_OVERRIDE; /** \details Writes data into XML structures. \param pParent [in] A pointer to the parent element of the data structure. \returns eOk if data is successfully written; otherwise, the method returns an appropriate error code. */ virtual OdResult outFields(TiXmlElement *pParent) const ODRX_OVERRIDE; /** \details Sets reference links for the topic object. \param referenceLinksValue [in] A smart pointer to the OdBcfReferenceLinks object that contains reference links. */ void setReferenceLinks(const OdBcfReferenceLinksPtr &referenceLinksValue); /** \details Retrieves the OdBcfReferenceLinks object associated with the topic. \returns A smart pointer to the OdBcfReferenceLinks object. \remarks The OdBcfReferenceLinks object returned by the method can be modified in the calling subroutine. */ OdBcfReferenceLinksPtr& getReferenceLinks(); /** \details Retrieves the OdBcfReferenceLinks object associated with the topic. \returns A smart pointer to the OdBcfReferenceLinks object. \remarks The OdBcfReferenceLinks object returned by the method can't be modified in the calling subroutine. */ const OdBcfReferenceLinksPtr& getReferenceLinks() const; /** \details Checks whether the OdBcfReferenceLinks object is not initialized. \returns true if the OdBcfReferenceLinks object is not initialized; otherwise, the method returns false. */ bool isReferenceLinksUnset() const; /** \details Sets the title of the topic object. \param titleValue [in] A string array that contains the title text. */ void setTitle(const OdString &titleValue); /** \details Retrieves the topic title. \returns A string that contains the title text. \remarks The title text returned by the method can be modified in the calling subroutine. */ OdString& getTitle(); /** \details Retrieves the topic title. \returns A string that contains the title text. \remarks The title text returned by the method can't be modified in the calling subroutine. */ const OdString& getTitle() const; /** \details Checks whether the title of the topic object is not initialized. \returns true if the title is not initialized; otherwise, the method returns false. */ bool isTitleUnset() const; /** \details Sets the priority of the topic object. \param priorityValue [in] A string array that contains the priority value to be set. */ void setPriority(const OdString &priorityValue); /** \details Retrieves the topic priority. \returns A string that contains the priority value. \remarks The priority value returned by the method can be modified in the calling subroutine. */ OdString& getPriority(); /** \details Retrieves the topic priority. \returns A string that contains the priority value. \remarks The priority value returned by the method can't be modified in the calling subroutine. */ const OdString& getPriority() const; /** \details Checks whether the priority value of the topic object is not initialized. \returns true if the priority value is not initialized; otherwise, the method returns false. */ bool isPriorityUnset() const; /** \details Sets the index of the topic object. \param indexValue [in] A 32-bit integer value that represents the index to be set. */ void setIndex(const OdInt32 &indexValue); /** \details Retrieves the topic index. \returns A 32-bit integer value that represents the index. \remarks The index value returned by the method can be modified in the calling subroutine. */ OdInt32& getIndex(); /** \details Retrieves the topic index. \returns A 32-bit integer value that represents the index. \remarks The index value returned by the method can't be modified in the calling subroutine. */ const OdInt32& getIndex() const; /** \details Checks whether the topic index is not initialized. \returns true if the index value is not initialized; otherwise, the method returns false. */ bool isIndexUnset() const; /** \details Sets OdBcfLabels for the topic object. \param labelsValue [in] A smart pointer to the OdBcfLabels object that contains topic labels. */ void setLabels(const OdBcfLabelsPtr &labelsValue); /** \details Retrieves the OdBcfLabels object associated with the topic. \returns A smart pointer to the OdBcfLabels object. \remarks The OdBcfLabels object returned by the method can be modified in the calling subroutine. */ OdBcfLabelsPtr& getLabels(); /** \details Retrieves the OdBcfLabels object associated with the topic. \returns A smart pointer to the OdBcfLabels object. \remarks The OdBcfLabels object returned by the method can't be modified in the calling subroutine. */ const OdBcfLabelsPtr& getLabels() const; /** \details Checks whether the OdBcfLabels object is not initialized. \returns true if the OdBcfLabels object is not initialized; otherwise, the method returns false. */ bool isLabelsUnset() const; /** \details Sets a new due date for the topic object. \param dueDateValue [in] A smart pointer to the OdBcfTimeStamp object that contains the due date to be set. */ void setDueDate(const OdBcf::OdBcfTimeStampPtr &dueDateValue); /** \details Retrieves the topic due date. \returns A smart pointer to the OdBcfTimeStamp object that contains the due date. \remarks The timestamp object returned by the method can be modified in the calling subroutine. */ OdBcf::OdBcfTimeStampPtr& getDueDate(); /** \details Retrieves the topic due date. \returns A smart pointer to the OdBcfTimeStamp object that contains the due date. \remarks The timestamp object returned by the method can't be modified in the calling subroutine. */ const OdBcf::OdBcfTimeStampPtr& getDueDate() const; /** \details Checks whether the topic due date is not initialized. \returns true if the due date is not initialized; otherwise, the method returns false. */ bool isDueDateUnset() const; /** \details Sets a new value of the AssignedTo property of the topic object. \param assignedToValue [in] A string that contains AssignedTo property value to be set. */ void setAssignedTo(const OdString &assignedToValue); /** \details Retrieves the topic's AssignedTo property value. \returns A string that contains the AssignedTo property value. \remarks The property value returned by the method can be modified in the calling subroutine. */ OdString& getAssignedTo(); /** \details Retrieves the topic's AssignedTo property value. \returns A string that contains the AssignedTo property value. \remarks The property value returned by the method can't be modified in the calling subroutine. */ const OdString& getAssignedTo() const; /** \details Checks whether the topic's AssignedTo property is not initialized. \returns true if the property value is not initialized; otherwise, the method returns false. */ bool isAssignedToUnset() const; /** \details Sets a new value of the Stage property for the topic object. \param stageValue [in] A string that contains a new stage value to be set. */ void setStage(const OdString &stageValue); /** \details Retrieves the topic's Stage property value. \returns A string that contains the Stage property value. \remarks The property value returned by the method can be modified in the calling subroutine. */ OdString& getStage(); /** \details Retrieves the topic's Stage property value. \returns A string that contains the Stage property value. \remarks The property value returned by the method can't be modified in the calling subroutine. */ const OdString& getStage() const; /** \details Checks whether the topic's Stage property is not initialized. \returns true if the property value is not initialized; otherwise, the method returns false. */ bool isStageUnset() const; /** \details Sets the topic description. \param descriptionValue [in] A string that contains the new description to be set. */ void setDescription(const OdString &descriptionValue); /** \details Retrieves the topic description. \returns A string that contains the description. \remarks The description returned by the method can be modified in the calling subroutine. */ OdString& getDescription(); /** \details Retrieves the topic description. \returns A string that contains the description. \remarks The description returned by the method can't be modified in the calling subroutine. */ const OdString& getDescription() const; /** \details Checks whether the topic description is not initialized. \returns true if the description is not initialized; otherwise, the method returns false. */ bool isDescriptionUnset() const; /** \details Sets a new BimSnippet object of the topic. \param bimSnippetValue [in] A smart pointer to an OdBcfBimSnippet object to be set. */ void setBimSnippet(const OdBcfBimSnippetPtr &bimSnippetValue); /** \details Retrieves the OdBcfBimSnippet object associated with the topic. \returns A smart pointer to the OdBcfBimSnippet object. \remarks The OdBcfBimSnippet object returned by the method can be modified in the calling subroutine. */ OdBcfBimSnippetPtr& getBimSnippet(); /** \details Retrieves the OdBcfBimSnippet object associated with the topic. \returns A smart pointer to the OdBcfBimSnippet object. \remarks The OdBcfBimSnippet object returned by the method can't be modified in the calling subroutine. */ const OdBcfBimSnippetPtr& getBimSnippet() const; /** \details Checks whether the OdBcfBimSnippet object is not initialized. \returns true if the OdBcfBimSnippet object is not initialized; otherwise, the method returns false. */ bool isBimSnippetUnset() const; /** \details Sets the type of the topic. \param topicTypeValue [in] A string that contains the type name. */ void setTopicType(const OdString &topicTypeValue); /** \details Retrieves the topic type. \returns A string that contains the topic type name. \remarks The topic type name returned by the method can be modified in the calling subroutine. */ OdString& getTopicType(); /** \details Retrieves the topic type. \returns A string that contains the topic type name. \remarks The topic type name returned by the method can't be modified in the calling subroutine. */ const OdString& getTopicType() const; /** \details Checks whether the topic type is not initialized. \returns true if the topic type is not initialized; otherwise, the method returns false. */ bool isTopicTypeUnset() const; /** \details Sets the topic status. \param topicStatusValue [in] A string that contains the topic status to be set. */ void setTopicStatus(const OdString &topicStatusValue); /** \details Retrieves the topic status. \returns A string that contains the topic status value. \remarks The topic status value returned by the method can be modified in the calling subroutine. */ OdString& getTopicStatus(); /** \details Retrieves the topic status. \returns A string that contains the topic status value. \remarks The topic status value returned by the method can't be modified in the calling subroutine. */ const OdString& getTopicStatus() const; /** \details Checks whether the topic status value is not initialized. \returns true if the topic status value is not initialized; otherwise, the method returns false. */ bool isTopicStatusUnset() const; /** \details Retrieves the topic creation date. \returns A smart pointer to an OdBcfTimeStamp object that contains the creation date. \remarks The timestamp object returned by the method can't be modified in the calling subroutine. */ const OdBcf::OdBcfTimeStampPtr& getCreationDate() const; /** \details Checks whether the topic creation date is not initialized. \returns true if the topic creation date is not initialized; otherwise, the method returns false. */ bool isCreationDateUnset() const; /** \details Retrieves the information about an author that has created the topic. \returns A string that contains data about the creator of the topic. \remarks The string returned by the method can't be modified in the calling subroutine. */ const OdString& getCreationAuthor() const; /** \details Checks whether the data about the author that has created the topic is not initialized. \returns true if the author data is not initialized; otherwise, the method returns false. */ bool isCreationAuthorUnset() const; /** \details Retrieves the date of the last modification of the topic. \returns A smart pointer to an OdBcfTimeStamp object that contains the date of the topic modification. \remarks The timestamp object returned by the method can't be modified in the calling subroutine. */ const OdBcf::OdBcfTimeStampPtr& getModifiedDate() const; /** \details Checks whether the topic modification date is not initialized. \returns true if the modification date is not initialized; otherwise, the method returns false. */ bool isModifiedDateUnset() const; /** \details Retrieves the information about an author that has modified the topic. \returns A string that contains data about the author that has modified the topic. \remarks The string returned by the method can't be modified in the calling subroutine. */ const OdString& getModifiedAuthor() const; /** \details Checks whether the data about the author that has modified the topic is not initialized. \returns true if the data about the author of the modification is not initialized; otherwise, the method returns false. */ bool isModifiedAuthorUnset() const; /** \details Retrieves the array of documents referenced within the topic. \returns An array of smart pointers to OdBcfDocumentReference objects. \remarks The array returned by the method can't be modified in the calling subroutine. */ const OdBcfDocumentReferencesPtr& getDocumentReferences() const; /** \details Checks whether the array of documents referenced within the topic is not initialized. \returns true if the document references array is not initialized; otherwise, the method returns false. */ bool isDocumentReferencesUnset() const; /** \details Retrieves the array of related topics for the topic. \returns An array of smart pointers to OdBcfGUIDAttribute objects that contains the related topics. \remarks The array returned by the method can't be modified in the calling subroutine. */ const OdBcfRelatedTopicsPtr& getRelatedTopics() const; /** \details Checks whether the array of related topics is not initialized. \returns true if the array of related topics is not initialized; otherwise, the method returns false. */ bool isRelatedTopicsUnset() const; /** \details Sets comments for the topic. \param commentsValue [in] A smart pointer to an OdBcfComments object that represents the murkup-related comments of a topic. */ void setComments(const OdBcfCommentsPtr& commentsValue); /** \details Retrieves comments for the topic. \returns A smart pointer to an OdBcfComments object that represents the murkup-related comments of a topic. \remarks The OdBcfComments object returned by the method can be modified in the calling subroutine. */ OdBcfCommentsPtr& getComments(); /** \details Retrieves comments for the topic. \returns A smart pointer to an OdBcfComments object that represents the murkup-related comments of a topic. \remarks The OdBcfComments object returned by the method can't be modified in the calling subroutine. */ const OdBcfCommentsPtr& getComments() const; /** \details Checks whether the array of related topics is not initialized. \returns true if the array of related topics is not initialized; otherwise, the method returns false. */ bool isCommentsUnset() const; /** \details Sets view points for the topic object. \param viewpointsValue [in] A smart pointer to the OdBcfViewpoints object that contains topic view points. */ void setViewpoints(const OdBcfViewpointsPtr& viewpointsValue); /** \details Retrieves the OdBcfViewpoints object associated with the topic. \returns A smart pointer to the OdBcfViewpoints object. \remarks The OdBcfViewpoints object returned by the method can be modified in the calling subroutine. */ OdBcfViewpointsPtr& getViewpoints(); /** \details Retrieves the OdBcfViewpoints object associated with the topic. \returns A smart pointer to the OdBcfViewpoints object. \remarks The OdBcfViewpoints object returned by the method can't be modified in the calling subroutine. */ const OdBcfViewpointsPtr& getViewpoints() const; /** \details Checks whether the OdBcfViewpoints object is not initialized. \returns true if the OdBcfViewpoints object is not initialized; otherwise, the method returns false. */ bool isViewpointsUnset() const; /** \details Retrieves the global unique identifier (GUID) of the topic. \returns An OdGUID object that contains the topic GUID. \remarks The GUID returned by the method can't be modified in the calling subroutine. */ const OdGUID& getGuid() const ODRX_OVERRIDE; /** \details Checks whether the global unique identifier (GUID) of the topic is not initialized. \returns true if the GUID is not initialized; otherwise, the method returns false. */ bool isGuidUnset() const; /** \details Retrieves the information about an author that has modified the topic. \returns A string that contains data about the author that has modified the topic. \remarks The string returned by the method can't be modified in the calling subroutine. */ const OdString& getServerAssignedId() const; /** \details Checks whether the data about the author that has modified the topic is not initialized. \returns true if the data about the author of the modification is not initialized; otherwise, the method returns false. */ bool isServerAssignedIdUnset() const; //DOM-IGNORE-BEGIN protected: /** \details Sets the topic creation date. \param creationDateValue [in] A smart pointer to an OdBcfTimeStamp object that contains the creation date to be set. */ void setCreationDate(const OdBcf::OdBcfTimeStampPtr &creationDateValue); /** \details Sets the data about the creator of the topic. \param creationAuthorValue [in] A string that contains the data about the topic creator. */ void setCreationAuthor(const OdString &creationAuthorValue); /** \details Sets the date of the last modification of the topic \param modifiedDateValue [in] A smart pointer to an OdBcfTimeStamp object that contains the date of the last topic modification. */ void setModifiedDate(const OdBcf::OdBcfTimeStampPtr &modifiedDateValue); /** \details Sets the data about the author of the last modification of the topic. \param modifiedAuthorValue [in] A string that contains the data about the last modification author. */ void setModifiedAuthor(const OdString &modifiedAuthorValue); /** \details Sets reference links for the topic object. \param referenceLinkValue [in] A smart pointer to the OdBcfReferenceLinks object that contains reference links. */ void setDocumentReferences(const OdBcfDocumentReferencesPtr &documentReferencesValue); /** \details Sets reference links for the topic object. \param referenceLinkValue [in] A smart pointer to the OdBcfRelatedTopics object that contains reference links. */ void setRelatedTopics(const OdBcfRelatedTopicsPtr &relatedTopicsValue); /** \details Sets the global unique identifier of the topic (GUID). \param guidValue [in] An OdGUID object that contains the GUID for the topic to be set. */ void setGuid(const OdGUID &guidValue); /** \details Sets the data about the author of the last modification of the topic. \param modifiedAuthorValue [in] A string that contains the data about the last modification author. */ void setServerAssignedId(const OdString& serverAssignedIdValue); /** \details Retrieves the topic creation date. \returns A smart pointer to an OdBcfTimeStamp object that contains the creation date. \remarks The timestamp object returned by the method can be modified in the calling subroutine. */ OdBcf::OdBcfTimeStampPtr& getCreationDate(); /** \details Retrieves the information about an author that has created the topic. \returns A string that contains data about the creator of the topic. \remarks The string returned by the method can be modified in the calling subroutine. */ OdString& getCreationAuthor(); /** \details Retrieves the date of the last modification of the topic. \returns A smart pointer to an OdBcfTimeStamp object that contains the date of the topic modification. \remarks The timestamp object returned by the method can be modified in the calling subroutine. */ OdBcf::OdBcfTimeStampPtr& getModifiedDate(); /** \details Retrieves the information about an author that has modified the topic. \returns A string that contains data about the author that has modified the topic. \remarks The string returned by the method can be modified in the calling subroutine. */ OdString& getModifiedAuthor(); /** \details Retrieves the OdBcfDocumentReferences object associated with the topic. \returns A smart pointer to the OdBcfDocumentReferences object. \remarks The OdBcfDocumentReferences object returned by the method can be modified in the calling subroutine. */ OdBcfDocumentReferencesPtr& getDocumentReferences(); /** \details Retrieves the OdBcfRelatedTopics object associated with the topic. \returns A smart pointer to the OdBcfRelatedTopics object. \remarks The OdBcfRelatedTopics object returned by the method can be modified in the calling subroutine. */ OdBcfRelatedTopicsPtr& getRelatedTopics(); /** \details Retrieves the global unique identifier (GUID) of the topic. \returns An OdGUID object that contains the topic GUID. \remarks The GUID returned by the method can be modified in the calling subroutine. */ OdGUID& getGuid(); /** \details Retrieves the information about an author that has modified the topic. \returns A string that contains data about the author that has modified the topic. \remarks The string returned by the method can be modified in the calling subroutine. */ OdString& getServerAssignedId(); /** \details An assignment operator for a BCF topic object. \param val [in] Another BCF topic object that should be assigned (the right-hand operand). \returns A reference to the topic object after the modification by the assignment operator. */ OdBcfTopic& operator = (const OdBcfTopicData& val); /** \details Checks whether the topic instance has all required fields initialized. \param context [in/out] A raw pointer to the validation context to store results in. \returns true if all required fields are initialized; otherwise the method returns false. */ virtual bool validateData(OdBcf::OdBcfValidationContext *context) const ODRX_OVERRIDE; friend OdBcfSession; //DOM-IGNORE-END }; /** \details A data type that represents a smart pointer to an OdBcfTopic object. */ typedef OdSmartPtr OdBcfTopicPtr; /** \details A data type that represents an ODA array of OdBcfTopicPtr objects. */ typedef OdArray OdBcfTopicArray; } //namespace OdBcf_3_0 #endif // _BCF_3_0_TOPIC_H