---
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.
