--- title: "Интерфейс IDocuments" type: interface api: [api7] tags: [interface, api7, idocuments] sources: - idocuments.html --- *API интерфейсов. Версия 7 > Приложение > Коллекция документов * ## Интерфейс IDocuments Коллекция документов, открытых в приложении КОМПАС-3D. Иерархия: IKompasAPIObject IKompasCollection IDocuments Примечание: Данный интерфейс может быть получен от интерфейса приложения IApplication с помощью свойства IApplication::Documents. ## Add - Создать новый документ и добавить его в коллекцию Синтаксис Automation: ``` LPDISPATCH Add (long Type, BOOL Visible); ``` Синтаксис COM: ``` HRESULT Add([in] DocumentTypeEnum Type, [in, defaultvalue(TRUE)] VARIANT_BOOL Visible, [out, retval] IKompasDocument** Result); Входные параметры: Type - тип документа из перечисления DocumentTypeEnum, Visible - видимость документа: TRUE создавать документ в видимом режиме, FALSE в слепом. Возвращаемое значение: указатель на интерфейс IKompasDocument ``` ## AddCustomDocument - Создать новый документ по идентификатору и добавить его в коллекцию Синтаксис Automation: ``` LPDISPATCH AddCustomDocument( BSTR DocumentTypeId ); ``` Синтаксис COM: ``` HRESULT AddCustomDocument( BSTR DocumentTypeId, IKompasDocument** Result); Возвращаемое значение: указатель на интерфейс IKompasDocument ``` ## AddCustomDocumentEx - Создать новый документ и добавить его в коллекцию Синтаксис Automation: ``` LPDISPATCH AddCustomDocumentEx( BSTR DocumentTypeId, BOOL Visible ); ``` Синтаксис COM: ``` HRESULT AddCustomDocumentEx( BSTR DocumentTypeId, BOOL Visible, IKompasDocument * * Result ); Возвращаемое значение: указатель на интерфейс IKompasDocument Входные параметры: DocumentTypeId - идентификатор специализации документа, Visible - TRUE - видимый документ, FALSE - скрытый документ. Версия КОМПАС v22 ``` ## AddNewDocumentFromTemplate - Создать новый документ по шаблону и добавить его в коллекцию Синтаксис Automation: ``` LPDISPATCH AddNewDocumentFromTemplate( BSTR TemplateFileName ); ``` Синтаксис COM: ``` HRESULT AddNewDocumentFromTemplate( BSTR TemplateFileName, IKompasDocument** Result); Возвращаемое значение: указатель на интерфейс IKompasDocument ``` ## AddNewDocumentFromTemplateEx - Создать новый документ по шаблону и добавить его в коллекцию Синтаксис Automation: ``` LPDISPATCH AddNewDocumentFromTemplateEx( BSTR TemplateFileName, BOOL Visible ); ``` Синтаксис COM: ``` HRESULT AddNewDocumentFromTemplateEx( BSTR TemplateFileName, BOOL Visible, IKompasDocument * * Result ); Возвращаемое значение: указатель на интерфейс IKompasDocument Входные параметры: TemplateFileName - путь к файлу шаблона, Visible - TRUE - видимый документ, FALSE - скрытый документ. Версия КОМПАС v22 ``` ## AddWithDefaultSettings - Создать новый документ с параметрами из настроек для новых документов Синтаксис Automation: ``` LPDISPATCH AddWithDefaultSettings( DocumentTypeEnum Type, BOOL Visible ); ``` Синтаксис COM: ``` HRESULT AddWithDefaultSettings( DocumentTypeEnum Type, BOOL Visible, IKompasDocument** Result ); Входные параметры: Type - тип документа DocumentTypeEnum, Visible - TRUE видимый, - FALSE - невидимый. Возвращаемое значение: индекс линии разрыва, указатель на интерфейс IKompasDocument. ``` ## DocumentSynchronize - Синхронизировать с зависимыми документами Тип данных: BOOL Синтаксис Automation: ``` DocumentSynchronize = Object.DocumentSynchronize Получить свойство (* ) Object.DocumentSynchronize = DocumentSynchronize Установить свойство (* ) DocumentSynchronize = Object.GetDocumentSynchronize() Получить свойство(**) Object.SetDocumentSynchronize( DocumentSynchronize ) Установить свойство (**) ``` Синтаксис COM: ``` Object.get_DocumentSynchronize( &DocumentSynchronize ) Получить свойство Object.put_DocumentSynchronize( DocumentSynchronize ) Установить свойство Свойство позволяет устанавливать и получать признак синхронизации с зависимыми документами. Реализовано только для спецификации. ``` ## GetEmbodimentsTree - Дерево исполнений Синтаксис Automation: ``` VARIANT GetEmbodimentsTree( BSTR FileName, ksVariantMarkingTypeEnum MarkingType, BOOL AddSystemDelimer, BOOL AddSpaces, long * CurrentEmbodiment ); ``` Синтаксис COM: ``` HRESULT GetEmbodimentsTree( BSTR FileName, ksVariantMarkingTypeEnum MarkingType, BOOL AddSystemDelimer, BOOL AddSpaces, long * CurrentEmbodiment, VARIANT * Tree ); Входные параметры: FileName - Имя файла, MarkingType - Формат возвращаемых обозначений ksVariantMarkingTypeEnum, AddSystemDelimer - Возвращать системные разделители в обозначении, AddSpaces - Добавить пробелы для определения уровня исполнения в дереве исполнений, CurrentEmbodiment - Индекс текущего исполнения в списке исполнений. Возвращаемое значение: - Дерево исполнений. Массив узлов дерева исполнений. SAFEARRAY BSTR - (VT_ARRAY | VT_BSTR) ``` ## GetLoadCombinations - Получить массив типов загрузки в виде массива SAFEARRAY BSTR - (VT_ARRAY | VT_BSTR) Синтаксис Automation: ``` VARIANT GetLoadCombinations (LPCTSTR PathName, long * CurrentIndex); ``` Синтаксис COM: ``` HRESULT GetLoadCombinations([in] BSTR PathName, [out] long * CurrentIndex, [out, retval] VARIANT * Value ); Входные параметры: PathName - полное имя файла документа, состоящее из пути, имени и расширения файла. Выходные параметры: CurrentIndex - текущий индекс типа загрузки, по которому загружается документ по умолчанию. Возвращаемое значение: тип значения VARIANT - массив типов загрузки в виде массива SAFEARRAY BSTR - (VT_ARRAY VT_BSTR) ``` Примечание: Метод позволяет получить массив типов загрузки документа до открытия документа. Метод в настоящее время используется только для сборки 3D. У сборки 3D есть три умолчательных способа загрузки, индексы которых соответствуют перечислению ksLoadStateEnum: | Полная | 0 | - полная загрузка, | | --- | --- | --- | | Пустая | 1 | - все компоненты не загружены, | | Упрощенная | 2 | - все компоненты загружены частично. | Кроме этого, могут быть еще и пользовательские типы загрузки. ## GetLoadCombinationsParam - Получить интерфейс типов загрузки документа Синтаксис Automation: ``` LPDISPATCH GetLoadCombinationsParam (BSTR PathName); ``` Синтаксис COM: ``` HRESULT GetLoadCombinationsParam (BSTR PathName, ILoadCombinationsParam ** Result ); Входные параметры: PathName - имя документа Возвращаемое значение: Указатель на интерфейс ILoadCombinationsParam ``` ## GetOpenDocumentParam - Получить интерфейс параметров открытия документа Синтаксис Automation: ``` LPDISPATCH GetOpenDocumentParam(); ``` Синтаксис COM: ``` HRESULT GetOpenDocumentParam( IOpenDocumentParam ** Result ); Возвращаемое значение: Указатель на интерфейс IOpenDocumentParam ``` ## Item - Документ, заданный по имени, ссылке или по индексу Тип данных: указатель на интерфейс документа IKompasDocument Синтаксис Automation: ``` document = iObject.Item (Index) Получить свойство(* ) document = iObject.GetItem (Index) Получить свойство(**) ``` Синтаксис COM: ``` iObject->get_IItem ( Index, &Document ) Получить свойство Входные параметры: Index - Тип VARIANT, полное имя PathName документа, ссылка на документ или индекс в коллекции. ``` Примечание: 1. Свойство доступно только для чтения. 2. Полное имя файла документа состоит из пути, имени и расширения файла. ## LockTemplatesSettings - Игнорировать настройки шаблонов новых документов при создании документов через функции API Тип данных: BOOL Синтаксис Automation: ``` LockTemplatesSettings = Object.LockTemplatesSettings Получить свойство (* ) Object.LockTemplatesSettings = LockTemplatesSettings Установить свойство (* ) LockTemplatesSettings = Object.GetLockTemplatesSettings() Получить свойство(**) Object.SetLockTemplatesSettings( LockTemplatesSettings ) Установить свойство (**) ``` Синтаксис COM: ``` Object.get_LockTemplatesSettings( &LockTemplatesSettings ) Получить свойство Object.put_LockTemplatesSettings( LockTemplatesSettings ) Установить свойство Версия КОМПАС v22 ``` ## Open - Открыть документ Синтаксис Automation: ``` LPDISPATCH Open (LPCTSTR PathName, BOOL Visible, BOOL ReadOnly); ``` Синтаксис COM: ``` HRESULT Open([in] BSTR PathName, [in, defaultvalue(TRUE)] VARIANT_BOOL Visible, [in, defaultvalue(FALSE)] VARIANT_BOOL ReadOnly, [out, retval] IKompasDocument** Result); Входные параметры: PathName - полное имя файла документа, состоящее из пути, имени и расширения файла, Visible - видимость документа: TRUE создавать документ в видимом режиме, FALSE в невидимом, ReadOnly - TRUE - открыть документ только для чтения. Возвращаемое значение: указатель на интерфейс IKompasDocument - в случае успешного завершения, NULL - в случае неудачи. ``` Примечание: Открывает существующий документ и добавляет его в коллекцию. ## OpenDocument - Открыть документ с заданными параметрами открытия документа Синтаксис Automation: ``` LPDISPATCH OpenDocument( BSTR FileName, IOpenDocumentParam * Param ) ``` Синтаксис COM: ``` HRESULT OpenDocument( BSTR FileName, IOpenDocumentParam * Param, IKompasDocument ** Result ); Возвращаемое значение: Указатель на интерфейс документа IKompasDocument Входные параметры: FileName - имя файла документа Param - указатель на интерфейс параметров открытия документа IOpenDocumentParam ``` ## OpenEx - Открыть документ Синтаксис Automation: ``` LPDISPATCH OpenEx (LPCTSTR PathName, BOOL Visible, BOOL ReadOnly, VARIANT LoadCombinationIndex); ``` Синтаксис COM: ``` HRESULT OpenEx([in] BSTR PathName, [in, defaultvalue(TRUE)] VARIANT_BOOL Visible, [in, defaultvalue(FALSE)] VARIANT_BOOL ReadOnly, [in]VARIANT LoadCombinationIndex, [out, retval] IKompasDocument** Result); Входные параметры: PathName - полное имя файла документа, состоящее из пути, имени и расширения файла, Visible - видимость документа: TRUE создавать документ в видимом режиме, FALSE в невидимом, ReadOnly - TRUE - открыть документ только для чтения, LoadCombinationIndex - тип VARIANT - индекс загружаемого набора или имя набора. Возвращаемое значение: указатель на интерфейс IKompasDocument - в случае успешного завершения, NULL - в случае неудачи. ``` Примечание: 1. Открывает существующий документ и добавляет его в коллекцию. 2. Для сборки 3D можно задать индекс набора для загрузки. Для других типов документов индекс загружаемого набора игнорируется. ## RecoverError - Признак ошибки после открытия файла с восстановлением Тип данных: ksRecoverErrorEnum Синтаксис Automation: ``` RecoverError = Object.RecoverError Получить свойство (* ) Object.RecoverError = RecoverError Установить свойство (* ) RecoverError = Object.GetRecoverError() Получить свойство(**) Object.SetRecoverError( RecoverError ) Установить свойство (**) ``` Синтаксис COM: ``` Object.get_RecoverError( &RecoverError ) Получить свойство Object.put_RecoverError( RecoverError ) Установить свойство ``` ## RecoverMode - Признак открытия файлов в режиме восстановления Тип данных: BOOL Синтаксис Automation: ``` RecoverMode = Object.RecoverMode Получить свойство (* ) Object.RecoverMode = RecoverMode Установить свойство (* ) RecoverMode = Object.GetRecoverMode() Получить свойство(**) Object.SetRecoverMode( RecoverMode ) Установить свойство (**) ``` Синтаксис COM: ``` Object.get_RecoverMode( &RecoverMode ) Получить свойство Object.put_RecoverMode( RecoverMode ) Установить свойство ``` ## RecoverModeErrorList - Список ошибок, исправленных при открытии файла с восстановлением Тип данных: VARIANT Синтаксис Automation: ``` RecoverModeErrorList = Object.RecoverModeErrorList( ) Получить свойство(* ) RecoverModeErrorList = Object.GetRecoverModeErrorList() Получить свойство(**) ``` Синтаксис COM: ``` Object.get_RecoverModeErrorList( &RecoverModeErrorList ) Получить свойство ``` Примечание: Свойство доступно только для чтения. Список ошибок возвращается в виде массива VT_ARRAY | VT_I4.