---
title: "Массив объектов модели (Интерфейсы ksEntityCollection и IEntityCollection)"
type: interface
api: [api7]
domain: [3d, assembly]
tags: [interface, api7, 3d, assembly, ksentitycollection]
sources:
  - ksentitycollection.html
---

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


## Массив объектов модели (Интерфейсы ksEntityCollection и IEntityCollection)

Интерфейс массива объектов модели.
| ksEntityCollection | - интерфейс Automation |
| --- | --- |
| IEntityCollection | - интерфейс COM |
Примечание:
Данный интерфейс можно получить от следующих интерфейсов:
•Интерфейс вырезанного кинематического элемента ksCutEvolutionDefinition или ICutEvolutionDefinition.
•Интерфейс детали или подсборки в составе сборки ksPart или IPart.
•Интерфейс документа-модели ksDocument3D или IDocument3D.
•Интерфейс зеркальной копии ksMirrorCopyDefinitiont или IMirrorCopyDefinitiont.
•Интерфейс объекта Дерева построения ksFeaturet или IFeaturet.
•Интерфейс операции копирования компонентов сборки по кривой ksCurvePartArrayDefinitiont или ICurvePartArrayDefinitiont.
•Интерфейс операции копирования по кривой ksCurveCopyDefinitiont или ICurveCopyDefinitiont.
•Интерфейс операции копирования по окружности ksCircularCopyDefinitiont или ICircularCopyDefinition.
•Интерфейс операции копирования по сетке ksMeshCopyDefinitiont или ICopyMeshDefinitiont.
•Интерфейс параметров вырезанного элемента по сечениям ksCutLoftDefinitiont или ICutLoftDefinitiont.
•Интерфейс параметров запроса к системе ksRequestInfo3D или IRequestInfo.
•Интерфейс параметров кинематической поверхности ksEvolutionSurfaceDefinitiont или IEvolutionSurfaceDefinitiont.
•Интерфейс параметров основания - кинематического элемента ksBaseEvolutionDefinitiont или IBaseEvolutionDefinitiont.
•Интерфейс параметров основания - элемента по сечениям ksBaseLoftDefinition или IBaseLoftDefinition.
•Интерфейс параметров поверхности по сечениям ksLoftSurfaceDefinition или ILoftSurfaceDefinitiont.
•Интерфейс параметров фаски ksChamferDefinition или IChamferDefinition,
•Интерфейс параметров элемента "скругление" ksFilletDefinition или IFilletDefinition.
•Интерфейс приклеенного кинематического элемента ksBossEvolutionDefinition или IBossEvolutionDefinition.
•Интерфейс приклеенного элемента по сечениям ksBossLoftDefinition или IBossLoftDefinition.
•Интерфейс тонкостенной оболочки ksShellDefinition или IShellDefinition.
•Интерфейс уклона ksInclineDefinition или IInclineDefinition.


## Add - Добавить объект в массив

Синтаксис Automation:
```
BOOL Add (LPDISPATCH entity);
```
Синтаксис COM:
```
BOOL Add (LPENTITY entity);
Входной параметр:
entity    - интерфейс добавляемого элемента ksEntity или IEntity.
Возвращаемое значение:
Функция возвращает TRUE в двух случаях:
•Если при работе с динамическим массивом объектов модели (метод EntityCollection) checkEntity - признак проверки для вновь добавляемых объектов на NULL - имеет значение FALSE (т.е. в массив можно добавить NULL).
•Если при работе с динамическим массивом объектов модели checkEntity имеет значение TRUE (т.е. в массив нельзя добавить NULL) и объект - не NULL.
Функция возвращает FALSE, если при работе с динамическим массивом объектов модели checkEntity - имеет значение TRUE (т.е. в массив нельзя добавить NULL) и объект - NULL.
```


## AddAt - Добавить объект в массив с заданным индексом

