---
title: "Документ-модель (Интерфейсы - ksDocument3D, IDocument3D )"
type: interface
api: [api7]
domain: [3d]
tags: [interface, api7, 3d, ksdocument3d]
sources:
  - ksdocument3d.html
---

*API интерфейсов. Версия 5*


## Документ-модель (Интерфейсы - ksDocument3D, IDocument3D )

Интерфейс документа-модели.
Интерфейс событий документа-модели; работа с файлом...
| ksDocument3D | - интерфейс Automation |
| --- | --- |
| IDocument3D | - интерфейс COM |
Примечание:
1. Данный интерфейс в автоматизации может быть получен от интерфейса API Kompas KompasObject с помощью методов KompasObject::Document3D, KompasObject::ActiveDocument3D;
2. Данный интерфейс в СОМ может быть получен с помощью экспортных функций: ksGet3dDocument, ksGetActive3dDocument.
ksDocument3D, IDocument3D - свойства
ksDocument3D, IDocument3D - методы
Массив компонентов сборки (Интерфейсы ksPartCollection и IPartCollection)
Компонент сборки (деталь или подсборка). Интерфейсы ksPart и IPart
Запрос к сиcтеме (Интерфейсы ksRequestInfo3D, IRequestInfo)
Менеджер выбора (подсветки) объектов (Интерфейсы ksChooseMng, IChooseMng)
Менеджер выделенных объектов (Интерфейсы ksSelectionMng, ISelectionMng)
Параметры сохранения растра (Интерфейсы ksRasterFormatParam, IRasterFormatParam)
Конвертация в дополнительные форматы (Интерфейсы ksAdditionFormatParam, IAdditionFormatParam)
Интерфейсы спецификации ksSpecification, ISpecification
Интерфейс управления положением компонентов в сборке (Интерфейсы ksComponentPositioner, IComponentPositioner)
Источник событий для документа модели
Параметры отображения точки, позволяющей определить место применения контрола (Интерфейс IMouseEnterLeaveParameters)
Интерфейс коллекции проекций отображения модели (Интерфейсы ksViewProjectionCollection, IViewProjectionCollection)
Интерфейс коллекции атрибутов объектов модели (Интерфейс Attribute3DCollection)
Интерфейс коллекции трехмерных координат (Интерфейсы ksCoordinate3dCollection, ICoordinate3dCollection)
Интерфейс сопряжения (Интерфейсы ksMateConstraint, IMateConstraint)
МЦХ тела вращения или выдавливания (Интерфейсы ksMassInertiaParam, IMassInertiaParam)
Интерфейс области применения для тел в операции (Интерфейсы ksChooseBodies, IChooseBodies)
Интерфейс булевой операции над твердыми телами(Интерфейсы ksAggregateDefinition, IAggregateDefinition)


## AddImportedSurfaces - Добавить импортированные поверхности

Синтаксис Automation:
```
AddImportedSurfaces (BSTR fileName, BOOL together)
```
Синтаксис COM:
```
LPENTITYCOLLECTION AddImportedSurfaces (LPOLESTR fileName, BOOL together)
Входные параметры:
fileName    - имя файла (*.igs, *.sat) импортированной поверхности,
together    - Если параметр имеет значение TRUE, то импортированные поверхности будут сшиваться; - если параметр имеет значение FALSE, то будет импортирован массив импортированных поверхностей.
Возвращаемое значение:
Указатель на интерфейс ksEntityCollection или IEntityCollection,    - в случае успеха,
NULL    - в случае неудачи.
```
Примечания:
В документ можно вставить импортированную поверхность из файла, причем в общем случае может импортироваться массив импортированных поверхностей, если together = FALSE.


## AdditionFormatParam - Получить указатель на интерфейс параметров сохранения модели в дополнительном формате

Синтаксис Automation:
```
LPDISPATCH AdditionFormatParam();
```
Синтаксис COM:
```
LPADDITIONFORMATPARAM AdditionFormatParam();
Возвращаемое значение:
- указатель на интерфейс ksAdditionFormatParam или IAdditionFormatParam.
```


## AddMateConstraint - Добавить сопряжение в сборку

Синтаксис Automation:
```
BOOL AddMateConstraint (long constraintType,
LPDISPATCH object1,
LPDISPATCH object2,
short direction,
short fixed,
double value);
```
Синтаксис COM:
```
BOOL AddMateConstraint (long constraintType,
LPENTITY obj1,
LPENTITY obj2,
short direction,
short fixed,
double val);
Входные параметры:
constraintType    - тип сопряжения из перечисления MateConstraintType,
object1    - указатель на интерфейс первого объекта, на который накладывается сопряжение (ksEntity или IEntity),
object2    - указатель на интерфейс второго объекта, на который накладывается сопряжение (ksEntity или iEntity),
direction    - ориентация (1 - объекты однонаправленные, 0 - направление не учитывается, -1 - объекты разнонаправленные),
fixed    - признак фиксации деталей перед выполнением (0 - детали не фиксируются, 1 - фиксируется первая деталь, 2 - фиксируется вторая деталь),
val    - параметр для ограничений (расстояние или угол между объектами).
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```
Примечание:
Направление задаётся знаком параметра val.


## AttributeCollection - Получить массив атрибутов

Синтаксис Automation:
```
ksAttribute3DCollection* AttributeCollection (long key1,
long key2,
long key3,
long key4,
double numb,
LPDISPATCH pObj);
```
Синтаксис COM:
```
LPATTRIBUTE3DCOLLECTION AttributeCollection (long key1,
long key2,
long key3,
long key4,
double numb,
LPUNKNOWN pObj);
Входные параметры:
key1, key2, key3, key4    - ключи для поиска по ключам либо 0,
numb    - номер типа атрибута для поиска по номеру либо 0,
pObj    - указатель на ksDocument3D - атрибуты документа, ksFeatureCollection - атрибуты для данной группы объектов, ksFeature - атрибуты определенного объекта.
Возвращаемое значение:
- указатель на массив атрибутов ksAttribute3DCollection.
```
Примечания:
Атрибут - это дополнительная неграфическая информация, связанная с объектом или несколькими объектами чертежа. Такая информация может быть представлена в виде числа, строки текста, а также таблицы с фиксированным или переменным числом строк.
В дальнейшем значения атрибутов могут использоваться для поиска объектов, а также обрабатываться различными приложениями (например, системой проектирования спецификаций, различными расчетными программами и т.п.).
Типы (описания структуры) атрибутов могут храниться как непосредственно в документе, так и в специальных файлах (библиотеках типов атрибутов). Эти файлы имеют расширение lat.


## author - Имя автора документа

Тип данных: строка
Синтаксис Automation:
```
author = document.author    Получить свойство (* )
document.author = author    Установить свойство (* )
author = document.GetAuthor ()    Получить свойство (**)
document.SetAuthor(author)    Установить свойство (**)
```
Синтаксис COM:
```
author = document->GetAuthor ()    Получить свойство
document->SetAuthor(author)    Установить свойство
```


## ChangeObjectInLibRequest - Изменить фантом или компоненты команд

