Files
mikhail e1337e4016 feat(sdk-docs): MD-база знаний SDK — в репозиторий; генератор и зеркало убраны
docs/Kompas3D_SDK/ становится каноническим источником справки КОМПАС SDK
и включается в репозиторий (2491 файл, ~14 МБ). HTML-зеркало
docs/KOMPAS_SDK_ru-RU/ (~1.4 ГБ, © АСКОН) и генератор
tools/build_kompas3d_sdk.py больше не нужны — регенерация не предполагается.

- .gitignore: MD-база разблокирована; зеркало остаётся проигнорированным
  (safety-net на случай повторной локальной выгрузки).
- CLAUDE.md / SKILL.md: убраны упоминания регенерации и зеркала.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-26 20:00:05 +03:00

11 KiB
Raw Permalink Blame History

title, type, api, tags, sources
title type api tags sources
Интерфейс IUserDataStorage interface
api7
interface
api7
iuserdatastorage
iuserdatastorage.html

*API интерфейсов. Версия 7 > Документ  > Хранилища *

Интерфейс IUserDataStorage

Интерфейс пользовательского хранилища. Иерархия: IKompasAPIObject IUserDataStorage Описание: Хранилище представляет собой именованную «закладку» в коллекции. Для хранилища могут задаваться версии. Хранилище может быть защищено от изменений паролем. Парольная защита не препятствует просмотру содержания хранилища. Данные в хранилище представлены в виде таблицы, состоящей из двух столбцов – данных различных типов и комментария. Примечание: Интерфейс можно получить у коллекции хранилищ, используя свойство IUserDataStorages::Item. Интерфейс IUserDataStorages Интерфейс IUserDataStoragesMng

AddObject - Добавить объект и комментарий в пользовательское хранилище

Синтаксис Automation:

long AddObject( LPCTSTR pass,
const VARIANT & object,
LPCTSTR comment );

Синтаксис COM:

HRESULT AddObject( [in] BSTR Pass,
[in] VARIANT Object,
[in] BSTR Comment,
[out, retval] long* pVal);
Входные параметры:
Pass    - пароль,
Object    - указатель на объект,
comment    - комментарий.
Возвращаемое значение:
- индекс объекта,

Примечание:

  1. Объект может быть variant'ом с типом VT_INT, VT_I2, VT_I4, VT_R4, VT_R8, VT_DATE, VT_UI1, VT_UINT, VT_BOOL, VT_BSTR, VT_DISPATCH, а также VT_ARRAY с этими типами данных. Индекс массива начинается с нуля.
  2. Если задан интерфейс VT_DISPATCH и массив объектов VT_ARRAY | VT_DISPATCH, то под объектом подразумевается указатель на IDispatch от объектов API. Они также будут сохранены вместе с документом и при следующем запросе найдены.
  3. Индексация массивов должна начинаться с нуля.
  4. Если хранилище защищено паролем от изменений, то метод будет выполнен только после указания правильного пароля.
  5. Под объектом API следует понимать объекты: для 3D хранилища - наследник от IModelObject, для 2D хранилища - наследник от IDrawingObject (кроме ILayer).

AddObjects - Добавить объекты пользовательского хранилища и комментарии к ним

Синтаксис Automation:

BOOL AddObjects( BSTR Pass, VARIANT Objects, VARIANT Comments );

Синтаксис COM:

