Files
kompas3d-mcp/docs/Kompas3D_SDK/interfaces/ksattributeobject.md
T
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

671 lines
44 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "Интерфейс работы с атрибутами (ksAttributeObject)"
type: interface
api: [api7]
tags: [interface, api7, ksattributeobject]
sources:
- ksattributeobject.html
---
*API интерфейсов. Версия 5 > Интерфейсы работы с атрибутами *
## Интерфейс работы с атрибутами (ksAttributeObject)
Интерфейс для работы с атрибутами.
Примечание:
Указатель на интерфейс можно получить при помощи метода KompasObject::GetAttributeObject.
Смотрите также KompasObject
## ksAddAttrRow - Добавить строку к табличному атрибуту неопределенной длины
Аналог данного метода при использовании API экспортных функций - ksAddAttrRow.
Синтаксис Automation:
```
long ksAddAttrRow (reference pAttr,
long rowNumb,
LPDISPATCH flagVisible,
LPDISPATCH value,
BSTR password);
Входные параметры:
pAttr - указатель на атрибут,
rowNumb - номер строки,
flagVisible - указатель на интерфейс динамического массива типа LTVARIANT_ARR ksDynamicArray, указывающего флаги видимости ячеек строки,
value - указатель на интерфейс ksUserParam, откуда копируются данные,
password - пароль атрибута.
Возвращаемое значение:
1 - в случае удачного завершения.
Смотрите также ksLtVariant
Примечание.
1. Указатель на атрибут reference pAttr может быть получен следующими способами:
•с помощью интерфейса итератора ksIterator и методов ksIterator::ksCreateAttrIterator, ksIterator::ksMoveAttrIterator,
•с помощью методов создания атрибутов ksAttributeObject::ksCreateAttr или выбора атрибутов ksAttributeObject::ksChoiceAttr.
2. Перед использованием указатель flagVisible должен быть получен от интерфейса KompasObject с помощью метода KompasObject::GetParamStruct с параметром ko_LtVariant, методов интерфейса ksLtVariant, ksDynamicArray.
3. Перед использованием указатель value должен быть получен от интерфейса KompasObject с помощью метода KompasObject::GetParamStruct с параметром ko_UserParam с последующим наполнением массива с помощью методов интерфейса ksUserParam, ksLtVariant, ksDynamicArray.
```
## ksChoiceAttr - Вывести диалог для просмотра атрибутов объекта и выбора нужного атрибута
Аналог данного метода при использовании API экспортных функций - ChoiceAttr.
Синтаксис Automation:
```
long ksChoiceAttr (reference pObj);
Входной параметр:
pObj - указатель на объект, к которому подключены атрибуты.
Возвращаемое значение:
указатель на атрибут - в случае удачного завершения,
0 - в случае неудачи.
```
Примечание:
Указатель на объект reference pObj может быть получен следующими способами:
•с помощью свойства reference интерфейса соответствующего объекта,
•с помощью интерфейса итератора ksIterator и методов ksIterator::ksCreateIterator, ksIterator::ksMoveIterator.
## ksChoiceAttr3D - Просмотреть атрибуты объекта документа-модели
Аналог данного метода при использовании API экспортных функций - ksChoiceAttr3D.
Синтаксис Automation:
```
ksAttribute3D * ksChoiceAttr3D (LPDISPATCH pObj);
Входные параметры:
pObj - указатель на объект.
Возвращаемое значение:
Указатель на интерфейс атрибута ksAttribute3D - в случае удачного завершения,
0 - в случае неудачи.
```
## ksChoiceAttrTypes - Выбрать указанный пользователем в диалоге тип атрибута из библиотеки или документа
Аналог данного метода при использовании API экспортных функций - ChoiceAttrTypes.
Синтаксис Automation:
```
double ksChoiceAttrTypes (BSTR libName);
Входной параметр:
libName - имя библиотеки типов атрибутов, если libname = NULL, то тип атрибута берется из текущего документа.
Возвращаемое значение:
уникальный номер типа атрибута - в случае удачного завершения,
0 - в случае неудачи.
```
Примечание:
Диалог "привязан" к главному окну.
## ksCreateAttr - Создать атрибут по номеру типа атрибута
Аналог данного метода при использовании API экспортных функций - ksCreateAttr.
Синтаксис Automation:
```
long ksCreateAttr (reference pObj,
LPDISPATCH attr,
double attrID,
BSTR libName);
Входные параметры:
pObj - указатель на объект (группа, вид, отдельный объект), атрибут которого создается. Если pObj = 0, то создается атрибут документа,
attr - указатель на интерфейс параметров атрибута ksAttributeParam,
attrID - уникальный номер типа атрибута,
libName - имя библиотеки типов атрибутов, если libname = NULL, то тип атрибута берется из текущего документа.
Возвращаемое значение:
указатель на атрибут - в случае удачного завершения,
0 - в случае неудачи.
Примечание.
1. Указатель на объект reference pObj может быть получен следующими способами:
•с помощью свойства reference интерфейса соответствующего объекта,
•с помощью интерфейса итератора ksIterator и методов ksIterator::ksCreateAttrIterator, ksIterator::ksMoveAttrIterator,
2. Параметры атрибута должны быть заданы с помощью метода KompasObject::GetParamStruct с параметром ko_Attribute с последующим наполнением массива с помощью свойств и методов интерфейса ksAttributeParam.
3. Уникальный номер типа атрибута attrID может быть получен от интерфейса ksLibraryAttrTypeParam с помощью свойства ksLibraryAttrTypeParam::typeid. Тип атрибута должен быть предварительно создан, например, с помощью метода ksAttributeObject::ksCreateAttrType.
```
## ksCreateAttr3D - Cоздать атрибут по номеру типа атрибута из библиотеки
Аналог данного метода при использовании API экспортных функций - ksCreateAttr3D.
Синтаксис Automation:
```
ksAttribute3D* ksCreateAttr3D (LPDISPATCH pObj,
LPDISPATCH attr,
double attrID,
BSTR libname);
Входные параметры:
pObj - указатель на объект для которого создается атрибут,
attr - указатель на интерфейс параметров атрибута ksAttributeParam,
attrID - уникальный номер типа атрибута,
libname - имя библиотеки атрибутов если libname = NULL - тип атрибута берется в документе.
Возвращаемое значение:
Указатель на интерфейс атрибута ksAttribute3D - в случае удачного завершения,
0 - в случае неудачи.
```
Примечание:
1. Атрибут можно добавить ко всем объектам дерева построений, кроме компонентов, сопряжений, группы сопряжений.
2. Параметры атрибута должны быть заданы с помощью метода KompasObject::GetParamStruct с параметром ko_Attribute с последующим наполнением массива с помощью свойств и методов интерфейса ksAttributeParam.
3. Уникальный номер типа атрибута attrID может быть получен от интерфейса ksLibraryAttrTypeParam с помощью свойства ksLibraryAttrTypeParam::typeid. Тип атрибута должен быть предварительно создан, например, с помощью метода ksAttributeObject::ksCreateAttrType.
## ksCreateAttr3DEx - Cоздать атрибут по номеру типа атрибута из библиотеки libname
Аналог данного метода при использовании API экспортных функций - ksCreateAttr3DEx.
Синтаксис Automation:
```
ksAttribute3D * ksCreateAttr3DEx (LPDISPATCH pObj,
LPDISPATCH pSourcePart,
LPDISPATCH attr,
double attrID,
BSTR libname);
Входные параметры:
pObj - указатель на объект для которого создается атрибут,
sourcePart - указатель на интерфейс вставки детали IPart,
attr - указатель на структуру параметров атрибута ksAttribute,
attrID - уникальный номер типа атрибута,
libName - имя библиотеки типов атрибутов, если libname = NULL, то тип атрибута берется в документе.
Возвращаемое значение:
Указатель на атрибут IAttribute3D - в случае удачного завершения,
0 - в случае неудачи.
```
Примечание:
1. Если libname = NULL - тип атрибута берется в документе.
2. pObj - может быть равен:
•NULL или указателю на интерфейс 3d документа IDocument3D - создается атрибут у документа,
•указателю на интерфейс коллекции объектов дерева IFeatureCollection - атрибут групповой,
•указателю на интерфейс объекта дерева IFeature - атрибут у определенного объекта.
3. Атрибут можно добавить ко всем объектам дерева построений, кроме верхнего компонентов, сопряжений, группы сопряжений.
4. sourcePart - может быть:
•NULL - атрибут будет создан в текущем документе,
•указателю на интерфейс детали или подсборки вставленной в сборку IPart - атрибут будет создан в документе-источнике,
•если sourcePart == pObj создается атрибут документа в источнике.
## ksCreateAttrType - Создать тип атрибута в библиотеке
Аналог данного метода при использовании API экспортных функций - ksCreateAttrType.
Синтаксис Automation:
```
double ksCreateAttrType (LPDISPATCH attrType,
BSTR libName);
Входные параметры:
attrType - указатель на интерфейс параметров типа табличного атрибута ksAttributeTypeParam,
libName - имя библиотеки типов атрибутов, если libname = NULL, то тип атрибута создается в текущем документе.
Возвращаемое значение:
уникальный номер типа атрибута - в случае удачного завершения,
0 - в случае неудачи.
```
Примечание:
Параметры атрибута должны быть заданы с помощью метода KompasObject::GetParamStruct с параметром ko_AttributeType с последующим наполнением массива с помощью свойств и методов интерфейса ksAttributeTypeParam.
## ksDeleteAttr - Удалить атрибут
Аналог данного метода при использовании API экспортных функций - DeleteAttr.
Синтаксис Automation:
```
long ksDeleteAttr (reference pObj,
reference pAttr,
BSTR password);
Входные параметры:
pObj - указатель на объект, к которому подключен атрибут. Если pObj = 0 - атрибут текущего документа,
pAttr - указатель на удаляемый атрибут,
password - пароль атрибута.
Возвращаемое значение:
1 - в случае удачного завершения.
```
Примечание:
1. Указатель на объект reference pObj может быть получен следующими способами:
•с помощью свойства reference интерфейса соответствующего объекта,
•с помощью интерфейса итератора ksIterator и методов ksIterator::ksCreateIterator, ksIterator::ksMoveIterator.
2. Указатель на атрибут reference pAttr может быть получен следующими способами:
•с помощью интерфейса итератора ksIterator и методов ksIterator::ksCreateAttrIterator, ksIterator::ksMoveAttrIterator,
•с помощью методов создания атрибутов ksAttributeObject::ksCreateAttr или выбора атрибутов ksAttributeObject::ksChoiceAttr.
## ksDeleteAttr3D - Удалить атрибут объекта 3D документа
Аналог данного метода при использовании API экспортных функций - ksDeleteAttr3D.
Синтаксис Automation:
```
long ksDeleteAttr3D (LPDISPATCH pObj, ksAttribute3D *pAttr, BSTR password);
Входные параметры:
pObj - указатель на объект, у которого удаляется атрибут,
pAttr - указатель на атрибут,
password - пароль.
Возвращаемое значение:
1 - в случае удачного завершения,
0 - в случае неудачи.
```
## ksDeleteAttrRow - Удалить строку табличного атрибута неопределенной длины
Аналог данного метода при использовании API экспортных функций - ksDeleteAttrRow.
Синтаксис Automation:
```
long ksDeleteAttrRow (reference pAttr,
long rowNumb,
BSTR password);
Входные параметры:
pAttr - указатель на атрибут,
rowNumb - номер строки,
password - пароль атрибута.
Возвращаемое значение:
1 - в случае удачного завершения.
```
Примечание:
Указатель на атрибут reference pAttr может быть получен следующими способами:
•с помощью интерфейса итератора ksIterator и методов ksIterator::ksCreateAttrIterator, ksIterator::ksMoveAttrIterator,
•с помощью методов создания атрибутов ksAttributeObject::ksCreateAttr или выбора атрибутов ksAttributeObject::ksChoiceAttr.
## ksDeleteAttrType - Удалить тип атрибута из библиотеки
Аналог данного метода при использовании API экспортных функций - DeleteAttrType.
Синтаксис Automation:
```
long ksDeleteAttrType (double attrID,
BSTR libName,
BSTR password);
Входные параметры:
attrID - уникальный номер типа,
libName - имя библиотеки типов атрибутов, если libname = NULL, то тип атрибута удаляется из текущего документа,
password - пароль типа атрибута.
Возвращаемое значение:
1 - в случае удачного завершения,
0 - в случае неудачи.
```
Примечание:
Уникальный номер типа атрибута attrID может быть получен от интерфейса ksLibraryAttrTypeParam с помощью свойства ksLibraryAttrTypeParam::typeid или с помощью метода ksAttributeObject::ksGetAttrKeysInfo.
## ksGetAttrColumnInfo - Получить информацию о столбце атрибута
Аналог данного метода при использовании API экспортных функций - GetAttrColumnInfo.
Синтаксис Automation:
```
long ksGetAttrColumnInfo (reference pAttr,
long columnNumb,
LPDISPATCH columnInfo);
Входные параметры:
pAttr - указатель на атрибут,
columnNumb - номер колонки.
Выходной параметр:
columnInfo - указатель на интерфейс параметров столбца табличного атрибута ksColumnInfoParam.
Возвращаемое значение:
1 - в случае удачного завершения,
0 - в случае неудачи.
```
Примечание:
Указатель на атрибут reference pAttr может быть получен следующими способами:
•с помощью интерфейса итератора ksIterator и методов ksIterator::ksCreateAttrIterator, ksIterator::ksMoveAttrIterator,
•с помощью методов создания атрибутов ksAttributeObject::ksCreateAttr или выбора атрибутов ksAttributeObject::ksChoiceAttr.
## ksGetAttrKeysInfo - Получить информацию о ключах атрибута
Аналог данного метода при использовании API экспортных функций - GetAttrKeysInfo.
Синтаксис Automation:
```
long ksGetAttrKeysInfo (reference pAttr,
long* key1,
long* key2,
long* key3,
long* key4,
double* attrID);
Входной параметр:
pAttr - указатель на атрибут.
Выходные параметры:
key1, key2, key3, key4 - ключи атрибута,
attrID - уникальный номер типа атрибута.
Возвращаемое значение:
1 - в случае удачного завершения,
0 - в случае неудачи.
```
Примечание:
Указатель на атрибут reference pAttr может быть получен следующими способами:
•с помощью интерфейса итератора ksIterator и методов ksIterator::ksCreateAttrIterator, ksIterator::ksMoveAttrIterator,
•с помощью методов создания атрибутов ksAttributeObject::ksCreateAttr или выбора атрибутов ksAttributeObject::ksChoiceAttr.
## ksGetAttrRow - Получить строку атрибута
Аналог данного метода при использовании API экспортных функций - ksGetAttrRow.
Синтаксис Automation:
```
long ksGetAttrRow (reference pAttr,
long rowNumb,
LPDISPATCH flagVisible,
LPDISPATCH columnKeys,
LPDISPATCH value);
Входные параметры:
pAttr - указатель на атрибут,
rowNumb - номер строки.
Выходной параметр:
value - указатель на интерфейс ksUserParam, куда копируются данные.
flagVisible - указатель на интерфейс динамического массива типа LTVARIANT_ARR ksDynamicArray, указывающего флаги видимости ячеек строки,
columnKeys - указатель на интерфейс динамического массива типа LTVARIANT_ARR ksDynamicArray, указывающего ключи строки.
Возвращаемое значение:
1 - в случае удачного завершения.
Смотрите также:ksLtVariant
```
Примечание:
1. Указатель на атрибут reference pAttr может быть получен следующими способами:
•с помощью интерфейса итератора ksIterator и методов ksIterator::ksCreateAttrIterator, ksIterator::ksMoveAttrIterator,
•с помощью методов создания атрибутов ksAttributeObject::ksCreateAttr или выбора атрибутов ksAttributeObject::ksChoiceAttr.
2. Перед использованием указатель flagVisible должен быть получен от интерфейса KompasObject с помощью метода KompasObject::GetParamStruct с параметром ko_LtVariant.
3. Перед использованием указатель value должен быть получен от интерфейса KompasObject с помощью метода KompasObject::GetParamStruct с параметром ko_UserParam.
4. Для получения размера данных строки атрибута может быть использован метод ksAttributeObject::ksGetSizeAttrRow.
## ksGetAttrTabInfo - Получить информацию о количестве строк и столбцов атрибута
Аналог данного метода при использовании API экспортных функций - GetAttrTabInfo.
Синтаксис Automation:
```
long ksGetAttrTabInfo (long pAttr,
long* rowsCount,
long* columnsCount);
Входной параметр:
pAttr - указатель на атрибут.
Выходные параметры:
rowsCount - количество строк атрибута,
columnsCount - количество столбцов атрибута.
Возвращаемое значение:
1 - в случае удачного завершения,
0 - в случае неудачи.
```
Примечание:
Указатель на атрибут reference pAttr может быть получен следующими способами:
•с помощью интерфейса итератора ksIterator и методов ksIterator::ksCreateAttrIterator, ksIterator::ksMoveAttrIterator,
•с помощью методов создания атрибутов ksAttributeObject::ksCreateAttr или выбора атрибутов ksAttributeObject::ksChoiceAttr.
## ksGetAttrType - Получить описание типа табличного атрибута из библиотеки или текущего документа
Аналог данного метода при использовании API экспортных функций - ksGetAttrType.
Синтаксис Automation:
```
long ksGetAttrType (double attrID,
BSTR libName,
LPDISPATCH attrType);
Входной параметр:
attrID - уникальный номер типа атрибута,
libName - имя библиотеки типов атрибутов, если libname = NULL, то тип атрибута из текущего документа.
Выходной параметр:
attrType - указатель на интерфейс параметров типа табличного атрибута ksAttributeTypeParam.
Возвращаемое значение:
1 - в случае удачного завершения,
0 - в случае неудачи.
```
Примечание:
1. Уникальный номер типа атрибута attrID может быть получен от интерфейса ksLibraryAttrTypeParam с помощью свойства ksLibraryAttrTypeParam::typeid или с помощью метода ksAttributeObject::ksGetAttrKeysInfo. Тип атрибута должен быть предварительно создан, например, с помощью метода ksAttributeObject::ksCreateAttrType.
2. Перед использованием указатель attrType должен быть получен с помощью метода KompasObject::GetParamStruct с параметром ko_AttributeType.
## ksGetAttrValue - Получить значение ячейки из таблицы атрибута
Аналог данного метода при использовании API экспортных функций - ksGetAttrValue.
Синтаксис Automation:
```
long ksGetAttrValue (reference pAttr,
long rowNumb,
long columnNumb,
LPDISPATCH flagVisible,
LPDISPATCH columnKeys,
LPDISPATCH value);
Входные параметры:
pAttr - указатель на атрибут,
rowNumb - номер строки,
columnNumb - номер колонки.
Выходной параметр:
value - указатель на интерфейс ksUserParam, куда копируется значение ячейки,
flagVisible - указатель на интерфейс динамического массива типа LTVARIANT_ARR ksDynamicArray, указывающего флаги видимости ячеек,
columnKeys - указатель на интерфейс динамического массива типа LTVARIANT_ARR ksDynamicArray, указывающего ключи полей колонки.
Возвращаемое значение:
1 - в случае удачного завершения,
0 - в случае неудачи.
Смотрите также:ksLtVariant
```
Примечание
1. Для нетабличного атрибута номер колонки равен нулю.
2. Указатель на атрибут reference pAttr может быть получен следующими способами:
•с помощью интерфейса итератора ksIterator и методов ksIterator::ksCreateAttrIterator, ksIterator::ksMoveAttrIterator,
•с помощью методов создания атрибутов ksAttributeObject::ksCreateAttr или выбора атрибутов ksAttributeObject::ksChoiceAttr.
3. Перед использованием указатель flagVisible должен быть получен от интерфейса KompasObject с помощью метода KompasObject::GetParamStruct с параметром ko_LtVariant.
4. Перед использованием указатель value должен быть получен от интерфейса KompasObject с помощью метода KompasObject::GetParamStruct с параметром ko_UserParam.
5. Для получения размера данных ячейки атрибута может быть использован метод ksAttributeObject::ksGetSizeAttrValue.
## ksGetLibraryAttrTypesArray - Получить указатель на динамический массив типов атрибутов типа LIBRARY_ATTR_TYPE_ARR, находящихся в заданной библиотеке типов - ksDynamicArray
Аналог данного метода при использовании API экспортных функций - ksGetLibraryAttrTypesArray.
Синтаксис Automation:
```
LPDISPATCH ksGetLibraryAttrTypesArray (BSTR libName);
Входной параметр:
libName - имя библиотеки типов атрибутов. Если libname = NULL, то типы атрибутов из текущего документа.
Возвращаемое значение:
указатель на интерфейс массива ksDynamicArray типа LIBRARY_ATTR_TYPE_ARR - в случае удачного завершения,
0 - в случае неудачи.
```
## ksGetSizeAttrRow - Получить размер данных строки атрибутов
Аналог данного метода при использовании API экспортных функций - ksGetSizeAttrRow.
Синтаксис Automation:
```
long ksGetSizeAttrRow (reference pAttr,
long* count);
Входной параметр:
pAttr - указатель на атрибут.
Выходной параметр:
count - число ячеек с учетом записей.
Возвращаемое значение:
длина строки атрибута - в случае удачного завершения,
0 - в случае неудачи.
```
Примечание:
1. Указатель на атрибут reference pAttr может быть получен следующими способами:
•с помощью интерфейса итератора ksIterator и методов ksIterator::ksCreateAttrIterator, ksIterator::ksMoveAttrIterator,
•с помощью методов создания атрибутов ksAttributeObject::ksCreateAttr или выбора атрибутов ksAttributeObject::ksChoiceAttr.
2. При использовании данного метода, не использующего Unicode, размер данных строкового типа будет рассчитываться для unicode строк, как для ANSI строк.
## ksGetSizeAttrRowW - Получить размер данных строки атрибутов (Unicode)
Аналог данного метода при использовании API экспортных функций - ksGetSizeAttrRowW.
Синтаксис Automation:
```
long ksGetSizeAttrRowW (reference pAttr,
long* count);
Входной параметр:
pAttr - указатель на атрибут.
Выходной параметр:
count - число ячеек с учетом записей.
Возвращаемое значение:
длина строки атрибута - в случае удачного завершения,
0 - в случае неудачи.
```
Примечание:
1. Указатель на атрибут reference pAttr может быть получен следующими способами:
•с помощью интерфейса итератора ksIterator и методов ksIterator::ksCreateAttrIterator, ksIterator::ksMoveAttrIterator,
•с помощью методов создания атрибутов ksAttributeObject::ksCreateAttr или выбора атрибутов ksAttributeObject::ksChoiceAttr.
2. При использовании метода ksAttributeObject::ksGetSizeAttrRow, не использующего Unicode, размер данных строкового типа будет расcчитываться для unicode строк, как для ANSI строк.
## ksGetSizeAttrValue - Получить размер данных ячейки
Аналог данного метода при использовании API экспортных функций - ksGetSizeAttrValue
Синтаксис Automation:
```
long ksGetSizeAttrValue (reference pAttr,
long columnNumb,
long* count);
Входные параметры:
pAttr - указатель на атрибут,
columnNumb - номер колонки.
Выходной параметр:
count - число ячеек с учетом записей.
Возвращаемое значение:
длина строки ячейки атрибута - в случае удачного завершения,
0 - в случае неудачи.
```
Примечание:
1. Указатель на атрибут reference pAttr может быть получен следующими способами:
•с помощью интерфейса итератора ksIterator и методов ksIterator::ksCreateAttrIterator, ksIterator::ksMoveAttrIterator,
•с помощью методов создания атрибутов ksAttributeObject::ksCreateAttr или выбора атрибутов ksAttributeObject::ksChoiceAttr.
2. При использовании данного метода, не использующего Unicode, размер данных строкового типа будет расcчитываться для unicode строк, как для ANSI строк.
## ksGetSizeAttrValueW - Получить размер данных ячейки (Unicode)
Аналог данного метода при использовании API экспортных функций - ksGetSizeAttrValueW
Синтаксис Automation:
```
long ksGetSizeAttrValueW (reference pAttr,
long columnNumb,
long* count);
Входные параметры:
pAttr - указатель на атрибут,
columnNumb - номер колонки.
Выходной параметр:
Count - число ячеек с учетом записей.
Возвращаемое значение:
длина строки ячейки атрибута - в случае удачного завершения,
0 - в случае неудачи.
```
Примечание:
1. Указатель на атрибут reference pAttr может быть получен следующими способами:
•с помощью интерфейса итератора ksIterator и методов ksIterator::ksCreateAttrIterator, ksIterator::ksMoveAttrIterator,
•с помощью методов создания атрибутов ksAttributeObject::ksCreateAttr или выбора атрибутов ksAttributeObject::ksChoiceAttr.
2. При использовании метода ksAttributeObject::ksGetSizeAttrValue, не использующего Unicode, размер данных строкового типа будет расcчитываться для unicode строк, как для ANSI строк.
## ksSetAttrRow - Установить данные строки в таблице атрибута
Аналог данного метода при использовании API экспортных функций - ksSetAttrRow.
Синтаксис Automation:
```
long ksSetAttrRow (reference pAttr,
long rowNumb,
LPDISPATCH flagVisible,
LPDISPATCH сolumnKeys,
LPDISPATCH value,
BSTR password);
Входные параметры:
pAttr - указатель на атрибут,
rowNumb - номер строки,
flagVisible - указатель на интерфейс динамического массива типа LTVARIANT_ARR ksDynamicArray, указывающего флаги видимости ячеек строки,
columnKeys - указатель на интерфейс динамического массива типа LTVARIANT_ARR ksDynamicArray, указывающего ключи строки,
value - указатель на интерфейс ksUserParam, откуда копируются данные,
password - пароль атрибута.
Возвращаемое значение:
1 - в случае удачного завершения.
Смотрите также:ksLtVariant
```
Примечание:
1. Указатель на атрибут reference pAttr может быть получен следующими способами:
•с помощью интерфейса итератора ksIterator и методов ksIterator::ksCreateAttrIterator, ksIterator::ksMoveAttrIterator,
•с помощью методов создания атрибутов ksAttributeObject::ksCreateAttr или выбора атрибутов ksAttributeObject::ksChoiceAttr.
2. Указатель flagVisible может быть получен от интерфейса KompasObject с помощью метода KompasObject::GetParamStruct с параметром ko_LtVariant, методов интерфейса ksLtVariant, ksDynamicArray.
3. Указатель value может быть получен от интерфейса KompasObject с помощью метода ompasObject::GetParamStruct с параметром ko_UserParam с последующим наполнением массива с помощью методов интерфейса ksUserParam, ksLtVariant, ksDynamicArray.
## ksSetAttrType - Изменить тип атрибута в библиотеке или текущем документе
Аналог данного метода при использовании API экспортных функций - ksSetAttrType.
Синтаксис Automation:
```
double ksSetAttrType (double attrID,
BSTR libName,
LPDISPATCH attrType,
BSTR password);
Входные параметры:
attrID - уникальный номер типа атрибута,
libName - имя библиотеки типов атрибутов, если libname = NULL, то тип атрибута изменяется в текущем документе,
attrType - указатель на интерфейс параметров типа табличного атрибута ksAttributeTypeParam,
password - пароль типа атрибута.
Возвращаемое значение:
уникальный номер типа атрибута - в случае удачного завершения,
0 - в случае неудачи.
```
Примечание:
1. Уникальный номер типа атрибута attrID может быть получен от интерфейса ksLibraryAttrTypeParam с помощью свойства ksLibraryAttrTypeParam::typeid или с помощью метода ksAttributeObject::ksGetAttrKeysInfo. Тип атрибута типа должен быть предварительно создан, например, с помощью метода ksAttributeObject::ksCreateAttrType.
2. Перед использованием указатель attrType должен быть получен с помощью метода KompasObject::GetParamStruct с параметром ko_AttributeType с последующим наполнением параметрами с помощью свойств и методов интерфейса ksAttributeTypeParam.
## ksSetAttrValue - Установить значение ячейки в таблице атрибута
Аналог данного метода при использовании API экспортных функций - ksSetAttrValue.
Синтаксис Automation:
```
long ksSetAttrValue (reference pAttr,
long rowNumb,
long columnNumb,
LPDISPATCH
flagVisible,
LPDISPATCH columnKeys,
LPDISPATCH value,
BSTR password);
Входные параметры:
pAttr - указатель на атрибут,
rowNumb - номер строки,
columnNumb - номер колонки,
flagVisible - указатель на интерфейс динамического массива типа LTVARIANT_ARR ksDynamicArray, указывающего флаги видимости ячеек,
columnKeys - указатель на интерфейс динамического массива типа LTVARIANT_ARR ksDynamicArray, указывающего ключи полей колонки,
value - указатель на интерфейс ksUserParam, откуда копируется значение ячейки,
password - пароль атрибута.
Возвращаемое значение:
1 - в случае удачного завершения.
Смотрите также:ksLtVariant
```
Примечание:
1. Для нетабличного атрибута номер колонки равен нулю.
2. Указатель на атрибут reference pAttr может быть получен следующими способами:
•с помощью интерфейса итератора ksIterator и методов ksIterator::ksCreateAttrIterator, ksIterator::ksMoveAttrIterator,
•с помощью методов создания атрибутов ksAttributeObject::ksCreateAttr или выбора атрибутов ksAttributeObject::ksChoiceAttr.
3. Перед использованием указатель flagVisible должен быть получен от интерфейса KompasObject с помощью метода KompasObject::GetParamStruct с параметром ko_LtVariant, методов интерфейса ksLtVariant, интерфейса ksDynamicArray, метода ksDynamicArray::ksSetArrayItem, ksDynamicArray::ksAddArrayItem.
4. Перед использованием указатель value должен быть получен от интерфейса KompasObject с помощью метода KompasObject::GetParamStruct с параметром ko_UserParam с последующим наполнением массива с помощью методов интерфейса ksUserParam, ksLtVariant, ksDynamicArray.
## ksViewEditAttr - Вывести диалог для просмотра или редактирования атрибута
Аналог данного метода при использовании API экспортных функций - ViewEditAttr.
Синтаксис Automation:
```
long ksViewEditAttr (reference pAttr,
long type,
BSTR password);
Входные параметры:
pAttr - указатель на атрибут,
type - режим работы: - 1 - режим просмотра, 2 - режим редактирования
password - пароль типа атрибута.
Возвращаемое значение:
1 - в случае удачного завершения.
```
Примечание:
1. Диалог "привязан" к главному окну.
2. Указатель на атрибут reference pAttr может быть получен следующими способами:
•с помощью интерфейса итератора ksIterator и методов ksIterator::ksCreateAttrIterator, ksIterator::ksMoveAttrIterator,
•с помощью методов создания атрибутов ksAttributeObject::ksCreateAttr или выбора атрибутов ksAttributeObject::ksChoiceAttr.
## ksViewEditAttrType - Вывести диалог для просмотра или редактирования типа атрибута
Аналог данного метода при использовании API экспортных функций - ViewEditAttrType.
Синтаксис Automation:
```
long ksViewEditAttrType (BSTR libName,
long type,
double attrID,
BSTR password);
Входные параметры:
libName - имя библиотеки типов атрибутов. Если libname = NULL, типы атрибутов берутся из текущего документа,
type - режим работы: 1 - режим просмотра, 2 - режим редактирования,
attrId - уникальный номер типа атрибута,
password - пароль типа атрибута.
Возвращаемое значение:
1 - в случае удачного завершения.
```
Примечание:
Уникальный номер типа атрибута attrID может быть получен от интерфейса ksLibraryAttrTypeParam с помощью свойства ksLibraryAttrTypeParam::typeid или от интерфейса ksAttributeObject с помощью метода ksAttributeObject::ksGetAttrKeysInfo. Тип атрибута должен быть предварительно создан, например, с помощью метода ksAttributeObject::ksCreateAttrType.