---
title: "Массив переменных (Интерфейсы ksVariableCollection, IVariableCollection)"
type: interface
api: [api7]
domain: [assembly, feature]
tags: [interface, api7, assembly, feature, ksvariablecollection]
sources:
  - ksvariablecollection.html
---

*API интерфейсов. Версия 5 > Документ-модель (Интерфейсы - ksDocument3D, IDocument3D )  > Компонент сборки (деталь или подсборка). Интерфейсы ksPart и IPart  > Объект Дерева построения (Интерфейсы ksFeature, IFeature) *


## Массив переменных (Интерфейсы ksVariableCollection, IVariableCollection)

Интерфейс динамического массива внешних переменных.
| ksVariableCollection | - интерфейс Automation |
| --- | --- |
| IVariableCollection | - интерфейс COM |
Примечание:
Данный интерфейс может быть получен с использованием методов интерфейсов ksFeature::VariableCollectionEx, ksFeature::VariableCollection, ksPart::VariableCollection.
Внешняя переменная (Интерфейсы ksVariable, IVariable)


## AddNewVariable - Добавить новую переменную

Интерфейс..
Синтаксис Automation:
```
LPDISPATCH AddNewVariable( BSTR name, double value, BSTR note );
```
Синтаксис COM:
```
LPVARIABLE AddNewVariable( LPOLESTR name, double value, LPOLESTR note );
Входные параметры:
name    - имя переменной,
value    - значение переменной,
Note    - комментарий к переменной.
Возвращаемое значение:
- указатель на интерфейс внешней переменной модели ksVariable или IVariable.
```
Примечание:
Переменную можно добавлять только для ksFeature и IFeature.


## First - Получить указатель на интерфейс первого элемента массива

Интерфейс..
Синтаксис Automation:
```
LPDISPATCH First();
```
Синтаксис COM:
```
LPVARIABLE First();
Возвращаемое значение:
- указатель на интерфейс внешней переменной модели ksVariable или IVariable.
```


## GetByIndex - Получить указатель на интерфейс элемента массива по индексу

Интерфейс..
Синтаксис Automation:
```
LPDISPATCH GetByIndex (long index);
```
Синтаксис COM:
```
LPVARIABLE GetByIndex (long index);
Входной параметр:
index    - индекс элемента в массиве.
Возвращаемое значение:
- указатель на интерфейс внешней переменной модели ksVariable или IVariable.
```


## GetByName - Получить указатель на интерфейс элемента массива по имени

Интерфейс..
Синтаксис Automation:
```
LPDISPATCH GetByName (BSTR name,
BOOL testFullName,
BOOL testIgnoreCase);
```
Синтаксис COM:
```
LPVARIABLE GetByName (LPOLESTR name,
BOOL testFullName,
BOOL testIgnoreCase);
Входные параметры:
name    - имя объекта,
testFullName    - признак полного имени: TRUE - name - полное имя, FALSE - имя name может быть частью полного имени,
testIgnoreCase    - признак игнорирования регистра символов имени: TRUE - игнорировать регистр, FALSE - учитывать регистр.
Возвращаемое значение:
- указатель на интерфейс внешней переменной модели ksVariable или IVariable.
```


## GetCount - Получить количество элементов массива

Интерфейс..
Синтаксис Automation:
```
long GetCount();
```
Синтаксис COM:
```
long GetCount();
Возвращаемое значение:
- количество элементов массива.
```


## Last - Получить указатель на интерфейс последнего элемента массива

Интерфейс..
Синтаксис Automation:
```
LPDISPATCH Last();
```
Синтаксис COM:
```
LPVARIABLE Last();
Возвращаемое значение:
- указатель на интерфейс внешней переменной модели ksVariable или IVariable.
```


## Next - Получить указатель на интерфейс следующего элемента массива

Интерфейс..
Синтаксис Automation:
```
LPDISPATCH Next();
```
Синтаксис COM:
```
LPVARIABLE Next();
Возвращаемое значение:
- указатель на интерфейс внешней переменной модели ksVariable или IVariable.
```


## Prev - Получить указатель на интерфейс предыдущего элемента массива

Интерфейс..
Синтаксис Automation:
```
LPDISPATCH Prev();
```
Синтаксис COM:
```
LPVARIABLE Prev();
Возвращаемое значение:
- указатель на интерфейс внешней переменной модели ksVariable или IVariable.
```


## Refresh - Обновить массив внешних переменных

Интерфейс..
Синтаксис Automation:
```
BOOL Refresh();
```
Синтаксис COM:
```
BOOL Refresh();
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```
Примечание:
После вызова данной функции удаляются все изменения в массиве внешних переменных компонента, которые не были закреплены вызовом функции RebuildModel. Таким образом, возникает полное соответствие массива внешних переменных в памяти с массивом внешних переменных компонента.
Вызов данной функции эквивалентен отказу пользователя от перестроения модели после изменения значений внешних переменных (модель не перестраивается, а измененные значения переменных "забываются", переменные принимают прежние значения).


## RemoveVariable - Удалить переменную

Интерфейс..
Синтаксис Automation:
```
BOOL RemoveVariable (BSTR name);
```
Синтаксис COM:
```
BOOL RemoveVariable (LPOLESTR name);
Входные параметры:
name    - имя переменной.
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```
Примечание:
1. Переменную можно удалить только для ksFeature и IFeature.
2. Массив автоматически обновляется в случае удачного завершения.
