---
title: "Интерфейс событий документа-модели ksObject3DNotify/IObject3DNotify"
type: interface
api: [api5]
domain: [3d]
tags: [interface, api5, 3d, ksobject3dnotify]
sources:
  - ksobject3dnotify.html
---

*API интерфейсов. Версия 5 > Интерфейсы событий API5  > События в КОМПАС Общие сведения *


## Интерфейс событий документа-модели ksObject3DNotify/IObject3DNotify

| ksObject3DNotify | - интерфейс Automation |
| --- | --- |
| IObject3DNotify | - интерфейс COM |
Позволяют контролировать редактирование объектов документа-модели.
В Automation источник событий для подписки Object3DNotify можно получить при помощи метода ksPart::GetObject3DNotify.
В СOM контейнером для подписки является указатель на компонент - IPart.
Дополнительный параметр при подписке задает объекты, для которых предназначен данный интерфейс событий. Таким параметром является либо тип объекта (o3d_unknown...o3d_sketch, o3d_axis2Planes...o3d_thread, o3d_part, o3d_feature), либо указатель на объект.
•Если задан тип объекта, события генерируются для всех объектов этого типа.
•Если задан указатель на объект, события генерируются только для этого объекта.
•Если задан тип объектов o3d_unknown, события генерируются для всех объектов.
В процессе обработки события можно получить информацию о редактировании объекта при помощи интерфейса IObject3DNotifyResult для COM или ksObject3DNotifyResult для Automation.
В Automation получить интерфейс результата можно при помощи метода ksPart::GetObject3DNotifyResult.
В COM получить интерфейс результата можно при помощи экспортной функции IPart::GetObject3DNotifyResult.


## BeginDelete - Начало удаления объекта

Синтаксис Automation:
```
BOOL BeginDelete (LPDISPATCH obj);
```
Синтаксис COM:
```
BOOL BeginDelete (LPUNKNOWN obj);
Входные параметры:
Obj    - указатель на интерфейс ksFeature (IFeature) либо ksFeatureCollection (IFeatureCollection).
Возвращаемое значение:
TRUE    - удалить объект,
FALSE    - удаление объекта запрещено.
```
Примечание:
Индекс метода задан в перечислении событий объектов документов-моделей...


## BeginLoadStateChange - Начало изменения типа загрузки

Синтаксис Automation:
```
BOOL BeginLoadStateChange( LPDISPATCH obj, long loadState );
```
Синтаксис COM:
```
BOOL BeginLoadStateChange( IUnknown* obj, long loadState );
Входные параметры:
obj    - объект-вставка модели, для которой изменяется вариант загрузки,
index    - индекс стандартного или пользовательского набора загрузки.
Возвращаемое значение:
TRUE    - запретить переключение,
FALSE    - разрешить переключение.
```
Примечание
У сборки есть умолчательные стандартные наборы, индексы которых соответствуют перечислению ksLoadStateEnum. Кроме этого могут быть еще и пользовательские наборы


## BeginPlacementChanged - Начало изменения положения объекта

Синтаксис Automation:
```
BOOL BeginPlacementChanged (LPDISPATCH obj);
```
Синтаксис COM:
```
BOOL BeginPlacementChanged (LPUNKNOWN obj);
Входные параметры:
Obj    - указатель на интерфейс ksFeature (IFeature) либо ksFeatureCollection (IFeatureCollection).
Возвращаемое значение:
TRUE    - изменить положение объекта,
FALSE    - изменение положения объекта запрещено.
```
Примечание:
Индекс метода задан в перечислении событий объектов документов-моделей...


## BeginProcess - Начало редактирования\создания объекта

Синтаксис Automation:
```
BOOL BeginProcess (long pType, LPDISPATCH obj);
```
Синтаксис COM:
```
BOOL BeginProcess (long pType, LPUNKNOWN obj);
Входные параметры:
Obj    - указатель на интерфейс ksFeature (IFeature) либо ksFeatureCollection (IFeatureCollection),
pType    - тип объекта (o3d_sketch, o3d_axis2Planes...o3d_lastEntityElement, o3d_part, o3d_feature).
Возвращаемое значение:
TRUE    - редактировать\создать объект,
FALSE    - редактирование\создание объекта запрещено.
```
Примечание:
Индекс метода задан в перечислении событий объектов документов-моделей...


## BeginPropertyChanged - Начало изменения свойств объекта

Синтаксис Automation:
```
BOOL BeginPropertyChanged (LPDISPATCH obj);
```
Синтаксис COM:
```
BOOL BeginPropertyChanged (LPUNKNOWN obj);
Входные параметры:
Obj    - указатель на интерфейс ksFeature (IFeature) либо ksFeatureCollection (IFeatureCollection).
Возвращаемое значение:
TRUE    - изменить свойства объекта,
FALSE    - изменение свойств объекта запрещено.
```
Примечание:
Индекс метода задан в перечислении событий объектов документов-моделей...


## CreateObject - Объект создан

