---
title: "Массив компонентов сборки (Интерфейсы ksPartCollection и IPartCollection)"
type: interface
api: [api7]
domain: [3d, assembly]
tags: [interface, api7, 3d, assembly, kspartcollection]
sources:
  - kspartcollection.html
---

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


## Массив компонентов сборки (Интерфейсы ksPartCollection и IPartCollection)

Интерфейс динамического массива компонентов сборки.
| ksPartCollection | - интерфейс Automation |
| --- | --- |
| IPartCollection | - интерфейс COM |
Примечание:
Данный интерфейс можно получить от интерфейса ksDocument3D или IDocument3D.


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

Синтаксис Automation:
```
BOOL Add (LPDISPATCH part);
```
Синтаксис COM:
```
BOOL Add (LPPART part);
Входной параметр:
part    - указатель на интерфейс компонента ksPart или IPart.
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```


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

Синтаксис Automation:
```
BOOL AddAt (LPDISPATCH part,
long index);
```
Синтаксис COM:
```
BOOL AddAt (LPPART part,
unsigned long index);
Входные параметры:
part    - указатель на интерфейс компонента ksPart или IPart,
index    - индекс в массиве.
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```


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

Синтаксис Automation:
```
BOOL AddBefore (LPDISPATCH entity,
LPDISPATCH base);
```
Синтаксис COM:
```
BOOL AddBefore (LPPART entity,
LPPART base);
Входные параметры:
part    - указатель на интерфейс добавляемого компонента ksPart илиIPart,
base    - указатель на интерфейс компонента базового объекта ksPart или IPart.
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```


## Clear - Очистить массив

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


## DetachByBody - отсоединить компонент от массива

Синтаксис Automation:
```
BOOL DetachByBody (LPDISPATCH part);
```
Синтаксис COM:
```
BOOL DetachByBody (LPPART part);
Входной параметр:
part    - указатель на интерфейс отсоединяемого компонента ksPart или IPart.
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```
Примечание:
Элемент массива из модели не удаляется.


## DetachByIndex - Отсоединить от массива компонент с указанным индексом

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


## SetByIndex - Заменить компонент в массиве по индексу

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