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

11 KiB

title, type, api, domain, tags, sources
title type api domain tags sources
Массив объектов Дерева построения (Интерфейсы ksFeatureCollection, IFeatureCollection) interface
api7
assembly
feature
interface
api7
assembly
feature
ksfeaturecollection
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    - в случае неудачи.