Files
kompas3d-mcp/docs/Kompas3D_SDK/interfaces/ksfeaturecollection.md
T
mikhail e1337e4016 feat(sdk-docs): MD-база знаний SDK — в репозиторий; генератор и зеркало убраны
docs/Kompas3D_SDK/ становится каноническим источником справки КОМПАС SDK
и включается в репозиторий (2491 файл, ~14 МБ). HTML-зеркало
docs/KOMPAS_SDK_ru-RU/ (~1.4 ГБ, © АСКОН) и генератор
tools/build_kompas3d_sdk.py больше не нужны — регенерация не предполагается.

- .gitignore: MD-база разблокирована; зеркало остаётся проигнорированным
  (safety-net на случай повторной локальной выгрузки).
- CLAUDE.md / SKILL.md: убраны упоминания регенерации и зеркала.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-26 20:00:05 +03:00

320 lines
11 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "Массив объектов Дерева построения (Интерфейсы ksFeatureCollection, IFeatureCollection)"
type: interface
api: [api7]
domain: [assembly, feature]
tags: [interface, api7, assembly, feature, ksfeaturecollection]
sources:
- ksfeaturecollection.html
---
*API интерфейсов. Версия 5 > Документ-модель (Интерфейсы - ksDocument3D, IDocument3D )  > Компонент сборки (деталь или подсборка). Интерфейсы ksPart и IPart  > Объект Дерева построения (Интерфейсы ksFeature, IFeature) *
## Массив объектов Дерева построения (Интерфейсы ksFeatureCollection, IFeatureCollection)
Интерфейс массива объектов Дерева построения.
| ksFeatureCollection | - интерфейс Automation |
| --- | --- |
| IFeatureCollection | - интерфейс COM |
Примечание:
Данный интерфейс может быть получен с использованием методов интерфейсов:
•ksFeature::SubFeatureCollection
•ksMacro3DDefinition::FeatureCollection
•ksDocument3D::FeatureCollection
## Add - Добавить объект в массив
Синтаксис Automation:
```
BOOL Add (ksFeature* obj);
```
Синтаксис COM:
```
BOOL Add (LPFEATURE obj);
Входные параметры:
obj - указатель на интерфейс компонента ksFeature или IFeature.
Возвращаемое значение:
TRUE - в случае успеха,
FALSE - в случае неудачи.
```
## AddAt - Добавить в массив объект с заданным индексом
Синтаксис Automation:
```
BOOL AddAt (ksFeature* obj, long index );
```
Синтаксис COM:
```
BOOL AddAt (LPFEATURE obj, long index );
Входные параметры:
obj - указатель на интерфейс компонента ksFeature или IFeature,
index - индекс нового элемента.
Возвращаемое значение:
TRUE - в случае успеха,
FALSE - в случае неудачи.
Примечание.
При добавлении тела в макроэлемент в макроэлемент добавляются все операции данного тела на момент создания макроэлемента. Само тело в макроэлемент не добавляется.
```
## AddBefore - Добавить объект перед указанным объектом в массиве
Синтаксис Automation:
```
BOOL AddBefore (ksFeature* obj, ksFeature* base);
```
Синтаксис COM:
```
BOOL AddBefore (LPFEATURE obj, LPFEATURE base);
Входные параметры:
obj - указатель на интерфейс компонента ksFeature или IFeature,
base - указатель на элемент массива.
Возвращаемое значение:
TRUE - в случае успеха,
FALSE - в случае неудачи.
```
## AttributeCollection - Получить массив атрибутов
Синтаксис Automation:
```
ksAttribute3DCollection* AttributeCollection (long key1,
long key2,
long key3,
long key4,
double numb);
```
Синтаксис COM:
```
LPATTRIBUTE3DCOLLECTION AttributeCollection (long key1,
long key2,
long key3,
long key4,
double numb);
Входные параметры:
key1, key2, key3, key4 - ключи для поиска по ключам либо 0,
numb - номер типа атрибута для поиска по номеру либо 0.
Возвращаемое значение:
Указатель на массив атрибутов ksAttribute3DCollection
```
Примечание:
Атрибут - это дополнительная неграфическая информация, связанная с объектом или несколькими объектами чертежа. Такая информация может быть представлена в виде числа, строки текста, а также таблицы с фиксированным или переменным числом строк.
Значения атрибутов могут использоваться для поиска объектов, а также обрабатываться различными приложениями, например, системой проектирования спецификаций, различными расчетными программами и т.п.
Типы (описания структуры) атрибутов могут храниться как непосредственно в документе, так и в специальных файлах - библиотеках типов атрибутов. Эти файлы имеют расширение lat.
Структура параметров табличного атрибута.
## Clear - Очистить динамический массив объектов
Синтаксис Automation:
```
BOOL Clear();
Возвращаемое значение:
TRUE - в случае успеха,
FALSE - в случае неудачи.
```
## DetachByBody - Удалить указанный объект из массива
Синтаксис Automation:
```
BOOL DetachByBody (LPDISPATCH obj);
```
Синтаксис COM:
```
BOOL DetachByBody (LPFEATURE obj);
Входные параметры:
obj - указатель на интерфейс удаляемого объекта ksFeature или IFeature.
Возвращаемое значение:
TRUE - в случае успеха,
FALSE - в случае неудачи.
```
Примечание:
Указатель на интерфейс удаляемого объекта obj не должен быть 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(LPFEATURE entity);
Возвращаемое значение:
индекс элемента - если элемент найден в массиве,
SYS_MAX_UINT - если элемент не найден.
Входные параметры:
entity - указатель на интерфейс компонента ksFeature или IFeature.
```
## First - Получить указатель на интерфейс первого объекта в массиве
Синтаксис Automation:
```
LPDISPATCH First();
```
Синтаксис COM:
```
LPFEATURE First();
Возвращаемое значение:
- указатель на интерфейс ksFeature или IFeature.
```
## GetByIndex - Получить указатель на интерфейс объекта в массиве по индексу
Синтаксис Automation:
```
LPDISPATCH GetByIndex (long index);
```
Синтаксис COM:
```
LPFEATURE GetByIndex (long index);
Входной параметр:
index - номер объекта в массиве.
Возвращаемое значение:
- указатель на интерфейс ksFeature или IFeature.
```
## GetByName - Получить указатель на интерфейс объекта в массиве по имени
Синтаксис Automation:
```
LPDISPATCH GetByName (BSTR name,
BOOL testFullName,
BOOL testIgnoreCase);
```
Синтаксис COM:
```
LPFEATURE GetByName (LPOLESTR name,
BOOL testFullName,
BOOL testIgnoreCase);
Входные параметры:
name - имя объекта,
testFullName - признак полного имени: TRUE - name - полное имя, FALSE - имя name может быть частью полного имени,
testIgnoreCase - признак игнорирования регистра символов: TRUE - игнорировать регистр, FALSE - учитывать регистр.
Возвращаемое значение:
- указатель на интерфейс ksFeature или IFeature.
```
## GetCount - Получить количество элементов в массиве
Синтаксис Automation:
```
long GetCount();
```
Синтаксис COM:
```
long GetCount();
Возвращаемое значение:
- количество элементов массива.
```
## Last - Получить указатель на интерфейс последнего объекта в массиве
Синтаксис Automation:
```
LPDISPATCH Last();
```
Синтаксис COM:
```
LPFEATURE Last();
Возвращаемое значение:
- указатель на интерфейс ksFeature или IFeature.
```
## Next - Получить указатель на интерфейс следующего объекта в массиве
Синтаксис Automation:
```
LPDISPATCH Next();
```
Синтаксис COM:
```
LPFEATURE Next();
Возвращаемое значение:
- указатель на интерфейс ksFeature или IFeature.
```
## Prev - Получить указатель на интерфейс предыдущего объекта в массиве
Синтаксис Automation:
```
LPDISPATCH Prev();
```
Синтаксис COM:
```
LPFEATURE Prev();
Возвращаемое значение:
- указатель на интерфейс ksFeature или IFeature.
```
## Refresh - Обновить массив
Синтаксис Automation:
```
BOOL Refresh();
```
Синтаксис COM:
```
BOOL Refresh();
Возвращаемое значение:
TRUE - в случае успеха,
FALSE - в случае неудачи.
```
Примечание:
После вызова данной функции возникает полное соответствие массива с массивом объектов дерева и удаляются все предыдущие изменения в массиве.
## SetByIndex - Заменить объект с указанным индексом в массиве на присланный объект
Синтаксис Automation:
```
BOOL SetByIndex (ksFeature* obj, long index);
```
Синтаксис COM:
```
BOOL SetByIndex (LPFEATURE obj, long index);
Входные параметры:
obj - указатель на интерфейс компонента ksFeature или IFeature,
index - индекс элемента в массиве.
Возвращаемое значение:
TRUE - в случае успеха,
FALSE - в случае неудачи.
```