---
title: "Интерфейс ksDrawingObjectNotify/IDrawingObjectNotify"
type: interface
api: [api7]
domain: [drawing]
tags: [interface, api7, drawing, ksdrawingobjectnotify]
sources:
  - ksdrawingobjectnotify.html
---

*API интерфейсов. Версия 7 > Интерфейсы событий *


## Интерфейс ksDrawingObjectNotify/IDrawingObjectNotify

| ksDrawingObjectNotify | - интерфейс Automation |
| --- | --- |
Интерфейс событий для графического объекта.
Позволяет контролировать состояние объектов графического документа.
В Automation источником событий для подписки на данный интерфейс являются объекты IDrawingObject - базового интерфейса для графических объектов (события генерируются только для этого объекта) или коллекции объектов 2D IDrawingObjects (события генерируются для всех объектов данной коллекции).
Для получения указателей на документ и объект можно использовать свойство IKompasAPIObject::Reference.
В API5 аналогом является интерфейс событий объектов графических документов ksObject2DNotify, поэтому перечисления событий совпадают с перечислением событий для объектов графических документов KsObject2DNotifyEnum.
В процессе обработки события можно получить дополнительную информацию о редактировании объекта при помощи интерфейса ksObject2DNotifyResult, который можно получить при помощи метода IKompasDocument2D::GetDrawingObjectNotifyResult.


## BeginCopy - Начало копирования объекта

Интерфейс..
Синтаксис Automation:
```
BOOL BeginCopy ( VARIANT Obj );
Входные параметры:
iObj    - VARIANT с типом VT_DISPATCH, если событие генерируется для одного объекта, - массив SafeArray объектов, если событие генерируется для более чем одного объекта.
Возвращаемое значение:
TRUE    - копировать объект,
FALSE    - запрещает копирование объекта.
```
Примечание:
1. Индекс метода задан в перечислении событий объектов графических документов ksObject2DNotifyEnum.
2. Контейнером событий ksDrawingObjectNotify может использоваться объект графического документа IDrawingObject и коллекция объектов IDrawingObjects.


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

Интерфейс..
Синтаксис Automation:
```
BOOL BeginDelete ( VARIANT Obj );
Входные параметры:
iObj    - VARIANT с типом VT_DISPATCH, если событие генерируется для одного объекта, - массив SafeArray объектов, если событие генерируется для более чем одного объекта.
Возвращаемое значение:
TRUE    - удалить объект,
FALSE    - запрещает удаление объекта.
```
Примечание:
1. Индекс метода задан в перечислении событий объектов графических документов ksObject2DNotifyEnum.
2. Контейнером событий ksDrawingObjectNotify может использоваться объект графического документа IDrawingObject и коллекция объектов IDrawingObjects.
3. Для обеспечения корректной обработки события удаления вида, нужно учитывать следующее:
•при удалении системного вида собственно сам системный вид не удаляется: удаляются только все объекты в нем;
•номер 0 может иметь служебный вид, создаваемый КОМПАС для режима визуального редактирования макроэлементов, это можно проверить по свойству IView1::EditMacroVisibleRegime.


## BeginDestroyObject - Начало разрушения объекта

Интерфейс..
Синтаксис Automation:
```
VARIANT_BOOL BeginDestroyObject(VARIANT Objects );
Входные параметры:
iObj    - VARIANT с типом VT_DISPATCH, если событие генерируется для одного объекта, - массив SafeArray объектов, если событие генерируется для более чем одного объекта.
Возвращаемое значение:
TRUE    - разрушить объект,
FALSE    - запрещает разрушение объекта.
```
Примечание:
1. Индекс метода задан в перечислении событий объектов графических документов ksObject2DNotifyEnum.
2. Контейнером событий ksDrawingObjectNotify может использоваться объект графического документа IDrawingObject и коллекция объектов IDrawingObjects


## BeginMove - Начало сдвига объекта

