--- 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 - в случае успешного завершения. ```