---
title: "Интерфейс коллекции проекций отображения модели (Интерфейсы ksViewProjectionCollection, IViewProjectionCollection)"
type: interface
api: [api7]
domain: [3d]
tags: [interface, api7, 3d, ksviewprojectioncollection]
sources:
  - ksviewprojectioncollection.html
---

*API интерфейсов. Версия 5 > Документ-модель (Интерфейсы - ksDocument3D, IDocument3D ) *


## Интерфейс коллекции проекций отображения модели (Интерфейсы ksViewProjectionCollection, IViewProjectionCollection)

Интерфейс массива проекций отображения модели в окне.
| ksViewProjectionCollection | - интерфейс Automation |
| --- | --- |
| IViewProjectionCollection | - интерфейс COM |
Типы предопределенных проекций отображения...
Описание:
К предопределенным проекциям можно добавлять пользовательские, индексы которых могут изменяться.
Примечание:
Получить этот интерфейс можно методом ksDocument3D::GetViewProjectionCollection, при этом он будет автоматически заполнен проекциями, заданными в данном документе.
Проекции отображения модели в окне (Интерфейсы ksViewProjection, IViewProjection)


## Add - Добавить элемент в конец массива

Синтаксис Automation:
```
BOOL Add (LPDISPATCH projection);
```
Синтаксис COM:
```
BOOL Add (LPVIEWPROJECTION projection);
Входные параметры:
projection    - указатель на интерфейс ksViewProjection или IViewProjection.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Добавить в массив можно только проекцию с индексом vp_None. После добавления проекция становится текущей и ей присваивается новый индекс, равный ее индексу в массиве. После добавления проекции редактирование ее параметров невозможно.


## AddUnfoldProjection - Добавить проекцию отображения - развертка

Синтаксис Automation:
```
LPDISPATCH AddUnfoldProjection( VARIANT place );
Возвращаемое значение:
- указатель на интерфейс проекции ksViewProjection.
```
Синтаксис COM:
```
LPVIEWPROJECTION AddUnfoldProjection( VARIANT * place );
Возвращаемое значение:
- указатель на интерфейс проекции IViewProjection.
```


## DetachByBody - Отсоединить элемент по указателю на интерфейс

Синтаксис Automation:
```
BOOL DetachByBody (LPDISPATCH projection);
```
Синтаксис COM:
```
BOOL DetachByBody (LPVIEWPROJECTION projection);
Входные параметры:
projection    - указатель на интерфейс ksViewProjection или IViewProjection.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Отсоединить можно только пользовательскую проекцию, стандартные проекции не отсоединяются.


## DetachByIndex - Отсоединить элемент по индексу

Синтаксис Automation:
```
BOOL DetachByIndex (long index);
```
Синтаксис COM:
```
BOOL DetachByIndex (long index);
Входной параметр:
index    - индекс проекции в массиве.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Отсоединить можно только пользовательскую проекцию, стандартные проекции не отсоединяются.


## DetachByName - Отсоединить элемент по имени проекции

Синтаксис Automation:
```
BOOL DetachByName (BSTR name);
```
Синтаксис COM:
```
BOOL DetachByName (LPOLESTR name);
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Отсоединить можно только пользовательскую проекцию, стандартные проекции не отсоединяются.


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

Синтаксис Automation:
```
long FindIt (LPDISPATCH projection);
```
Синтаксис COM:
```
long FindIt (LPVIEWPROJECTION projection);
Возвращаемое значение:
индекс элемента    - если элемент найден в массиве,
-1    - если элемент не найден.
Входные параметры:
projection    - указатель на интерфейс ksViewProjection или IViewProjection.
```


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

Синтаксис Automation:
```
LPDISPATCH First();
```
Синтаксис COM:
```
LPVIEWPROJECTION First();
Возвращаемое значение:
- указатель на интерфейс ksViewProjection или IViewProjection.
```


## GetBaseUserOrientation - Получить текущую пользовательскую базовую ориентацию модели

Синтаксис Automation:
```
VARIANT GetBaseUserOrientation();
```
Синтаксис COM:
```
VARIANT GetBaseUserOrientation();
Возвращаемое значение:
- массив SafeAttray типа (VT_ARRAY    VT_R8).
```
Примечание:
1. Элементы матрицы возвращаются в виде одномерного массива из 16 элементов. Матрица имеет размер 4х4.
2. Метод позволяет получить матрицу, которая может использоваться для отображения вида спереди.
3. По умолчанию используется единичная матрица без смещения.


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

Синтаксис Automation:
```
LPDISPATCH GetByIndex (long index);
```
Синтаксис COM:
```
LPVIEWPROJECTION GetByIndex (long index);
Входной параметр:
index    - индекс проекции в массиве.
Возвращаемое значение:
- указатель на интерфейс ksViewProjection или IViewProjection.
```


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

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


## GetCount - Получить количество проекций в массиве

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


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

Синтаксис Automation:
```
LPDISPATCH Last();
```
Синтаксис COM:
```
LPVIEWPROJECTION Last();
Возвращаемое значение:
- указатель на интерфейс ksViewProjection или IViewProjection.
```


## NewViewProjection - Добавить новую проекцию

Синтаксис Automation:
```
LPDISPATCH NewViewProjection();
```
Синтаксис COM:
```
LPVIEWPROJECTION NewViewProjection();
Возвращаемое значение:
- указатель на интерфейс ksViewProjection или IViewProjection.
```
Примечание:
Проекции присваивается индекс vp_None. Созданная проекция в массив не добавляется, для добавления в массив нужно использовать метод Add.


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

Синтаксис Automation:
```
LPDISPATCH Next();
```
Синтаксис COM:
```
LPVIEWPROJECTION Next();
Возвращаемое значение:
- указатель на интерфейс ksViewProjection или IViewProjection.
```


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

Синтаксис Automation:
```
LPDISPATCH Prev();
```
Синтаксис COM:
```
LPVIEWPROJECTION Prev();
Возвращаемое значение:
- указатель на интерфейс ksViewProjection или IViewProjection.
```


## Refresh - Обновить массив

Синтаксис Automation:
```
BOOL Refresh();
```
Синтаксис COM:
```
BOOL Refresh();
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Метод перезаполняет массив проекциями, заданными в документе.


## SetBaseUserOrientation - Установить пользовательскую базовую ориентацию модели

Синтаксис Automation:
```
BOOL SetBaseUserOrientation(VARIANT place);
```
Синтаксис COM:
```
BOOL SetBaseUserOrientation(VARIANT * place);
Входные параметры:
place    - массив SafeAttray типа (VT_ARRAY    VT_R8).
```
Примечание:
1. Элементы матрицы возвращаются в виде одномерного массива из 16 элементов. Матрица имеет размер 4х4.
2. Метод позволяет получить матрицу, которая может использоваться для отображения вида спереди.
3. По умолчанию используется единичная матрица без смещения.


## viewProjectionScheme - Текущая схема ориентаций модели

Тип данных: из перечисления ksViewProjectionScheme
Синтаксис Automation:
```
viewProjectionScheme = Object.viewProjectionScheme    Получить свойство (* )
Object.viewProjectionScheme = viewProjectionScheme    Установить свойство (* )
viewProjectionScheme = Object.GetViewProjectionScheme()    Получить свойство(**)
Object.SetViewProjectionScheme( viewProjectionScheme )    Установить свойство (**)
```
