/////////////////////////////////////////////////////////////////////////////// // 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 _IDS_API_H #define _IDS_API_H #include "OdIdsIds.h" namespace OdIds { /** \details Saves IDS data into the file. \param pIds [in] A smart pointer to IDS data. \param filename [in] A string of filename to data be saved in. */ ODIDS_DLLEXPORT void saveIdsInFile(const OdIdsIdsPtr pIds, const char* filename); /** \details Creates OdIdsIdsInfo instance and sets it to the IDS instance. \param pIds [in] A smart pointer to IDS data. \param title [in] A string of title. \param description [in] A string of description. \param version [in] A string of version. \param date [in] A row pointer to OdTimeStamp data. \param milestone [in] A string of milestone. \returns A smart pointer to OdIdsIdsInfo data of created instance. */ ODIDS_DLLEXPORT OdIdsIdsInfoPtr createIdsInfo(OdIdsIdsPtr pIds, const char* title = nullptr, const char* description = nullptr, const char* copyright = nullptr, const char* version = nullptr, const OdTimeStamp* date = nullptr, const char* milestone = nullptr); /** \details Creates OdIdsSpecificationType instance and sets it to the IDS instance. \param pIds [in] A smart pointer to IDS data. \param name [in] A string of name data. \param ifcVersions [in] A string array of ifc versions data. \returns A smart pointer to OdIdsSpecificationType data of created instance. */ ODIDS_DLLEXPORT OdIdsSpecificationTypePtr createIdsSpecification(OdIdsIdsPtr pIds, const char* name = nullptr, const OdAnsiStringArray* ifcVersions = nullptr); /** \details Creates OdIdsEntityType instance and sets it to the OdIdsApplicabilityType instance. \param pApplicability [in] A smart pointer to OdIdsApplicabilityType data. \param simpleValue [in] A string of simple value data. \returns A smart pointer to OdIdsEntityType data of created instance. */ ODIDS_DLLEXPORT OdIdsEntityTypePtr createIdsEntity(OdIdsApplicabilityTypePtr pApplicability, const char* simpleValue = nullptr); /** \details Creates OdIdsRequirementsTypeAttribute instance and sets it to the OdIdsSpecificationTypeRequirements instance. \param pRequirements [in] A smart pointer to OdIdsSpecificationTypeRequirements data. \param name [in] A string of name data. \param cordinality [in] A string of cordinality data. \returns A smart pointer to OdIdsRequirementsTypeAttribute data of created instance. */ ODIDS_DLLEXPORT OdIdsRequirementsTypeAttributePtr createIdsRequirementsTypeAttribute(OdIdsSpecificationTypeRequirementsPtr pRequirements, const char* name = nullptr, const char* cordinality = nullptr); /** \details Creates OdIdsRequirementsTypeClassification instance and sets it to the OdIdsSpecificationTypeRequirements instance. \param pRequirements [in] A smart pointer to OdIdsSpecificationTypeRequirements data. \param simpleValue [in] A string of simple value data. \param cordinality [in] A string of cordinality data. \param instructions [in] A string of instructions data. \param uri [in] A string of uri data. \returns A smart pointer to OdIdsRequirementsTypeClassification data of created instance. */ ODIDS_DLLEXPORT OdIdsRequirementsTypeClassificationPtr createIdsRequirementsTypeClassification(OdIdsSpecificationTypeRequirementsPtr pRequirements, const char* simpleValue = nullptr, const char* cordinality = nullptr, const char* instructions = nullptr, const char* uri = nullptr); } #endif // _IDS_API_H