--- title: "Объект Дерева построения (Интерфейсы ksFeature, IFeature)" type: interface api: [api7] domain: [3d, assembly, feature] tags: [interface, api7, 3d, assembly, feature, ksfeature] sources: - ksfeature.html --- *API интерфейсов. Версия 5 > Документ-модель (Интерфейсы - ksDocument3D, IDocument3D )  > Компонент сборки (деталь или подсборка). Интерфейсы ksPart и IPart * ## Объект Дерева построения (Интерфейсы ksFeature, IFeature) Интерфейс объекта Дерева построения. | ksFeature | - интерфейс Automation | | --- | --- | | IFeature | - интерфейс COM | Примечание: Данный интерфейс может быть получен с использованием методов следующих интерфейсов: •Интерфейса объекта Дерева построения ksFeatureCollection, •Интерфейса детали или подсборки в составе сборки ksPart. Массив объектов Дерева построения (Интерфейсы ksFeatureCollection, IFeatureCollection) Массив переменных (Интерфейсы ksVariableCollection, IVariableCollection) Интерфейс массива атрибутов объектов модели (Интерфейсы ksAttribute3DCollection, IAttribute3DCollection) Измерение расстояния и угла между двумя примитивами (Интерфейсы ksMeasurer, IMeasurer) Расчет координат точек при S-образном соединении прямолинейных ребер (Интерфейс ISTrackingPointsMeasurer) Визуальные свойства материала (Интерфейсы ksColorParam, IColorParam) Интерфейс результатов редактирования объекта (Интерфейсы ksObject3DNotifyResult, IObject3DNotifyResult) ## 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. ## AttributeCollectionEx - Получить массив атрибутов из источника вставки Синтаксис Automation: ``` LPDISPATCH AttributeCollectionEx (long key1, long key2, long key3, long key4, double numb, LPDISPATCH sourcePart); ``` Синтаксис COM: ``` LPATTRIBUTE3DCOLLECTION AttributeCollectionEx (long key1, long key2, long key3, long key4, double numb, LPPART sourcePart); Входные параметры: key1, key2, key3, key4 - ключи для поиска по ключам либо 0, Numb - номер типа атрибута для поиска по номеру либо 0, sourcePart - указатель на интерфейс вставки-источника ksPart или IPart. Возвращаемое значение: - указатель на интерфейс коллекции атрибутов ksAttribute3DCollection или IAttribute3DCollection. ``` Примечание: Атрибут - это дополнительная неграфическая информация, связанная с объектом или несколькими объектами чертежа. Такая информация может быть представлена в виде числа, строки текста, а также таблицы с фиксированным или переменным числом строк. В дальнейшем значения атрибутов могут использоваться для поиска объектов, а также обрабатываться различными приложениями (например, системой проектирования спецификаций, различными расчетными программами и т.п.). Типы (описания структуры) атрибутов могут храниться как непосредственно в документе, так и в специальных файлах (библиотеках типов атрибутов). Эти файлы имеют расширение lat. ## BodyCollection - Получить указатель на интерфейс массива трехмерных тел Синтаксис Automation: ``` LPBODYCOLLECTION BodyCollection(); ``` Синтаксис COM: ``` LPBODYCOLLECTION BodyCollection(); Возвращаемое значение: - указатель на интерфейс массива тел ksBodyCollection или IBodyCollection. ``` ## EntityCollection - Получить массив объектов (грани, ребра, вершины) Синтаксис Automation: ``` ksEntityCollection * EntityCollection (short objType); ``` Синтаксис COM: ``` LPENTITYCOLLECTION EntityCollection (short objType); Входные параметры: objType - тип объектов (грани, ребра, вершины). Возвращаемое значение: указатель на интерфейс ksEntityCollection или IEntityCollection - в случае успеха, NULL - в случае неудачи. ``` ## excluded - Признак включения или выключения из расчета Тип данных: BOOL Синтаксис Automation: ``` excluded = iFeature.excluded Получить свойство (* ) iFeature.excluded = excluded Установить свойство (* ) excluded = iFeature.GetExcluded() Получить свойство (**) iFeature.SetExcluded(excluded) Установить свойство (**) ``` ## GetObject - Получить объект модели, связанный с объектом дерева Синтаксис Automation: ``` LPDISPATCH GetObject(); ``` Синтаксис COM: ``` LPUNKNOWN GetObject(); Возвращаемое значение: - указатель на интерфейс объекта. ``` Примечание: Тип возвращаемого объекта выбирается из Obj3dType. Может принимать значение: | o3d_part | - деталь, | | | --- | --- | --- | | o3d_entity | - объект, | | | o3d_mateConstraint | - сопряжение, | | | o3d_body | -тело | IBody или kIsBody | ## GetOwnerFeature - Получить указатель на интерфейс объекта, в состав которого входит данный объект Синтаксис Automation: ``` LPDISPATCH GetOwnerFeature(); ``` Синтаксис COM: ``` LPFEATURE GetOwnerFeature(); Возвращаемое значение: - указатель на интерфейс ksFeature или IFeature. ``` ## IsModified - Определить, модифицирована ли модель с момента последнего перестроения Синтаксис Automation: ``` BOOL IsModified (BOOL recursive); ``` Синтаксис COM: ``` BOOL IsModified (BOOL recursive); Входной параметр: recursive TRUE Определять по вложенным объектам. Возвращаемое значение: TRUE - модель изменена с момента последнего перестроения, FALSE - модель не изменена. ``` ## IsRollBacked - Лежит ли объект ниже конца построения модели Синтаксис Automation: ``` BOOL IsRollBacked(); ``` Синтаксис COM: ``` BOOL IsRollBacked(); Возвращаемое значение: TRUE - объект лежит ниже конца построения модели, FALSE - объект лежит выше конца построения модели. ``` ## IsVIalid - Получить индикатор доступности объекта Синтаксис Automation: ``` BOOL IsValid(); ``` Синтаксис COM: ``` BOOL IsValid(); Возвращаемое значение: TRUE - объект доступен, FALSE - объект недоступен. ``` Примечание: Метод позволяет получить информацию о том, что элемент дерева построения доступен для редактирования. Элемент дерева построения может стать недоступным, например, если он исключен из расчета или указатель окончания построения перемещен в дереве выше этого элемента. ## name - Имя объекта Тип данных: BSTR Синтаксис Automation: ``` name = iFeature.name Получить свойство (* ) name = iFeature.GetName() Получить свойство (**) ``` Примечание: Свойство доступно только для чтения. ## objectError - Признак ошибки объекта Тип данных: long. Синтаксис Automation: ``` objectError = object.objectError Получить свойство (* ) objectError = object.GetObjectError() Получить свойство (**) ``` Примечание: Свойство доступно только для чтения. ## SubFeatureCollection - Получить массив объектов, входящих в данный объект Синтаксис Automation: ``` LPDISPATCH SubFeatureCollection (BOOL through, BOOL libObject); ``` Синтаксис COM: ``` LPFEATURECOLLECTION SubFeatureCollection (BOOL through, BOOL libObject); Входные параметры: Through TRUE - выдавать все объекты, включая скрытые, libObject TRUE - выдавать состав библиотечных элементов. Возвращаемое значение: - указатель на интерфейс ksFeatureCollection или IFeatureCollection. ``` ## type - Тип объекта модели Тип данных: short Синтаксис Automation: ``` type = iFeature.type Получить свойство (* ) type = iFeature.GetType() Получить свойство (**) ``` Примечание: 1. Свойство доступно только для чтения. 2. Тип возвращаемого объекта может принимать значения: | o3d_part | - деталь, | | | --- | --- | --- | | o3d_entity | - объект, | | | o3d_mateConstraint | - сопряжение, | | | o3d_body | -тело. | IBody или ksBody. | Выбирается из Obj3dType. ## updateStamp - Значение, определяющее время изменения геометрии Тип данных: long Синтаксис Automation: ``` updateStamp = iFeature.updateStamp Получить свойство (* ) updateStamp = iFeature.GetUpdateStamp( Получить свойство (**) ``` Примечание: Свойство доступно только для чтения. ## VariableCollection - Получить указатель на интерфейс массива переменных Синтаксис Automation: ``` LPDISPATCH VariableCollection(); ``` Синтаксис COM: ``` LPVARIABLECOLLECTION VariableCollection(); Возвращаемое значение: - указатель на интерфейс ksVariableCollection или IVariableCollection. ``` Примечание: Изменения в полученном массиве не отображаются в модели немедленно. Чтобы изменения вступили в силу, необходимо вызвать метод ksPart::RebuildModel. ## VariableCollectionEx - Получить массив переменных из источника Синтаксис Automation: ``` LPDISPATCH VariableCollectionEx( BOOL sourсe ); ``` Синтаксис COM: ``` LPVARIABLECOLLECTION VariableCollectionEx( BOOL sourсe ); Входные параметры: Sourсe - признак получения списка переменных и значений из источника. Возвращаемое значение: - указатель на интерфейс коллекции переменных ksVariableCollection или IvariableCollection. ``` Примечание: Метод позволяет получать и изменять переменные в исходном документе детали без открытия документа в отдельном окне или вслепую.