Интерфейс..
Синтаксис Automation:
```
BOOL BeginMove ( VARIANT Obj );
Входные параметры:
iObj    - VARIANT с типом VT_DISPATCH, если событие генерируется для одного объекта, - массив SafeArray объектов, если событие генерируется для более чем одного объекта.
Возвращаемое значение:
TRUE    - сдвинуть объект,
FALSE    - запрещает сдвиг объекта.
```
Примечание:
1. Индекс метода задан в перечислении событий объектов графических документов ksObject2DNotifyEnum.
2. Контейнером событий ksDrawingObjectNotify может использоваться объект графического документа IDrawingObject и коллекция объектов IDrawingObjects.


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

Интерфейс..
Синтаксис Automation:
```
BOOL BeginProcess (long pType, IDrawingObject* iObj);
Входные параметры:
pType    - тип объекта из перечисления DrawingObjectTypeEnum,
iObj    - VARIANT с типом VT_DISPATCH, если событие генерируется для одного объекта, - массив SafeArray объектов, если событие генерируется для более чем одного объекта.
Возвращаемое значение:
TRUE    - редактировать\создать объект,
FALSE    - запрещает редактирование\создание объекта объекта.
```
Примечание:
1. Индекс метода задан в перечислении событий объектов графических документов ksObject2DNotifyEnum.
2. Контейнером событий ksDrawingObjectNotify может использоваться объект графического документа IDrawingObject и коллекция объектов IDrawingObjects


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

Интерфейс..
Синтаксис:
```
BOOL BeginPropertyChanged( VARIANT Objects );
Входной параметр:
Objects    - указатель на объект VT_DISPATCH и/или массив объектов VT_ARRAY    VT_DISPATCH.
Возвращаемое значение:
TRUE    - Разрешить изменение свойств объекта,
FALSE    - Запретить изменение свойств объекта.
```


## BeginRotate - Начало поворота объекта

Интерфейс..
Синтаксис Automation:
```
BOOL BeginRotate ( VARIANT Obj );
Входные параметры:
iObj    - VARIANT с типом VT_DISPATCH, если событие генерируется для одного объекта, - массив SafeArray объектов, если событие генерируется для более чем одного объекта.
Возвращаемое значение:
TRUE    - повернуть объект,
FALSE    - запрещает поворот объекта.
```
Примечание:
1. Индекс метода задан в перечислении событий объектов графических документов ksObject2DNotifyEnum.
2. Контейнером событий ksDrawingObjectNotify может использоваться объект графического документа IDrawingObject и коллекция объектов IDrawingObjects.


## BeginScale - Начало масштабирования объекта

Интерфейс..
Синтаксис Automation:
```
BOOL BeginScale ( VARIANT Obj );
Входные параметры:
iObj    - VARIANT с типом VT_DISPATCH, если событие генерируется для одного объекта, - массив SafeArray объектов, если событие генерируется для более чем одного объекта.
Возвращаемое значение:
TRUE    - масштабировать объект,
FALSE    - запрещает масштабирование объекта.
```
Примечание:
1. Индекс метода задан в перечислении событий объектов графических документов ksObject2DNotifyEnum.
2. Контейнером событий ksDrawingObjectNotify может использоваться объект графического документа IDrawingObject и коллекция объектов IDrawingObjects.


## BeginSymmetry - Начало симметрии объекта

Интерфейс..
Синтаксис Automation:
```
BOOL BeginSymmetry ( VARIANT Obj );
Входные параметры:
iObj    - VARIANT с типом VT_DISPATCH, если событие генерируется для одного объекта, - массив SafeArray объектов, если событие генерируется для более чем одного объекта.
Возвращаемое значение:
TRUE    - симметрия объекта,
FALSE    - запрещает симметрию объекта.
```
Примечание:
1. Индекс метода задан в перечислении событий объектов графических документов ksObject2DNotifyEnum.
2. Контейнером событий ksDrawingObjectNotify может использоваться объект графического документа IDrawingObject и коллекция объектов IDrawingObjects


## BeginTransform - Начало трансформации объекта

Интерфейс..
Синтаксис Automation:
```
BOOL BeginTransform ( VARIANT Obj );
Входные параметры:
iObj    - VARIANT с типом VT_DISPATCH, если событие генерируется для одного объекта, - массив SafeArray объектов, если событие генерируется для более чем одного объекта.
Возвращаемое значение:
TRUE    - трансформировать объект,
FALSE    - запрещает трансформацию объекта.
```
Примечание:
1. Индекс метода задан в перечислении событий объектов графических документов ksObject2DNotifyEnum.
2. Контейнером событий ksDrawingObjectNotify может использоваться объект графического документа IDrawingObject и коллекция объектов IDrawingObjects