Синтаксис Automation:
```
BOOL ChangeObjectInLibRequest();
```
Синтаксис COM:
```
BOOL ChangeObjectInLibRequest();
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Вызов этого метода позволяет принудительно, не из CallBack-функции изменить параметры текущего процесса. Предварительно, используя интерфейс ksRequestInfo3d, можно изменить:
•состав команд командного окна,
•строку-приглашение,
•идентификатор или имя курсора,
•заголовок командного окна.
Все сделанные изменения будут активизированы сразу после вызова данной функции.
Процесс должен быть предварительно запущен функцией UserGetPlacementAndEntity.


## close - Закрыть документ-модель (деталь или сборку)

Синтаксис Automation:
```
BOOL close();
```
Синтаксис COM:
```
BOOL close();
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```


## comment - Комментарий документа

Тип данных: строка
Синтаксис Automation:
```
comment = document.comment    Получить свойство (* )
document.comment = comment    Установить свойство (* )
comment = document.GetComment ()    Получить свойство (**)
document.SetComment (comment)    Установить свойство (**)
```
Синтаксис COM:
```
comment = document->GetComment ()    Получить свойство
document->SetComment (comment)    Установить свойство
```


## ComponentPositioner - Получить указатель на интерфейс управления положением компонентов в сборке

Синтаксис Automation:
```
ksComponentPositioner * ComponentPositioner();
```
Синтаксис COM:
```
LPCOMPONENTPOSITIONER ComponentPositioner();
Возвращаемое значение:
- указатель на интерфейс ksComponentPositioner.
```


## CopyPart - Создать копию заданного компонента с заданным положением

Синтаксис Automation:
```
LPDISPATCH CopyPart (LPDISPATCH sourcePart, LPDISPATCH newPlacement);
```
Синтаксис COM:
```
LPPART CopyPart (LPPART sourcePart, LPPLACEMENT newPlacement);
Входные параметры:
sourcePart    - указатель на интерфейс исходного компонента ksPart или IPart, подлежащего копированию,
newPlacement    - указатель на интерфейс положения создаваемой копии ksPlacement или IPlacement.
Возвращаемое значение:
- указатель на интерфейс компонента ksPart или IPart.
```
Примечание:
Если не задано положение копии компонента, она создается в начале координат.


## Create - Создать документ-модель (деталь или сборку)

Синтаксис Automation:
```
BOOL Create (BOOL invisible, BOOL typeDoc);
```
Синтаксис COM:
```
BOOL Create (BOOL invisible, BOOL _typeDoc);
Входные параметры:
invisible    - признак режима редактирования документа (TRUE - невидимый режим, FALSE - видимый режим),
typeDoc    - тип документа (TRUE - деталь, FALSE - сборка).
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```


## CreatePartInAssembly - Получить указатель на интерфейс детали, создаваемой в сборке

Синтаксис Automation:
```
LPDISPATCH CreatePartInAssembly (BSTR fileName,
LPDISPATCH plane);
```
Синтаксис COM:
```
LPPART CreatePartInAssembly (LPOLESTR fileName,
LPENTITY plane);
Входные параметры:
fileName    - имя файла детали создаваемой в сборке,
plane    - указатель на интерфейс плоского объекта ksEntity или IEntity, к которому приклеивается деталь.
Возвращаемое значение:
- указатель на интерфейс детали, создаваемой в сборке ksPart или IPart.
```


## DefaultPlacement - Получить указатель на интерфейс умолчательной системы координат

Синтаксис Automation:
```
ksPlacement * DefaultPlacement();
```
Синтаксис COM:
```
LPPLACEMENT DefaultPlacement();
Возвращаемое значение:
- указатель на интерфейс ksPlacement.
```


## DeleteObject - Удалить объект: деталь, операцию, сопряжение

Синтаксис Automation:
```
BOOL DeleteObject (LPDISPATCH obj);
```
Синтаксис COM:
```
BOOL DeleteObject (LPUNKNOWN obj);
Входной параметр:
obj    - указатель на интерфейс IDispatch или IUnknown удаляемого объекта.
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```
Примечания:
1. Удалить можно любой трехмерный объект.
2. Если в качестве входного параметра переданы:
•поверхность ksFaceDefinition,
•ребро ksEdgeDefinition,
•вершина ksVertexDefinition,
то будет удален весь формообразующий элемент, которому принадлежит удаляемый объект.
3. Если в качестве входного параметра передано описание объекта, полученное методом ksEntity::GetDefinition, то после удаления недопустимо использование интерфейса описания удаленного объекта, породившего его интерфейса ksEntity и других интерфейсов удаленного объекта.


## dismantleMode - Разнесенный вид

Тип данных: BOOL
Значения свойства:
| TRUE | - разнесенный вид включен, |
| --- | --- |
| FALSE | - разнесенный вид выключен, |
Синтаксис:
```
dismantleMode = iDocument3D.dismantleMode    Получить свойство(* )
iDocument3D.dismantleMode = dismantleMode    Установить свойство (* )
dismantleMode = iDocument3D.GetDismantleMode()    Получить свойство (**)
iDocument3D.SetDismantleMode(dismantleMode)    Установить свойство (**)
```


## drawMode - Тип отображения модели

Тип данных: long
Значения свойства:
Из перечисления ViewMode
Синтаксис Automation:
```
drawMode = iDocument3D.drawMode    Получить свойство (* )
iDocument3D.drawMode = drawMode    Установить свойство (* )
drawMode = iDocument3D.GetDrawMode()    Получить свойство(**)
iDocument3D.SetDrawMode(drawMode)    Установить свойство (**)
```


## enableRollBackFeaturesInCollections - Выдавать в коллекциях объекты, исключенные указателем в дереве

Тип данных: BOOL
Синтаксис Automation:
```
enable = iDocument3D.enableRollBackFeaturesInCollections    Получить свойство (* )
iDocument3D.enableRollBackFeaturesInCollections = enable    Установить свойство (* )
enable = document.GetenableRollBackFeaturesInCollections()    Получить свойство(**)
document.SetenableRollBackFeaturesInCollections(enable)    Установить свойство(**)
```
Примечание:
По умолчанию объекты, исключенные с помощью указателя (зеленая полоска) дерева, не выдаются. Свойство используется для получения исключенных объектов дерева, которые можно использовать для изменения положения указателя в дереве.
См. функции ksDocument3D::GetRollBackFeature и ksDocument3D::SetRollBackFeature.


## EntityCollection - Получить указатель на интерфейс динамического массива объектов заданного типа, выбранных в документе

Синтаксис Automation:
```
LPDISPATCH EntityCollection (short objType, BOOL checkEntity);
```
Синтаксис COM:
```
LPENTITYCOLLECTION EntityCollection (short objType,BOOL checkEntity);
Входные параметры:
objType    - тип объектов, содержащихся в массиве,
checkEntity    - признак проверки для вновь добавляемых объектов на NULL (TRUE - проверка включена, FALSE - проверка выключена и в массив можно добавить NULL).
Возвращаемое значение:
- указатель на интерфейс динамического массива объектов ksEntityCollection или IEntityCollection.
```
Примечание:
Массив создается пустым. Метод Refresh для полученного массива не работает.


## ExcludeFeaturesAfter - Исключить\включить объекты после заданного

Синтаксис Automation:
```
BOOL ExcludeFeaturesAfter( LPDISPATCH obj,
BOOL exclude );
```
Синтаксис COM:
```
BOOL ExcludeFeaturesAfter( LPFEATURE obj,
BOOL exclude );
Входные параметры:
obj    - указатель на интерфейс объекта дерева ksFeature или IFeature, после которого нужно исключить из расчета объекты,
exclude    - TRUE - выключить объекты, - FALSE - включить объекты.
Возвращаемое значение:
TRUE    - в случае успеха,
FALSE    - в случае неудачи.
```


## FeatureCollection - Получить массив объектов, имеющих данный атрибут

Синтаксис Automation:
```
ksFeatureCollection * FeatureCollection (long key1,
long key2,
long key3,
long key4,
double numb,
int objType);
```
Синтаксис COM:
```
LPFEATURECOLLECTION * FeatureCollection (long key1,
long key2,
long key3,
long key4,
double numb,
int objType);
Входные параметры:
key1, key2, key3, key4    - ключи для поиска по ключам либо 0,
numb    - номер типа атрибута для поиска по номеру либо 0.
objType    - тип трехмерного объекта. Если objType = o3d_unknown - выдавать все объекты.
Возвращаемое значение:
указатель на интерфейс ksFeatureCollection группы массива объектов Дерева построения,
```
Примечания:
Атрибут - это дополнительная неграфическая информация, связанная с объектом или несколькими объектами чертежа. Такая информация может быть представлена в виде числа, строки текста, а также таблицы с фиксированным или переменным числом строк.
В дальнейшем значения атрибутов могут использоваться для поиска объектов, а также обрабатываться различными приложениями (например, системой проектирования спецификаций, различными расчетными программами и т.п.).
Типы (описания структуры) атрибутов могут храниться как непосредственно в документе, так и в специальных файлах (библиотеках типов атрибутов). Эти файлы имеют расширение lat.


## fileName - Имя файла документа (трехмерной модели)

Тип данных: строка
Синтаксис Automation:
```
fileName = document.fileName    Получить свойство (* )
document.fileName = fileName    Установить свойство (* )
fileName = document.GetFileName()    Получить свойство (**)
document.SetFileName(fileName)    Установить свойство (**)
```
Синтаксис COM:
```
fileName = document->GetFileName()    Получить свойство
document->SetFileName(fileName)    Установить свойство
```


## GetChooseMng - Получить указатель на интерфейс менеджера выбора (подсветки) объектов

Синтаксис Automation:
```
LPDISPATCH GetChooseMng();
```
Синтаксис COM:
```
LPCHOOSEMNG GetChooseMng();
Возвращаемое значение:
- указатель на интерфейс ksChooseMng или IChooseMng.
```


## GetDocument3DNotify - Получить указатель на интерфейс источника событий для документа-модели

Синтаксис Automation:
```
Document3DNotify* GetDocument3DNotify();
Возвращаемое значение:
Указатель на источник событий Document3DNotify    - в случае успеха.
```


## GetDocument3DNotifyResult - Дополнительные параметры для событий документа 3D

Синтаксис Automation:
```
LPDISPATCH GetDocument3DNotifyResult();
```
Синтаксис COM:
```
IDocument3DNotifyResult * GetDocument3DNotifyResult();
Возвращаемое значение:
Указатель на интерфейс дополнительных параметров для события 3D документа IDocument3DNotifyResult, ksDocument3DNotifyResult
```
Примечание:
Интерфейс позволяет получить указатель на объект для которого посылается данное событие. Например, выбор материала и обозначения доступны для верхнего компонента, вставки и тела.


## GetEditMacroObject - Получить редактируемый макроэлемент 3D

Синтаксис Automation:
```
LPDISPATCH GetEditMacroObject();
```
Синтаксис COM:
```
LPENTITY GetEditMacroObject();
Возвращаемое значение:
- Указатель на интерфейс редактируемого макроэлемента ksEntity.
```


## GetInterface - Получить интерфейс 3D объекта по типу

Синтаксис Automation:
```
LPDISPATCH GetInterface (long o3dType);
```
Синтаксис COM:
```
LPUNKNOWN GetInterface (long o3dType);
Входные параметры:
o3dType    - тип интерфейса.
Возвращаемое значение:
Указатель на заданный интерфейс    - в случае успеха,
NULL    - в случае неудачи.
Список интерфейсов, возвращаемых функцией GetInterface и функцией ksDocument3D::GetInterface.
```


## Интерфейсы, возвращаемые функцией ksDocument3D::GetInterface

| Идентификатор объекта | Название объекта | Интерфейс |
| --- | --- | --- |
| o3d_coordinate3dCollection | Интерфейс коллекции координат | ksCoordinate3dCollection |
| o3d_faceCollection | Интерфейс коллекции граней | ksFaceCollection |


## GetLastFeature - Получить последний объект в дереве

Синтаксис Automation:
```
LPDISPATCH GetLastFeature()
```
Синтаксис COM:
```
LPFEATURE GetLastFeature()
Возвращаемое значение:
Указатель на объект дерева ksFeature или IFeature    - в случае успеха,
NULL    - в случае неудачи.
```


## GetMateConstraint - Получить указатель на интерфейс нового временного сопряжения

Синтаксис Automation:
```
LPDISPATCH GetMateConstraint();
```
Синтаксис COM:
```
LPMATECONSTRAINT GetMateConstraint();
Возвращаемое значение:
- указатель на интерфейс нового сопряжения ksMateConstraint или IMateConstraint.
```
Примечания:
1. Сопряжения бывают постоянными и временными. Временные сопряжения, в отличие от постоянных, существуют только в течении процесса указания местоположения или объектов. Процесс запускается методом ksDocument3D::UserGetPlacementAndEntity. Постоянные сопряжения создаются с помощью метода ksDocument3D::AddMateConstraint.
2. Для создания временного сопряжения в модели после получения указателя на его интерфейс с помощью данного метода и изменения параметров создаваемого сопряжения используется метод ksMateConstraint::Create.
3. Пример использования методов создания временных и постоянных сопряжений приведен в демонстрационной библиотеке построения модели стандартного изделия (шпильки), которая сохранена в файле STUDS3D.rtw.


## GetObjectType - Получить тип объекта

Синтаксис Automation:
```
long GetObjectType (LPDISPATCH obj);
```
Синтаксис COM:
```
int GetObjectType (LPUNKNOWN obj);
Входной параметр:
obj    - указатель на интерфейс IDispatch или IUnknown трехмерного объекта.
Возвращаемое значение:
- тип объекта Obj3dType.
```
Примечания:
Данный метод удобно использовать для приведения базового интерфейса (IUnknown в COM и IDispatch в Automation) к конечному трехмерному интерфейсу. Зная тип объекта, можно привести его к соответствующему интерфейсу.


## GetObjParam - Получить параметры объекта

Аналог данного метода при использовании API экспортных функций - GetObjParam.
Синтаксис Automation:
```
long ksGetObjParam (long reference, LPDISPATCH param, long paramType);
Входные параметры:
reference    - указатель на объект,
paramType    - тип параметров,
param    - указатель на интерфейс параметров ksUserParam.
Возвращаемое значение:
тип объекта    - в случае удачного завершения,
0    - в случае неудачи.
```


## GetPart - Получить указатель на интерфейс компонента в соответствии с заданным типом

Синтаксис Automation:
```
LPDISPATCH GetPart (long type);
```
Синтаксис COM:
```
LPPART GetPart(int type);
Входной параметр:
type    - тип компонента из перечисления Типы компонентов.
Возвращаемое значение:
- указатель на интерфейс компонента ksPart или IPart.
```
Примечание:
Тип задается для нового, редактируемого или главного компонента либо тип равен номеру компонента в документе.
Функция используется, чтобы получить доступ к компоненту документа.
Деталь или сборка являются компонентами. Сборка, в свою очередь, состоит из компонентов - деталей и подсборок.


## GetRequestInfo - Получить указатель интерфейса параметров запроса к системе ksRequestInfo3D

Синтаксис Automation:
```
LPDISPATCH GetRequestInfo (LPDISPATCH part);
```
Синтаксис COM:
```
LPREQUESTINFO GetRequestInfo (LPPART part);
Входной параметр:
part    - указатель на интерфейс компонента (детали или подсборки) ksPart или IPart.
Возвращаемое значение:
- указатель на интерфейс параметров запроса к системе ksRequestInfo3D или IRequestInfo.
См. также интерфейс параметров запроса к системе ksRequestInfo3D
```


## GetRollBackFeature - Получить положение указателя в дереве

Синтаксис Automation:
```
LPDISPATCH GetRollBackFeature( );
```
Синтаксис COM:
```
LPFEATURE GetRollBackFeature();
Возвращаемое значение:
- указатель на объект дерева ksFeature или IFeature, после которого установлен указатель,    - в случае успешного завершения,
FALSE.    - в случае неудачи.
```


## GetSelectionMng - Получить указатель на интерфейс менеджера выделенных объектов

Синтаксис Automation:
```
LPDISPATCH GetSelectionMng();
```
Синтаксис COM:
```
LPSELECTIONMNG GetSelectionMng();
Возвращаемое значение:
указатель на интерфейс ksSelectionMng или ISelectionMng.
```


## GetSpecification - Получить указатель на интерфейс для работы с объектами спецификации

Синтаксис Automation:
```
LPDISPATCH GetSpecification();
Возвращаемое значение:
- указатель на интерфейс для работы с объектами спецификации ksSpecification.
```


## GetViewProjectionCollection - Получить указатель на интерфейс массива проекций отображения модели в окне

Синтаксис Automation:
```
LPDISPATCH GetViewProjectionCollection();
```
Синтаксис COM:
```
LPVIEWPROJECTIONCOLLECTION GetViewProjectionCollection();
Возвращаемое значение:
- указатель на интерфейс ksViewProjectionCollection или IViewProjectionCollection.
```


## hideAllAuxiliaryGeom - Скрыть/показать все вспомогательные объекты

Тип данных: BOOL
Синтаксис:
```
hideAllAuxiliaryGeom = Object.hideAllAuxiliaryGeom    Получить свойство (* )
Object.hideAllAuxiliaryGeom = hideAllAuxiliaryGeom    Установить свойство (* )
hideAllAuxiliaryGeom = Object.GetHideAllAuxiliaryGeom()    Получить свойство (**)
Object.SetHideAllAuxiliaryGeom( hideAllAuxiliaryGeom )    Установить свойство (**)
```
Примечание:
В зависимости от флага hideInComponentsMode позволяет скрыть или показать все вспомогательные объекты в документе или, если документ является сборкой, во вставках.


## hideAllAxis - Скрыть\показать конструктивные оси

Тип данных: BOOL
Значения свойства:
| TRUE | - скрыть конструктивные оси, |
| --- | --- |
| FALSE | - показать конструктивные оси. |
Синтаксис Automation:
```
hideAllAxis = iDocument3D.hideAllAxis    Получить свойство(* )
iDocument3D.hideAllAxis = hideAllAxis    Установить свойство(* )
hideAllAxis = iDocument3D.GetHideAllAxis()    Получить свойство(**)
iDocument3D.SetHideAllAxis(hideAllAxis)    Установить свойство (**)
```
Примечание:
В зависимости от флага hideInComponentsMode позволяет скрыть или показать все вспомогательные объекты в документе или, если документ является сборкой, во вставках.


## HideAllControlPoints - Скрыть/показать контрольные точки

Тип данных: BOOL
Значения свойства:
| TRUE | - контрольные точки скрыты, |
| --- | --- |
| FALSE | - контрольные очки показаны. |
Синтаксис COM:
```
BOOL HideAllControlPoints = iObject->GetHideAllControlPoints()    Получить свойство
iObject->SetHideAllControlPoints (HideAllControlPoints)    Установить свойство
Примечание.
Свойство только для СОМ-интерфейса IDocument3D.
```


## HideAllCurves - Скрыть/показать пространственные кривые

Тип данных: BOOL
Значения свойства:
| TRUE | - пространственные кривые скрыты, |
| --- | --- |
| FALSE | - пространственные кривые показаны. |
Синтаксис:
```
BOOL HideAllCurves = iObject->GetHideAllCurves()    Получить свойство
iObject->SetHideAllCurves (HideAllCurves)    Установить свойство
Примечание.
Свойство только для СОМ-интерфейса IDocument3D.
```


## hideAllDesignations - Скрыть/показать условные обозначения

Тип данных: BOOL
Синтаксис:
```
hideAllDesignations = Object.hideAllDesignations    Получить свойство (* )
Object.hideAllDesignations = hideAllDesignations    Установить свойство(* )
hideAllDesignations = Object.GetHideAllDesignations()    Получить свойство (**)
Object.SetHideAllDesignations(hideAllDesignations )    Установить свойство (**)
```
Примечание:
В зависимости от флага hideInComponentsMode позволяет скрыть или показать условные обозначения в документе или, если документ является сборкой, во вставках.


## hideAllDimensions - Скрыть/показать размеры

Тип данных: BOOL
Синтаксис:
```
hideAllDimensions = Object.hideAllDimensions    Получить свойство (* )
Object.hideAllDimensions = hideAllDimensions    Установить свойство (* )
hideAllDimensions = Object.GetHideAllDimensions()    Получить свойство (**)
Object.SetHideAllDimensions( hideAllDimensions )    Установить свойство (**)
```
Примечание:
В зависимости от флага hideInComponentsMode позволяет скрыть или показать размеры в документе или, если документ является сборкой, во вставках.


## hideAllPlaces - Скрыть\показать начала координат

Тип данных: BOOL
Значения свойства:
| TRUE | - скрыть начала координат, |
| --- | --- |
| FALSE | - показать начала координат. |
Синтаксис Automation:
```
iDocument3D.hideAllPlaces    Получить свойство (* )
iDocument3D.hideAllPlaces = hideAllPlaces    Установить свойство (* )
hideAllPlaces = iDocument3D.GetHideAllPlaces()    Получить свойство (**)
iDocument3D.SetHideAllPlaces(hideAllPlaces)    Установить свойство(**)
```
Примечание:
В зависимости от флага hideInComponentsMode позволяет скрыть или показать все вспомогательные объекты в документе или, если документ является сборкой, во вставках.


## hideAllPlanes - Скрыть\показать конструктивные плоскости

Тип данных: BOOL
Значения свойства:
| TRUE | - скрыть конструктивные плоскости, |
| --- | --- |
| FALSE | - показать конструктивные плоскости. |
Синтаксис Automation:
```
hideAllPlanes = iDocument3D.hideAllPlanes    Получить свойство (* )
iDocument3D.hideAllPlanes = hideAllPlanes    Установить свойство (* )
hideAllPlanes = iDocument3D.GetHideAllPlanes()    Получить свойство (**)
iDocument3D.SetHideAllPlanes( hideAllPlanes )    Установить свойство (**)
```
Примечание:
В зависимости от флага hideInComponentsMode позволяет скрыть или показать все вспомогательные объекты в документе или, если документ является сборкой, во вставках.


## hideAllSketches - Скрыть\показать эскизы

Тип данных: BOOL
Значения свойства:
| TRUE | - скрыть конструктивные эскизы, |
| --- | --- |
| FALSE | - показать конструктивные эскизы. |
Синтаксис Automation:
```
iDocument3D.hideAllSketches    Получить свойство (* )
iDocument3D.hideAllSketches = hideAllSketches    Установить свойство (* )
hideAllSketches = iDocument3D.GetHideAllSketches()    Получить свойство (**)
iDocument3D.SetHideAllSketches(hideAllSketches )    Установить свойство (**)
```
Примечание:
В зависимости от флага hideInComponentsMode позволяет скрыть или показать все вспомогательные объекты в документе или, если документ является сборкой, во вставках.


## hideAllSurfaces - Скрыть\показать поверхности

Тип данных: BOOL
Значения свойства:
| TRUE | - скрыть поверхности, |
| --- | --- |
| FALSE | - показать поверхности. |
Синтаксис Automation:
```
hideAllSurfaces = iDocument3D.hideAllSurfaces    Получить свойство (* )
iDocument3D.hideAllSurfaces = hideAllSurfaces    Установить свойство (* )
hideAllSurfaces = iDocument3D.GetHideAllSurfaces()    Получить свойство (**)
iDocument3D.SetHideAllSurfaces(hideAllSurfaces)    Установить свойство(**)
```
Примечание:
В зависимости от флага hideInComponentsMode позволяет скрыть или показать все вспомогательные объекты в документе или, если документ является сборкой, во вставках.


## hideAllThreads - Скрыть\показать обозначения резьбы

Тип данных; BOOL
Значения свойства:
| TRUE | - скрыть поверхности, |
| --- | --- |
| FALSE | - показать поверхности. |
Синтаксис Automation:
```
hideAllThreads = iDocument3D.hideAllThreads    Получить свойство (* )
iDocument3D.hideAllThreads = hideAllThreads    Установить свойство (* )
hideAllThreads = iDocument3D.GetHideAllThreads()    Получить свойство (**)
iDocument3D.SetHideAllThreads(hideAllThreads)    Установить свойство (**)
```
Примечание:
В зависимости от флага hideInComponentsMode позволяет скрыть или показать все вспомогательные объекты в документе или, если документ является сборкой, во вставках.


## hideInComponentsMode - Режим скрытия вспомогательной геометрии в компонентах

Тип данных: BOOL
Синтаксис:
```
hideInComponentsMode = Object.hideInComponentsMode    Получить свойство (* )
Object.hideInComponentsMode = hideInComponentsMode    Установить свойство (* )
hideInComponentsMode = Object.GetHideInComponentsMode()    Получить свойство(**)
Object.SetHideInComponentsMode(hideInComponentsMode )    Установить свойство(**)
```
Примечание:
Флаг позволяет для сборки включить режим работы с флагами скрытия вспомогательной геометрии во вставках или в документе.
Если флаг включен, то свойства: hideAllPlanes, hideAllAxis, hideAllSketches, hideAllPlaces, hideAllSurfaces, hideAllThreads, hideAllCurves, hideAllControlPoints, hideAllDimensions, hideAllDesignations, hideAllAuxiliaryGeom управляют признаками скрытия вспомогательной геометрии во вставках.


## hideLayoutGeometry - Скрыть/показать компоновочную геометрию

Тип данных: BOOL
Синтаксис:
```
hideLayoutGeometry = Object.hideLayoutGeometry    Получить свойство (* )
Object.hideLayoutGeometry = hideLayoutGeometry    Установить свойство (* )
hideLayoutGeometry = Object.GetHideLayoutGeometry()    Получить свойство (**)
Object.SetHideLayoutGeometry( hideLayoutGeometry )    Установить свойство (**)
```
Примечание:
В зависимости от флага hideInComponentsMode позволяет скрыть или показать компоновочную геометрию в документе или, если документ является сборкой, во вставке.


## invisibleMode - Режим редактирования документа

Тип данных: BOOL
Значения свойства:
| TRUE | - невидимый режим, |
| --- | --- |
| FALSE | - видимый режим. |
Синтаксис Automation:
```
InvisibleMode = document.invisibleMode    Получить свойство (* )
InvisibleMode = document.GetInvisibleMode ()    Получить свойство (**)
```
Синтаксис COM:
```
InvisibleMode = document->GetInvisibleMode ()    Получить свойство
```
Примечание:
Данное свойство предназначено только для чтения.


## IsActive - Получить состояние активности документа

Синтаксис Automation:
```
BOOL IsActive();
```
Синтаксис COM:
```
BOOL IsActive();
Возвращаемое значение:
TRUE    - документ является активным.
```


## IsDetail - Определить, является ли модель деталью

Синтаксис Automation:
```
BOOL IsDetail();
```
Синтаксис COM:
```
BOOL IsDetail();
Возвращаемое значение:
TRUE    - деталь,
FALSE    - сборка.
```


## IsEditMode - Определить, запущен ли какой-либо из компонентов на редактирование через библиотеку

Синтаксис Automation:
```
BOOL IsEditMode();
```
Синтаксис COM:
```
BOOL IsEditMode();
Возвращаемое значение:
TRUE    - редактирование компонента через библиотеку,
FALSE    - редактируемых компонентов нет.
```
Примечание:
Редактируемый компонент можно получить методом GetPart (pEdit_Part).


## ksDeleteObj - Удалить объект

Аналог данного метода при использовании API экспортных функций - DeleteObj.
Синтаксис Automation:
```
long ksDeleteObj (long ref);
```
Синтаксис COM:
```
long ksDeleteObj (long ref);
Входные параметры:
ref    - указатель на удаляемый объект.
Возвращаемое значение:
1    - в случае успешного завершения.
```


## ksGetObjParam - Получить параметры объекта

Аналог данного метода при использовании API экспортных функций - GetObjParam.
Синтаксис Automation:
```
long ksGetObjParam (long reference, LPDISPATCH param, long paramType);
Входные параметры:
reference    - указатель на объект,
paramType    - тип параметров объекта или индекс строки в массиве для объектов TECHNICALDEMAND_OBJ и TEXT_OBJ или номер страницы (габаритного прямоугольника) технических требований (TECHNICALDEMAND_OBJ),
Param    - указатель на интерфейс параметров ksUserParam.
Возвращаемое значение:
Тип объекта    - в случае успешного завершения,
0    - в случае неудачи.
```
Примечание:
Вызов метода с нулевыми значениями параметров param и parType позволяет получить тип объекта по его reference.


## ksIsSlaveSpcOpened - Открыто ли окно спецификации в Slave режиме

Синтаксис Automation:
```
int ksIsSlaveSpcOpened();
```
Синтаксис COM:
```
int ksIsSlaveSpcOpened();
Возвращаемое значение:
0    - окно спецификации в Slave режиме не откр\ыто,
1    - окно спецификации в Slave режиме открыто,
2    - окно спецификации в Slave режиме открыто и активно.
```


## ksSetObjParam - Установить параметры объекта

Аналог данного метода при использовании API экспортных функций - SetObjParam.
Синтаксис Automation:
```
long ksSetObjParam (long reference, LPDISPATCH param, long paramType);
Входные параметры:
reference    - указатель на объект,
paramType    - тип параметров объекта или индекс строки в массиве для объектов TECHNICALDEMAND_OBJ и TEXT_OBJ или номер страницы (габаритного прямоугольника) технических требований (TECHNICALDEMAND_OBJ),
Param    - указатель на интерфейс параметров ksUserParam.
Возвращаемое значение:
1    - в случае успешного завершения,
0    - в случае неудачи.
```


## LoadFromAdditionFormat - Загрузить документ из дополнительных форматов jgs, sat, xt, x_b, step, stl, jt, C3D

Синтаксис Automation:
```
BOOL LoadFromAdditionFormat( BSTR fileName, LPDISPATCH additionPar );
```
Синтаксис COM:
```
BOOL LoadFromAdditionFormat( LPOLESTR fileName, LPADDITIONFORMATPARAM additionPar );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
Выходные параметры:
fileName    - имя файла,
additionPar    - указатель на интерфейс ksAdditionFormatParam или IAdditionFormatParam, определяющий параметры записи в дополнительный формат,
```


## MateConstraintCollection - Получить интерфейс параметров массива сопряжений компонента сборки

Синтаксис Automation:
```
LPDISPATCH MateConstraintCollection();
```
Синтаксис COM:
```
LPMATECONSTRAINTCOLLECTION MateConstraintCollection();
Возвращаемое значение:
Указатель на интерфейс коллекции сопряжений текущей редактируемой сборки или подсборки IMateConstraintCollection ksMateConstraintCollection
```


## matesMultiCreatedMode - Режим группового создания сопряжений

Тип данных: BOOL
Синтаксис:
```
matesMultiCreatedMode = Object.matesMultiCreatedMode    Получить свойство (* )
Object.matesMultiCreatedMode = matesMultiCreatedMode    Установить свойство (* )
matesMultiCreatedMode = Object.GetMatesMultiCreatedMode()    Получить свойство (**)
Object.SetMatesMultiCreatedMode( matesMultiCreatedMode )    Установить свойство (**)
```


## Open - Открыть на редактирование документ-модель (деталь или сборку)

Синтаксис Automation:
```
BOOL Open (BSTR fileName, BOOL invisible);
```
Синтаксис COM:
```
BOOL Open (LPOLESTR fileName, BOOL invisible);
Входные параметры:
fileName    - имя файла открываемого документа,
invisible    - признак режима редактирования документа (TRUE – невидимый режим, FALSE - видимый режим).
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```


## PartCollection - Получить указатель на интерфейс динамического массива компонентов, вставленных в сборку

Синтаксис Automation:
```
LPDISPATCH PartCollection (BOOL refresh)
```
Синтаксис COM:
```
LPPARTCOLLECTION PartCollection (BOOL refresh);
Входные параметры:
refresh    - TRUE - полученный массив будет заполнен компонентами данной сборки или детали, - FALSE - полученный массив будет пустым.
Возвращаемое значение:
- указатель на интерфейс динамического массива компонентов, вставленных в сборку ksPartCollection или IPartCollection.
```


## perspective - Признак отображения модели в перспективной проекции

Тип данных: BOOL
Значения свойства:
| TRUE | - перспективная проекция включена, |
| --- | --- |
| FALSE | - перспективная проекция выключена. |
Синтаксис Automation:
```
perspective = iDocument3D.perspective    Получить свойство (* )
iDocument3D.perspective = perspective    Установить свойство (* )
perspective = iDocument3D.GetPerspective()    Получить свойство (**)
iDocument3D.SetPerspective(perspective)    Установить свойство (**)
```


## PlaceFeatureAfter - Поставить объект дерева после другого объекта дерева

Синтаксис Automation:
```
BOOL PlaceFeatureAfter( LPDISPATCH obj, LPDISPATCH afterObj );
```
Синтаксис COM:
```
BOOL PlaceFeatureAfter( LPFEATURE obj, LPFEATURE afterObj );
Входные параметры:
obj    - указатель на перемещаемый объект дерева ksFeature или IFeature,
afterObj    - указатель на объект дерева, после которого нужно установить заданный объект ksFeature или IFeature,
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```


## RasterFormatParam - Получить указатель на интерфейс параметров сохранения документа в растровом формате

Синтаксис Automation:
```
LPDISPATCH RasterFormatParam();
```
Синтаксис COM:
```
LPRASTERFORMATPARAM RasterFormatParam();
Возвращаемое значение:
- указатель на интерфейс ksRasterFormatParam или IRasterFormatParam.
```


## RebuildDocument - Перестроить документ-модель

Синтаксис Automation:
```
BOOL RebuildDocument();
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```


## reference - Указатель документа-модели (детали, сборки)

Тип данных: long
Синтаксис Automation:
```
ref = iDocument3D.reference    Получить свойство (* )
iDocument3D.reference = ref    Установить свойство(* )
ref = document.GetReference ()    Получить свойство (**)
document.SetReference (ref)    Установить свойство (**)
```
Примечание:
Свойство определяет указатель на трехмерную модель в стиле API графических документов. Позволяет использовать функционал атрибутов и итераторов.


## RemoveMateConstraint - Удалить сопряжение из сборки

Синтаксис Automation:
```
BOOL RemoveMateConstraint (long constraintType,
LPDISPATCH object1,
LPDISPATCH object2);
```
Синтаксис COM:
```
BOOL RemoveMateConstraint (unsigned int constraintType,
LPENTITY obj1,
LPENTITY obj2);
Входные параметры:
constraintType    - тип сопряжения из перечисления MateConstraintType,
object1    - указатель на интерфейс первого объекта, на который наложено сопряжение (ksEntity или IEntity),
object2    - указатель на интерфейс второго объекта, на который наложено сопряжение (ksEntity или ksEntity).
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```


## RunTakeCreateObjectProc - Запустить подчиненный режим создания объектов

Синтаксис Automation:
```
BOOL RunTakeCreateObjectProc( long processType, LPDISPATCH takeObject, BOOL needCreateTakeObj, BOOL lostTakeObj )
```
Синтаксис COM:
```
BOOL RunTakeCreateObjectProc( long processType, LPUNKNOWN takeObject, BOOL needCreateTakeObj, BOOL lostTakeObj );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
Выходные параметры:
ProcessType    - тип подпроцесса,
TakeObject    - указатель на интерфейс редактируемого в подпроцессе объекта.
NeedCreateTakeObj    - необходимость создания объекта в подпроцессе,
LostTakeObj    - TRUE - фиксировать параметры создаваемого объекта.
Функция позволяет запустить следующие подпроцессы
prPoint3D    Точка 3D
prAxisByDirection    Ось через вершину по объекту
prCAxis2Points    Ось по двум точкам
prCAxis2Planes    Ось по двум плоскостям
prCAxisConeface    Ось конической грани
prCAxisEdge    Ось, проходящая через ребро
prContour3D    Контур 3D
prLocalCoordinateSystem    Локальная система координат
prIsoparamCurve    Изопараметрическая кривая
prEquidistant3D    Эквидистанта 3D
prCPlaneOffset    Смещённая плоскость
prCPlane3Points    Плоскость по 3-м точкам
prCPlaneAngle    Плоскость под углом
prCPlaneEdgePoint    Плоскость через ребро и вершину
prCPlaneParallel    Плоскость через вершину параллельно другой плоскости
prCPlanePerpendicular    Плоскость через вершину перпендикулярно ребру
prCPlaneNormalToSurface    Нормальная плоскость
prCPlaneTangentToSurface    Касательная плоскость
prCPlaneLineToEdge    Плоскость через ребро параллельно/перпендикулярно другому ребру
prCPlaneLineToFlat    Плоскость через ребро параллельно/перпендикулярно грани
prCPlaneMiddle    Средняя плоскость
prCPlaneTangentAtPoint    Плоскость, касательная к грани в точке
prCPlaneAtCurve    Плоскость через плоскую кривую
prMateParallel    Сопряжения компонентов - Параллельность
prMatePerpendicular    Сопряжения компонентов - Перпендикулярность
prMateOnDistance    Сопряжения компонентов - На расстоянии
prMateOnAngle    Сопряжения компонентов - Под углом
prMateTangent    Сопряжения компонентов - Касание
prMateConcentric    Сопряжения компонентов - Соосность
prMateCoincident    Сопряжения компонентов - Совпадение
prMateSymmetry    Сопряжения компонентов - Симметрия
prMateDependent    Сопряжения компонентов - Зависимое положение
```


## Save - Cохранить документ-модель (деталь или сборку) в файл с заданным ранее именем

Синтаксис Automation:
```
BOOL Save();
```
Синтаксис COM:
```
BOOL Save();
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```
Примечание:
Имя файла документа задается свойством fileName.


## SaveAs - Cохранить документ-модель (деталь или сборку) с новым именем

Синтаксис Automation:
```
BOOL SaveAs (BSTR fileName);
```
Синтаксис COM:
```
BOOL SaveAs (LPOLESTR fileName);
Входной параметр:
fileName    - имя файла документа.
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```


## SaveAsEx - Сохранить документ с новым именем файла

Синтаксис Automation:
```
BOOL SaveAsEx (BSTR fileName, long saveMode);
```
Синтаксис COM:
```
BOOL SaveAsEx (LPOLESTR fileName, long saveMode);
Входные параметры:
fileName    - новое имя файла документа,
saveMode    - версия для сохранения: -1 - в предыдущую версию, 0 - в текущую версию, 1 - в версию 5.11.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Если fileName = NULL, то используется имя файла из документа. Если же и в документе отсутствует имя файла, то взводится ошибка.