HRESULT AddObjects( BSTR Pass, VARIANT Objects, VARIANT Comments, BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успеха,
FALSE    - в случае неудачи.
Входные параметры:
Pass    - пароль,
Objects    - список данных в виде массива VT_ARRAY    VT_VARIANT,
comments    - список комментариев в виде массива VT_ARRAY    VT_BSTR.
Версия Компас v21

Clear - Очистить хранилище, удалив все объекты

Синтаксис Automation:

BOOL Clear ( LPCTSTR Pass );

Синтаксис COM:

HRESULT Clear( [in] BSTR Pass,
[out, retval] VARIANT_BOOL* Result);
Входные параметры:
Pass    - пароль.
Возвращаемое значение:
TRUE    - в случае успеха,
FALSE    - в случае неудачи.

Примечание: Если хранилище защищено паролем от изменений, то метод будет выполнен только после указания правильного пароля.

Delete - Удалить объект, заданный по индексу или по комментарию

Синтаксис Automation:

BOOL Delete( LPCTSTR pass,
const VARIANT & index );

Синтаксис COM:

HRESULT Delete( [in] BSTR Pass,
[in] VARIANT Index,
[out, retval] VARIANT_BOOL* PVal );
Входные параметры:
Pass    - пароль,
Index    - индекс объекта или комментарий.
Возвращаемое значение:
TRUE    - в случае успеха,
FALSE    - в случае неудачи.

Примечание:

  1. В качестве индекса можно задать число или комментарий к объекту.
  2. Если хранилище защищено паролем от изменений, то метод будет выполнен только после указания правильного пароля.

GetObject - Получить объект пользовательского хранилища и комментарий к нему по комментарию или индексу

Синтаксис Automation:

BSTR GetObject( const VARIANT & index, VARIANT * object, long * numb );

Синтаксис COM:

HRESULT GetObject( [in] VARIANT Index,
[out] VARIANT * Object,
[out] long* numb,
[out, retval] BSTR * Comment );
Входные параметры:
Index    - индекс объекта или комментарий.
Выходные параметры:
Object    - указатель на объект хранилища,
numb    - указатель на номер объекта.
Возвращаемое значение:
Comment (BSTR)    - комментарий.

Примечание:

  1. В качестве индекса можно задать число или комментарий к объекту.
  2. Объект может быть variant'ом с типом VT_INT, VT_I2, VT_I4, VT_R4, VT_R8, VT_DATE, VT_UI1, VT_UINT, VT_BOOL, VT_BSTR, VT_DISPATCH, а также VT_ARRAY с этими типами данных.
  3. Если задан интерфейс VT_DISPATCH и массив объектов VT_ARRAY | VT_DISPATCH, то под объектом подразумевается указатель на IDispatch от объектов API. Они также будут сохранены вместе с документом и при следующем запросе найдены.

Name - Имя хранилища

Синтаксис Automation:

Тип данных: LPSTR
Name = StorageObj.Name(Pass)    Получить свойство (* )
StorageObj.Name(Pass) = Name    Установить свойство (* )
Name = StorageObj.GetName(Pass)    Получить свойство (**)
StorageObj.SetName (Name, Pass)    Установить свойство (**)
Входные параметры:
Pass (LPSTR)    - пароль хранилища.

Синтаксис COM:

Тип данных:BSTR.
StorageObj>get_Name (Pass, &Name)    Получить свойство
StorageObj>put_Name (Pass, Name)    Установить свойство
Входные параметры:
Pass (BSTR)    - пароль хранилища.

Примечание: Если хранилище защищено паролем, то изменить свойство можно, только указав правильный пароль.

SetObject - Установить объект пользовательского хранилища и комментарий к нему по комментарию или индексу

Синтаксис Automation:

long SetObject( LPCTSTR pass,
const VARIANT index,
const VARIANT & object,
LPCTSTR comment );

Синтаксис COM:

HRESULT SetObject( [in] BSTR Pass,
[in] VARIANT Index,
[in] VARIANT Object,
[in] BSTR Comment,
[out, retval] long* pVal);
Входные параметры:
Pass    - пароль,
Index    - индекс объекта или комментарий,
Object    - указатель на объект,
comment    - комментарий.
Возвращаемое значение:
TRUE    - в случае успеха,
FALSE    - в случае неудачи.

Примечание:

  1. В качестве индекса можно задать число или комментарий к объекту.
  2. Объект может быть variant'ом с типом VT_INT, VT_I2, VT_I4, VT_R4, VT_R8, VT_DATE, VT_UI1, VT_UINT, VT_BOOL, VT_BSTR, VT_DISPATCH, а также VT_ARRAY с этими типами данных.
  3. Если задан интерфейс VT_DISPATCH и массив объектов VT_ARRAY | VT_DISPATCH, то под объектом подразумевается указатель на IDispatch от объектов API. Они также будут сохранены вместе с документом и при следующем запросе найдены.
  4. Если хранилище защищено паролем от изменений, то метод будет выполнен только после указания правильного пароля.

SetPassword - Установить пароль на изменение данных в хранилище

Синтаксис Automation:

BOOL SetPassword( LPCTSTR oldPass, LPCTSTR newPass );

Синтаксис COM:

HRESULT SetPassword( [in] BSTR OldPass,
[in] BSTR NewPass,
[out, retval] VARIANT_BOOL* Result);
Входные параметры:
OldPass    - старый пароль,
NewPass    - новый пароль.

Примечание:

  1. Если хранилище защищено паролем от изменений, то изменить пароль можно, только указав текущий пароль.
  2. По умолчанию пароль представляет собой пустую строку или нулевой указатель.

Version - Версия хранилища

Синтаксис Automation:

Тип данных: long
Version = StorageObj.Version(Pass)    Получить свойство (* )
StorageObj.Version(Pass) = Version    Установить свойство (* )
Version = StorageObj.GetVersion(Pass)    Получить свойство (**)
StorageObj.SetVersion (Version, Pass)    Установить свойство (**)
Входные параметры:
Pass (LPSTR)    - пароль хранилища.

Синтаксис COM:

Тип данных: long
StorageObj->get_Version (Pass, &Version)    Получить свойство
StorageObj->put_Version (Pass, Version)    Установить свойство
Входные параметры:
Pass (BSTR)    - пароль хранилища.

Примечание: Если хранилище защищено паролем, то изменить свойство можно, только указав пароль.