## ChangeActive - Переключена активность объекта (вид, слой)

Синтаксис Automation:
```
BOOL ChangeActive ( VARIANT Obj );
Входные параметры:
iObj    - VARIANT с типом VT_DISPATCH, если событие генерируется для одного объекта, - массив SafeArray объектов, если событие генерируется для более чем одного объекта.
Возвращаемое значение:
- Не используется.
```
Примечание:
1. Индекс метода задан в перечислении событий объектов графических документов ksObject2DNotifyEnum.
2. Контейнером событий ksDrawingObjectNotify может использоваться объект графического документа IDrawingObject и коллекция объектов IDrawingObjects.


## Copy - Объект скопирован

Интерфейс..
Синтаксис Automation:
```
BOOL Copy ( VARIANT Obj );
Входные параметры:
iObj    - VARIANT с типом VT_DISPATCH, если событие генерируется для одного объекта, - массив SafeArray объектов, если событие генерируется для более чем одного объекта.
Возвращаемое значение:
- Не используется.
```
Примечание:
1. Индекс метода задан в перечислении событий объектов графических документов ksObject2DNotifyEnum.
2. Контейнером событий ksDrawingObjectNotify может использоваться объект графического документа IDrawingObject и коллекция объектов IDrawingObjects.


## CreateObject - Создание объекта

Синтаксис Automation:
```
BOOL CreateObject ( VARIANT Obj );
iObj    - VARIANT с типом VT_DISPATCH, если событие генерируется для одного объекта, - массив SafeArray объектов, если событие генерируется для более чем одного объекта.
Возвращаемое значение:
- Не используется.
```
Примечание:
1. Индекс метода задан в перечислении событий объектов графических документов ksObject2DNotifyEnum.
2. Контейнером событий ksDrawingObjectNotify может использоваться объект графического документа IDrawingObject и коллекция объектов IDrawingObjects.


## Delete - Объект удален

Интерфейс..
Синтаксис Automation:
```
BOOL Delete ( VARIANT Obj );
Входные параметры:
iObj    - VARIANT с типом VT_DISPATCH, если событие генерируется для одного объекта, - массив SafeArray объектов, если событие генерируется для более чем одного объекта.
Возвращаемое значение:
- Не используется.
```
Примечание:
1. Индекс метода задан в перечислении событий объектов графических документов ksObject2DNotifyEnum.
2. Контейнером событий ksDrawingObjectNotify может использоваться объект графического документа IDrawingObject и коллекция объектов IDrawingObjects.
3. Для обеспечения корректной обработки события удаления вида, нужно учитывать следующее:
•при удалении системного вида собственно сам системный вид не удаляется: удаляются только все объекты в нем;
•номер 0 может иметь служебный вид, создаваемый КОМПАС для режима визуального редактирования макроэлементов, это можно проверить по свойству IView1::EditMacroVisibleRegime.


## DestroyObject - Разрушение объекта

Интерфейс..
Синтаксис Automation:
```
VARIANT_BOOL DestroyObject(VARIANT Objects);
Входные параметры:
iObj    - VARIANT с типом VT_DISPATCH, если событие генерируется для одного объекта, - массив SafeArray объектов, если событие генерируется для более чем одного объекта.
Возвращаемое значение:
- Не используется.
```
Примечание:
1. Индекс метода задан в перечислении событий объектов графических документов ksObject2DNotifyEnum.
2. Контейнером событий ksDrawingObjectNotify может использоваться объект графического документа IDrawingObject и коллекция объектов IDrawingObjects


## EndProcess - Конец редактирования\создания объекта

Синтаксис Automation:
```
BOOL EndProcess ( long pType );
pType    - тип объекта из перечисления DrawingObjectTypeEnum.
Возвращаемое значение:
- Не используется.
```
Примечание:
1. Индекс метода задан в перечислении событий объектов графических документов ksObject2DNotifyEnum.
2. Контейнером событий ksDrawingObjectNotify может использоваться объект графического документа IDrawingObject и коллекция объектов IDrawingObjects.