## SaveAsToAdditionFormat - Сохранить модель в файле формата SAT, XT, STEP, IGES, VRML, STL

Синтаксис Automation:
```
BOOL SaveAsToAdditionFormat (BSTR fileName,
LPDISPATCH additionPar);
```
Синтаксис COM:
```
BOOL SaveAsToAdditionFormat (LPOLESTR fileName,
LPADDITIONFORMATPARAM additionPar );
Входные параметры:
fileName    - полное имя файла, в который сохраняется модель,
additionPar    - указатель на интерфейс ksAdditionFormatParam или IAdditionFormatParam, определяющий параметры записи в дополнительный формат.
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```


## SaveAsToRasterFormat - Сохранить документ в растровом файле

Синтаксис Automation:
```
BOOL SaveAsToRasterFormat (BSTR fileName,
LPDISPATCH rasterPar);
```
Синтаксис COM:
```
BOOL SaveAsToRasterFormat (LPOLESTR fileName,
LPRASTERFORMATPARAM rasterPar );
Входные параметры:
fileName    - полное имя файла, в который сохраняется модель,
rasterPar    - указатель на интерфейс ksRasterFormatParam или IRasterFormatParam, определяющий параметры записи в растровый формат.
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```
Примечание:
Метод позволяет сохранить присланный документ в растровом формате (BMP, GIF, JPG, PNG, TIF, TGA, PCX, EMF и WMF) с заданными свойствами.
Сохранение в WMF формат не поддерживается. При сохранении в WMF формате файл записывается в формате EMF.