Синтаксис Automation:
```
BOOL AddAt (LPDISPATCH entity,
long index);
```
Синтаксис COM:
```
BOOL AddAt (LPENTITY entity,
long index);
Входные параметры:
entity    - интерфейс добавляемого элемента ksEntity или IEntity,
index    - индекс в массиве.
Возвращаемое значение:
Функция возвращает TRUE в двух случаях:
•Если при работе с динамическим массивом объектов модели (метод EntityCollection) checkEntity - признак проверки для вновь добавляемых объектов на NULL - имеет значение FALSE (т.е. в массив можно добавить NULL).
•Если при работе с динамическим массивом объектов модели checkEntity имеет значение TRUE (т.е. в массив нельзя добавить NULL) и объект - не NULL.
Функция возвращает FALSE, если при работе с динамическим массивом объектов модели checkEntity имеет значение TRUE (т.е. в массив нельзя добавить NULL) и объект - NULL.
```


## AddBefore - Добавить объект перед указанным объектом в массиве

Синтаксис Automation:
```
BOOL AddBefore (LPDISPATCH entity,
LPDISPATCH base);
```
Синтаксис COM:
```
BOOL AddBefore (LPENTITY entity,
LPENTITY base);
Входные параметры:
entity    - интерфейс добавляемого элемента ksEntity или IEntity,
base    - интерфейс базового объекта ksEntity или IEntity (не должен быть 0).
Возвращаемое значение:
Функция возвращает TRUE в двух случаях:
•Если при работе с динамическим массивом объектов модели (метод EntityCollection) checkEntity - признак проверки для вновь добавляемых объектов на NULL - имеет значение FALSE (т.е. в массив можно добавить NULL).
•Если при работе с динамическим массивом объектов модели checkEntity имеет значение TRUE (т.е. в массив нельзя добавить NULL) и объект - не NULL.
Функция возвращает FALSE, если при работе с динамическим массивом объектов модели checkEntity имеет значение TRUE (т.е. в массив нельзя добавить NULL) и объект - NULL.
```


## Clear - Очистить динамический массив объектов

Синтаксис Automation:
```
BOOL Clear();
```
Синтаксис COM:
```
BOOL Clear();
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```
Примечание:
Объекты массива из модели не удаляются.


## DetachByBody - Удалить указанный объект из массива

Синтаксис Automation:
```
BOOL DetachByBody(LPDISPATCH entity);
```
Синтаксис COM:
```
BOOL DetachByBody(LPENTITY entity);
Входной параметр:
entity    - указатель на интерфейс удаляемого элемента ksEntity или IEntity.
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```
Примечания:
1. Указатель на интерфейс удаляемого объекта entity не должен быть 0.
2. Элемент массива из модели не удаляется.


## DetachByIndex - Удалить объект из массива по индексу

Синтаксис Automation:
```
BOOL DetachByIndex(long index);
```
Синтаксис COM:
```
BOOL DetachByIndex(long index);
Входной параметр:
index    - индекс объекта в массиве.
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```
Примечание:
Элемент массива из модели не удаляется.


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


## Refresh - Обновить массив интерфейсов объектов трехмерной модели (осей, плоскостей и т.п.)

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


## SelectByPoint - Исключить из массива все объекты, не содержащие точку с заданными координатами

Синтаксис Automation:
```
BOOL SelectByPoint (double x,
double y,
double z);
```
Синтаксис COM:
```
BOOL SelectByPoint (double x,
double y,
double z);
Входные параметры:
x, y, z    - координаты точки,
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```
Примечание:
После выполнения этой функции в массиве останутся только те объекты, которые содержат указанную точку (проходят через нее).
Данная функция временно не работает для формообразующих элементов (элементов выдавливания, вращения, по сечениям).


## SetByIndex - Заменить объект с указанным индексом в массиве на присланный объект

Синтаксис Automation:
```
BOOL SetByIndex (LPDISPATCH entity,
long index);
```
Синтаксис COM:
```
BOOL SetByIndex (LPENTITY entity,
long index);
Входные параметры:
entity    - указатель на интерфейс присоединяемого элемента ksEntity или IEntity,
index    - индекс элемента в массиве.
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```