## Move - Объект сдвинут

Интерфейс..
Синтаксис Automation:
```
BOOL Move ( VARIANT Obj );
Входные параметры:
iObj    - VARIANT с типом VT_DISPATCH, если событие генерируется для одного объекта, - массив SafeArray объектов, если событие генерируется для более чем одного объекта.
Возвращаемое значение:
- Не используется.
```
Примечание:
1. Индекс метода задан в перечислении событий объектов графических документов ksObject2DNotifyEnum.
2. Контейнером событий ksDrawingObjectNotify может использоваться объект графического документа IDrawingObject и коллекция объектов IDrawingObjects.


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

Интерфейс..
Синтаксис:
```
BOOL PropertyChanged( VARIANT Objects );
Входной параметр:
Objects    - указатель на объект VT_DISPATCH и/или массив объектов VT_ARRAY    VT_DISPATCH.
Возвращаемое значение:
- Не используется.
```


## Rotate - Объект повернут

Интерфейс..
Синтаксис Automation:
```
BOOL Rotate ( VARIANT Obj );
Входные параметры:
iObj    - VARIANT с типом VT_DISPATCH, если событие генерируется для одного объекта, - массив SafeArray объектов, если событие генерируется для более чем одного объекта.
Возвращаемое значение:
- Не используется.
```
Примечание:
1. Индекс метода задан в перечислении событий объектов графических документов ksObject2DNotifyEnum.
2. Контейнером событий ksDrawingObjectNotify может использоваться объект графического документа IDrawingObject и коллекция объектов IDrawingObjects


## Scale - Завершение масштабирования объекта

Интерфейс..
Синтаксис Automation:
```
BOOL Scale ( VARIANT Obj );
Входные параметры:
iObj    - VARIANT с типом VT_DISPATCH если событие генерируется для одного объекта, - массив SafeArray объектов если событие генерируется для более чем одного объекта.
Возвращаемое значение:
- Не используется.
```
Примечание:
1. Индекс метода задан в перечислении событий объектов графических документов ksObject2DNotifyEnum.
2. Контейнером событий ksDrawingObjectNotify может использоваться объект графического документа IDrawingObject и коллекция объектов IDrawingObjects.


## Symmetry - Симметрия объекта

Интерфейс..
Синтаксис Automation:
```
BOOL Symmetry ( VARIANT Obj );
Входные параметры:
iObj    - VARIANT с типом VT_DISPATCH, если событие генерируется для одного объекта, - массив SafeArray объектов, если событие генерируется для более чем одного объекта.
Возвращаемое значение:
- Не используется.
```
Примечание:
1. Индекс метода задан в перечислении событий объектов графических документов ksObject2DNotifyEnum.
2. Контейнером событий ksDrawingObjectNotify может использоваться объект графического документа IDrawingObject и коллекция объектов IDrawingObjects/


## Transform - Объект трансформирован

Интерфейс..
Синтаксис Automation:
```
BOOL Transform ( VARIANT Obj );
Входные параметры:
iObj    - VARIANT с типом VT_DISPATCH, если событие генерируется для одного объекта, - массив SafeArray объектов, если событие генерируется для более чем одного объекта.
Возвращаемое значение:
- Не используется.
```
Примечание:
1. Индекс метода задан в перечислении событий объектов графических документов ksObject2DNotifyEnum.
2. Контейнером событий ksDrawingObjectNotify может использоваться объект графического документа IDrawingObject и коллекция объектов IDrawingObjects.


## UpdateObject - Редактирование объекта

Интерфейс..
Синтаксис Automation:
```
BOOL EndProcess ( VARIANT Obj );
iObj    - VARIANT с типом VT_DISPATCH, если событие генерируется для одного объекта, - массив SafeArray объектов, если событие генерируется для более чем одного объекта.
Возвращаемое значение:
- Не используется.
```
Примечание:
1. Индекс метода задан в перечислении событий объектов графических документов ksObject2DNotifyEnum.
2. Контейнером событий ksDrawingObjectNotify может использоваться объект графического документа IDrawingObject и коллекция объектов IDrawingObjects.