## SaveAsToUncompressedRasterFormat - Cохранить документ в растровый формат

Синтаксис Automation:
```
BOOL SaveAsToUncompressedRasterFormat (BSTR fileName, LPDISPATCH rasterPar);
```
Синтаксис COM:
```
BOOL SaveAsToUncompressedRasterFormat (LPOLESTR fileName, LPRASTERFORMATPARAM rasterPar );
Выходные параметры:
fileName    - Имя файла документа. Задается полное имя файла,
rasterPar    - Указатель на интерфейс ksRasterFormatParam или IRasterFormatParam, определяющий параметры конвертации в растровый формат.
Возвращаемое значение:
TRUE    - в случае успеха,
FALSE    - в случае неудачи.
```
Примечания:
Метод позволяет сохранить документ в растровый формат (BMP, GIF, JPG, PNG, TIF, TGA, PCX, EMF и WMF) без сжатия, с заданными свойствами.
Сохранение в WMF формат не поддерживается. При сохранении в WMF формате файл записывается в формате EMF.
Подробнее см. описание интерфейса ksRasterFormatParam. Для API экспортных функций - метод ksSaveAsToUncompressedRasterFormat.


## SetActive - Сделать документ текущим

Синтаксис Automation:
```
BOOL SetActive();
```
Синтаксис COM:
```
BOOL SetActive();
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```


