--- title: "Интерфейс массива трехмерных тел (Интерфейсы ksBodyCollection, IBodyCollection)" type: interface api: [api7] domain: [2d] tags: [interface, api7, 2d, ksbodycollection] sources: - ksbodycollection.html --- *API интерфейсов. Версия 5 > Документ-модель (Интерфейсы - ksDocument3D, IDocument3D )  > Компонент сборки (деталь или подсборка). Интерфейсы ksPart и IPart  > Объект модели (Интерфейсы ksEntity и IEntity)  > Интерфейсы ksEntity и iEntity - Интерфейс элемента модели (оси, плоскости, формообразующего элемента) * ## Интерфейс массива трехмерных тел (Интерфейсы ksBodyCollection, IBodyCollection) Интерфейс массива трехмерных тел. | ksBodyCollection | - интерфейс Automation | | --- | --- | | IBodyCollection | - интерфейс COM | Трехмерное тело (Интерфейсы ksBody, Body) ## Add - Добавить элемент в конец массива Интерфейс.. Синтаксис Automation: ``` BOOL Add(LPDISPATCH body); ``` Синтаксис COM: ``` BOOL Add(LPBODY body); Входные параметры: body - указатель на интерфейс ksBody или IBody добавляемого объекта. Возвращаемое значение: TRUE - в случае успешного завершения, FALSE - в случае неудачи. ``` Примечание: Указатель на интерфейс добавляемого объекта body не должен быть равен 0. ## AddAt - Добавить объект с заданным индексом в массив Интерфейс.. Синтаксис Automation: ``` BOOL AddAt(LPDISPATCH body, long index); ``` Синтаксис COM: ``` BOOL AddAt(LPBODY body, long index); Входные параметры: body - указатель на интерфейс ksBody или IBody, index - индекс в массиве. Возвращаемое значение: TRUE - в случае успешного завершения, FALSE - в случае неудачи. ``` Примечание: Указатель на интерфейс добавляемого объекта body не должен быть равен 0. ## AddBefore - Добавить объект перед указанным объектом в массиве Интерфейс.. Синтаксис Automation: ``` BOOL AddBefore(LPDISPATCH body, LPDISPATCH base); ``` Синтаксис COM: ``` BOOL AddBefore(LPBODY body, LPBODY base); Входные параметры: body - указатель на интерфейс ksBody или IBody добавляемого объекта, base - указатель на интерфейс ksBody или IBody базового объекта. Возвращаемое значение: TRUE - в случае успешного завершения, FALSE - в случае неудачи. ``` Примечание: Указатели на интерфейсы добавляемого и базового объекта body и base не должны быть равны 0. ## Clear - Очистить массив Интерфейс.. Синтаксис Automation: ``` BOOL Clear(); ``` Синтаксис COM: ``` BOOL Clear(); Возвращаемое значение: TRUE - в случае успешного завершения, FALSE - в случае неудачи. ``` Примечание: Объекты удаляются только из массива, в модель изменения не передаются. ## DetachByBody - Удалить указанный объект из массива Интерфейс.. Синтаксис Automation: ``` BOOL DetachByBody(LPDISPATCH body); ``` Синтаксис COM: ``` BOOL DetachByBody(LPBODY body); Входные параметры: body - указатель на интерфейс ksBody или IBody. Возвращаемое значение: TRUE - в случае успешного завершения, FALSE - в случае неудачи. ``` Примечание: Указатель на интерфейс удаляемого объекта body не должен быть равен 0. ## DetachByIndex - Удалить объект из массива по индексу Интерфейс.. Синтаксис Automation: ``` BOOL DetachByIndex(long index); ``` Синтаксис COM: ``` BOOL DetachByIndex(long index); Входные параметры: index - индекс удаляемого объекта в массиве. Возвращаемое значение: TRUE - в случае успешного завершения, FALSE - в случае неудачи. ``` Примечание: Элемент массива из модели не удаляется. ## FindIt - Получить индекс элемента в массиве Интерфейс.. Синтаксис Automation: ``` long FindIt (LPDISPATCH entity); Возвращаемое значение: индекс элемента - если элемент найден в массиве, -1 - если элемент не найден. ``` Синтаксис COM: ``` unsigned long FindIt (LPBODY entity ); Возвращаемое значение: индекс элемента - если элемент найден в массиве, SYS_MAX_UINT - если элемент не найден. Входные параметры: entity - указатель на интерфейс компонента ksBody или IBody. ``` ## First - Получить указатель на интерфейс первого объекта в массиве Интерфейс.. Синтаксис Automation: ``` LPDISPATCH First(); ``` Синтаксис COM: ``` LPBODY First(); Возвращаемое значение: - указатель на интерфейс ksBody или IBody. ``` ## GetByIndex - Получить указатель на интерфейс объекта в массиве по индексу Интерфейс.. Синтаксис Automation: ``` LPDISPATCH GetByIndex (long index); ``` Синтаксис COM: ``` LPBODY GetByIndex (long index); Входной параметр: index - номер объекта в массиве. Возвращаемое значение: - указатель на интерфейс ksBody или IBody. ``` ## GetCount - Получить количество элементов в массиве Интерфейс.. Синтаксис Automation: ``` long GetCount(); ``` Синтаксис COM: ``` long GetCount(); Возвращаемое значение: - количество элементов массива. ``` ## Last - Получить указатель на интерфейс последнего объекта в массиве Интерфейс.. Синтаксис Automation: ``` LPDISPATCH Last(); ``` Синтаксис COM: ``` LPBODY Last(); Возвращаемое значение: - указатель на интерфейс ksBody или IBody. ``` ## Next - Получить указатель на интерфейс следующего объекта в массиве Интерфейс.. Синтаксис Automation: ``` LPDISPATCH Next(); ``` Синтаксис COM: ``` LPBODY Next(); Возвращаемое значение: - указатель на интерфейс ksBody или IBody. ``` ## Prev - Получить указатель на интерфейс предыдущего объекта в массиве Интерфейс.. Синтаксис Automation: ``` LPDISPATCH Prev(); ``` Синтаксис COM: ``` LPBODY Prev(); Возвращаемое значение: - указатель на интерфейс компонента ksBody или IBody. ``` ## Refresh - Обновить массив Синтаксис Automation: ``` BOOL Refresh(); ``` Синтаксис COM: ``` BOOL Refresh(); Возвращаемое значение: TRUE - в случае успешного завершения, FALSE - в случае неудачи. ``` Примечание: После вызова данной функции возникает полное соответствие массива с массивом тел трехмерной детали или сборки и удаляются все предыдущие изменения в массиве. ## SetByIndex - Заменить объект с указанным индексом в массиве на присланный объект Интерфейс.. Синтаксис Automation: ``` BOOL SetByIndex(LPDISPATCH body, long index); ``` Синтаксис COM: ``` BOOL SetByIndex(LPBODY body, long index); Входные параметры: body - указатель на интерфейс ksBody или IBody присоединяемого объекта, index - индекс элемента в массиве. Возвращаемое значение: TRUE - в случае успешного завершения, FALSE - в случае неудачи. ```