--- 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. Массив автоматически обновляется в случае удачного завершения.