## SetPartFromFile - Вставить в модель компонент ссылкой на внешний файл или телом

Синтаксис Automation:
```
BOOL SetPartFromFile (BSTR fileName,
LPDISPATCH part,
BOOL externalFile);
```
Синтаксис COM:
```
BOOL SetPartFromFile (LPOLESTR fileName,
LPPART part,
BOOL externalFile);
Входные параметры:
fileName    - имя файла, из которого будет вставлен компонент,
part    - указатель на интерфейс компонента, который будет вставлен в документ (ksPart или IPart),
externalFile    - признак сохранения связи с файлом-источником (TRUE - вставка со ссылкой на внешний файл, FALSE - вставка "телом", без сохранения ссылки на источник).
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```
Примечание:
При вставке из файла указывается полный путь к файлу. При вставке из библиотеки моделей указывается полный путь к файлу библиотеки и путь внутри библиотеки моделей (например, "C:\\standard.l3d|Крепежные элементы|Болты|Болт_1").


## SetPartFromFileEx - Вставить в модель компонент из файла или из библиотеки моделей

Синтаксис Automation:
```
BOOL SetPartFromFileEx (BSTR fileName, LPDISPATCH part, BOOL externalFile, BOOL redraw);
```
Синтаксис COM:
```
BOOL SetPartFromFileEx (LPOLESTR fileName, LPPART part, BOOL externalFile, BOOL redraw);
Входные параметры:
fileName    - имя файла, из которого будет вставлен компонент,
part    - указатель на интерфейс компонента, который будет вставлен в документ (ksPart или IPart),
externalFile    - признак сохранения связи с файлом-источником: (TRUE - вставка со ссылкой на внешний файл, FALSE - вставка "телом", без сохранения ссылки на источник),
redraw    - признак перестроения документа после вставки компонента: (TRUE - перестроить документ, FALSE - не перестраивать).
Возвращаемое значение:
TRUE    - в случае успеха,
FALSE    - в случае неудачи.
```
Примечания:
При вставке из файла указывается полный путь к файлу. При вставке из библиотеки моделей указывается полный путь к файлу библиотеки и путь внутри библиотеки моделей (например, "C:\\standard.l3d|Крепежные элементы|Болты|Болт_1").