Синтаксис Automation:
```
BOOL CreateObject (LPDISPATCH obj);
```
Синтаксис COM:
```
BOOL CreateObject (LPUNKNOWN obj);
Входные параметры:
Obj    - указатель на интерфейс ksFeature (IFeature) либо ksFeatureCollection (IFeatureCollection).
Возвращаемое значение:
- не используется.
```
Примечание:
Индекс метода задан в перечислении событий объектов документов-моделей...


## Delete - Завершение удаления объекта

Синтаксис Automation:
```
BOOL Delete (LPDISPATCH obj);
```
Синтаксис COM:
```
BOOL Delete (LPUNKNOWN obj);
Входные параметры:
Obj    - указатель на интерфейс ksFeature (IFeature) либо ksFeatureCollection (IFeatureCollection).
Возвращаемое значение:
- не используется.
```
Примечание:
Индекс метода задан в перечислении событий объектов документов-моделей...


## EndProcess - Редактирование\создание объекта завершено

Синтаксис Automation:
```
BOOL EndProcess (long pType);
```
Синтаксис COM:
```
BOOL EndProcess (long pType);
Входные параметры:
pType    - тип объекта (o3d_sketch, o3d_axis2Planes...o3d_lastEntityElement, o3d_part, o3d_feature).
Возвращаемое значение:
- не используется.
```
Примечание:
Индекс метода задан в перечислении событий объектов документов-моделей...


## Excluded - Oбъект исключен/включен в расчет

Синтаксис Automation:
```
BOOL Excluded (LPDISPATCH obj, BOOL excluded);
```
Синтаксис COM:
```
BOOL Excluded (LPUNKNOWN obj, BOOL excluded);
Входные параметры:
Obj    - указатель на интерфейс ksFeature (IFeature) либо ksFeatureCollection (IFeatureCollection),
Excluded    TRUE - исключен из расчета, FALSE - включен в расчет.
Возвращаемое значение:
- не используется.
```
Примечание:
Индекс метода задан в перечислении событий объектов документов-моделей...


## Hidden - Oбъект скрыт/показан

Синтаксис Automation:
```
BOOL Hidden (LPDISPATCH obj, BOOL _hidden);
```
Синтаксис COM:
```
BOOL Hidden (LPUNKNOWN obj, BOOL _hidden);
Входные параметры:
Obj    - указатель на интерфейс ksFeature (IFeature) либо ksFeatureCollection (IFeatureCollection),
_hidden    TRUE - объект скрыт FALSE - объект показан.
Возвращаемое значение:
- не используется.
```
Примечание:
Индекс метода задан в перечислении событий объектов документов-моделей...


## IsNotIifyProcess - Ограничение обрабатываемых событий

Синтаксис Automation:
```
Не используется.
```
Синтаксис COM:
```
BOOL IsNotifyProcess (int notifyType);
Входной параметр:
notifyType    - номер события в перечислении событий.
Возвращаемое значение:
TRUE    - событие будет обрабатываться,
FALSE    - событие обрабатываться не будет.
```
Примечание:
В COM перед любым вызовом события система сделает запрос о возможности его обработки с использованием данного метода. Библиотека сама может ограничивать обрабатываемые события.


## LoadStateChange - Завершение изменения типа загрузки

Синтаксис Automation:
```
BOOL LoadStateChange( LPDISPATCH obj, long loadState );
```
Синтаксис COM:
```
BOOL LoadStateChange( IUnknown* obj, long loadState );
Входные параметры:
index    - индекс стандартного или пользовательского набора загрузки.
Возвращаемое значение:
- не используется.
```
Примечание
У сборки есть умолчательные стандартные наборы, индексы которых соответствуют перечислению ksLoadStateEnum. Кроме этого могут быть еще и пользовательские наборы


## PlacementChanged - Изменено положения объекта

Синтаксис Automation:
```
BOOL PlacementChanged (LPDISPATCH obj);
```
Синтаксис COM:
```
BOOL PlacementChanged (LPUNKNOWN obj);
Входные параметры:
Obj    - указатель на интерфейс ksFeature (IFeature) либо ksFeatureCollection (IFeatureCollection).
Возвращаемое значение:
- не используется.
```
Примечание:
Индекс метода задан в перечислении событий объектов документов-моделей...


## PropertyChanged - Изменены свойства объета

Синтаксис Automation:
```
BOOL PropertyChanged (LPDISPATCH obj);
```
Синтаксис COM:
```
BOOL PropertyChanged (LPUNKNOWN obj);
Входные параметры:
Obj    - указатель на интерфейс ksFeature (IFeature) либо ksFeatureCollection (IFeatureCollection).
Возвращаемое значение:
- не используется.
```
Примечание:
Индекс метода задан в перечислении событий объектов документов-моделей...


## UpdateObject - Объект изменен

Синтаксис Automation:
```
BOOL UpdateObject (LPDISPATCH obj);
```
Синтаксис COM:
```
BOOL UpdateObject (LPUNKNOWN obj);
Входные параметры:
Obj    - указатель на интерфейс ksFeature (IFeature) либо ksFeatureCollection (IFeatureCollection).
Возвращаемое значение:
- не используется.
```
Примечание:
Индекс метода задан в перечислении событий объектов документов-моделей....