## SetRollBackFeature - Установить положение указателя в дереве

Синтаксис Automation:
```
BOOL SetRollBackFeature( LPDISPATCH obj );
```
Синтаксис COM:
```
BOOL SetRollBackFeature( LPFEATURE obj );
Входные параметры:
obj    - указатель на объект дерева ksFeature или IFeature, после которого нужно установить указатель.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```


## shadedWireframe - Полутоновое изображение с каркасом объектов активного окна документа-модели

Тип данных: BOOL
Значения свойства:
| TRUE | - полутоновое изображение с каркасом объектов включено, |
| --- | --- |
| FALSE | - полутоновое изображение с каркасом объектов выключено. |
Синтаксис:
```
shadedWireframe = iDocument3D.shadedWireframe    Получить свойство (* )
iDocument3D.shadedWireframe = shadedWireframe    Установить свойство(* )
shadedWireframe = iDocument3D.GetShadedWireframe()    Получить свойство (**)
iDocument3D.SetShadedWireframe(shadedWireframe)    Установить свойство (**)
```


## StopLibRequest - Остановить текущий процесс

Синтаксис Automation:
```
BOOL StopLibRequest();
```
Синтаксис COM:
```
BOOL StopLibRequest();
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Процесс должен быть предварительно запущен функцией UserGetPlacementAndEntity.


## treeNeedRebuild - Необходимость перестроения дерева при изменении его состава

Тип данных: BOOL
Значения свойства:
| TRUE | - разрешить перестраивать дерево, |
| --- | --- |
| FALSE | - запретить перестраивать дерево. |
Синтаксис:
```
treeNeedRebuild = iDocument3D.treeNeedRebuild    Получить свойство(* )
iDocument3D.treeNeedRebuild = treeNeedRebuild    Установить свойство (* )
treeNeedRebuild = iDocument3D.GetTreeNeedRebuild()    Получить свойство (**)
iDocument3D.SetTreeNeedRebuild (treeNeedRebuild)    Установить свойство (**)
```
Примечания:
1. Так как после вызова ksEntity::Update у любого объекта модель будет перестраиваться, то для ускорения при перестроении группы объектов, кроме закрытия самого перестроения ksPart::needRebuild, можно также закрыть отрисовку дерева, если она не нужна.
2. При использовании данного свойства нужно запоминать его значение и после окончания работы с ним возвращать его в первоначальное состояние.


## UpdateDocumentParam - Активизировать измененные параметры документа

Синтаксис Automation:
```
BOOL UpdateDocumentParam();
```
Синтаксис COM:
```
BOOL UpdateDocumentParam();
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```


## UserGetCursor - Запустить процесс указания местоположения точки

Синтаксис Automation:
```
BOOL UserGetCursor (BSTR prompt, double * x, double * y, double * z);
```
Синтаксис COM:
```
BOOL UserGetCursor (LPOLESTR prompt, double * x, double * y, double * z);
Входные параметры:
promt    - строка подсказки для пользователя.
Выходные параметры:
x    - координата x точки, указанной пользователем,
y    - координата y точки, указанной пользователем,
z    - координата z точки, указанной пользователем.
Возвращаемое значение:
TRUE    - в случае успешного завершения (пользователь указал точку).
```


## UserGetPlacementAndEntity - Запустить процесс указания местоположения или объектов

Синтаксис Automation:
```
BOOL UserGetPlacementAndEntity(long entityCount);
```
Синтаксис COM:
```
BOOL UserGetPlacementAndEntity(long entityCount);
Входной параметр:
entityCount    - максимальное количество объектов, которое может быть одновременно указано в процессе.
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```
Примечание:
Параметры настройки процесса задаются с помощью интерфейса ksRequestInfo3D.
Массив объектов необходимо заполнить вручную в CallBack-функции.
В интерфейсе ksRequestInfo3D определен доступ к массиву объектов, который заполняется в процессе.
Для процесса можно задать строку приглашения и функции обратной связи для фильтрации объектов и выбора объекта.
Алгоритм работы процесса:
Разработчик определяет значение entityCount, текст строки приглашения, функции обратной связи и запускает процесс.
При захвате курсором объекта модели этот объект передается в функцию фильтрации, где можно проверить его тип и сообщить процессу, подходит объект или нет.
Если объект подходит, то он подсвечивается на экране.
После указания объекта он передается в функцию выбора, где его можно добавить в массив объектов и изменить строку приглашения.
Объекты, попавшие в массив, выделяются на экране.
После выхода из процесса массив остается доступным до очередного вызова функции GetRequestInfo.


## UserSelectEntity - Запустить процесс выбора объекта

Синтаксис Automation:
```
LPDISPATCH UserSelectEntity (LPDISPATCH defObject,
LPCTSTR methodName,
LPCTSTR prompt,
long hInstance,
LPDISPATCH dispatchOCX);
Входные параметры:
defObject    - указатель на объект по умолчанию, который будет подсвечен при запуске процесса,
methodName    - название функции фильтрации или NULL,
prompt    - строка подсказки или NULL,
hInstance    - hInstance модуля, в котором находится функция фильтрации,
dispatchOCX    - интерфейс, в котором находится функция фильтрации, если hInstance не доступен.
Тип функции фильтрации:
bool WINAPI SELECTFILTERPROC (LPDISPATCH _entity)
Пользователь может указать процессу, подходит ему по каким-то соображениям присланный объект или нет. Если функция фильтрации возвращает TRUE, значит, объект подходит, и он будет подсвечен процессом.
Возвращаемое значение:
указатель на интерфейс ksEntity объекта, который выделили в процессе выбора    - в случае успешного завершения,
NULL    - в случае отказа.
```
Синтаксис COM:
```
LPENTITY UserSelectEntity (LPENTITY defObject,
USERSELECTFILTERPROC methodName,
LPOLESTR prompt);
Входные параметры:
defObject    - указатель на объект по умолчанию, который будет подсвечен при запуске процесса,
methodName    - название функции фильтрации или NULL,
prompt    - строка приглашения или NULL.
Тип функции фильтрации:
typedef BOOL (__stdcall * USERSELECTFILTERPROC)(LPENTITY);
Пользователь может указать процессу, подходит ему по каким-то соображениям присланный объект или нет. Если функция фильтрации возвращает TRUE, значит, объект подходит, и он будет подсвечен процессом.
Возвращаемое значение:
указатель на интерфейс IEntity объекта, который выделили в процессе выбора    - в случае успешного завершения,
NULL    - в случае отказа.
```


## UserSelectEntityEx - Запустить процесс выбора объекта (позволяет использовать Панель свойств)

Синтаксис Automation:
```
LPDISPATCH UserSelectEntityEx( LPDISPATCH filterObject,
BSTR methodName,
BSTR prompt,
long hInst,
LPDISPATCH val,
LPUNKNOWN processParam );
Входные параметры:
filterObject    - указатель на объект по умолчанию, который будет подсвечен при запуске процесса,
methodName    - название функции фильтрации или NULL,
prompt    - строка подсказки или NULL,
hInst    - hInstance модуля, в котором находится функция фильтрации,
val    - интерфейс, в котором находится функция фильтрации, если hInstance не доступен,
processParam    - Параметры процесса IProcessParam.
Тип функции фильтрации:
bool WINAPI SELECTFILTERPROC (LPDISPATCH _entity)
Пользователь может указать процессу, подходит ему по каким-то соображениям присланный объект или нет. Если функция фильтрации возвращает TRUE, значит, объект подходит, и он будет подсвечен процессом.
Возвращаемое значение:
указатель на интерфейс ksEntity объекта, который выделили в процессе выбора    - в случае успешного завершения,
NULL    - в случае отказа.
```
Синтаксис COM:
```
LPENTITY UserSelectEntityEx(LPENTITY defSelectObject,
void* fnFilter,
LPOLESTR prompt,
LPUNKNOWN processParam );
Входные параметры:
defSelectObject    - указатель на объект по умолчанию, который будет подсвечен при запуске процесса,
fnFilter    - название функции фильтрации или NULL,
prompt    - строка приглашения или NULL,
processParam    - Параметры процесса IProcessParam.
Тип функции фильтрации:
typedef BOOL (__stdcall * USERSELECTFILTERPROC)(LPENTITY);
Пользователь может указать процессу, подходит ему по каким-то соображениям присланный объект или нет. Если функция фильтрации возвращает TRUE, значит, объект подходит, и он будет подсвечен процессом.
Возвращаемое значение:
указатель на интерфейс IEntity объекта, который выделили в процессе выбора    - в случае успешного завершения,
NULL    - в случае отказа.
```
Примечание:
Функция устарела. Использование данной функции может привести к ошибке в библиотеке, собранной с конфигурацией x64.
Рекомендуется использовать функцию ksDocument3D::UserSelectEntityEx2.


## UserSelectEntityEx2 - Запустить процесс выбора объекта (позволяет использовать Панель свойств)

Синтаксис Automation:
```
LPDISPATCH UserSelectEntityEx2(LPDISPATCH filterObject,
BSTR methodName, BSTR prompt,
VARIANT hInst, [defaultvalue(0)]LPDISPATCH val, [defaultvalue(0)]LPUNKNOWN processParam );
Входные параметры:
filterObject    - указатель на объект по умолчанию, который будет подсвечен при запуске процесса,
methodName    - название функции фильтрации или NULL,
prompt    - строка подсказки или NULL,
hInst    - hInstance модуля, в котором находится функция фильтрации,
val    - интерфейс, в котором находится функция фильтрации, если hInstance не доступен,
processParam    - параметры процесса IProcessParam.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FАLSE    - в случае неудачи.
Аналог функции в COM см. IRequestInfo3D::SetCallBack.
Тип функции фильтрации:
bool WINAPI SELECTFILTERPROC (LPDISPATCH _entity)
Пользователь может указать процессу, подходит ему по каким-то соображениям присланный объект или нет. Если функция фильтрации возвращает TRUE, значит объект подходит, и он будет подсвечен процессом.
Возвращаемое значение:
указатель на интерфейс IEntity объекта, который выделили в процессе выбора    - в случае успешного завершения,
NULL    - в случае отказа.
```
Примечание:
HINSTANCE библиотеки нужно передать через VARIANT, как VT_I4 в Win32 и VT_I8 в x64.
Для правильного формирования _variant_t HINSTANCE нужно передавать через приведение к (LONG_PTR).
В библиотеках, использующих автоматизацию, рекомендуется использовать данную функцию вместо ksDocument3D::UserSelectEntityEx.


## windowNeedRebuild - Свойство необходимости перерисовки окна документа

Тип данных: BOOL
Значения свойства:
| TRUE | - надо перерисовывать, |
| --- | --- |
| FALSE | - не надо перерисовывать. |
Синтаксис:
```
windowNeedRebuild = object.windowNeedRebuild    Получить свойство (* )
object.windowNeedRebuild = windowNeedRebuild    Установить свойство (* )
windowNeedRebuild = object.GetWindowNeedRebuild()    Получить свойство (**)
object.SetWindowNeedRebuild(windowNeedRebuild)    Установить свойство (**)
```
Примечание:
Свойство позволяет временно отключить перерисовку окна документа.
Используется для ускорения создания, удаления или изменения группы объектов.


## ZoomPrevNextOrAll - Показать модель в активном окне полностью или установить предыдущий или последующий масштаб изображения

Синтаксис Automation:
```
BOOL ZoomPrevNextOrAll (short type);
```
Синтаксис COM:
```
BOOL ZoomPrevNextOrAll (short type);
Входные параметры:
type    - признак устанавливаемого масштаба (0 - следующий масштаб изображения, 1 - предыдущий масштаб изображения, 2 - показать модель полностью).
Возвращаемое значение:
TRUE    - в случае успешного завершения.
```
Примечание:
В настоящий момент метод работает только при type=2.
