---
title: "Интерфейс IDrawingGroup"
type: interface
api: [api7]
domain: [2d, drawing]
tags: [interface, api7, 2d, drawing, idrawinggroup]
sources:
  - idrawinggroup.html
---

*API интерфейсов. Версия 7 > Документ 2D  > Группы *


## Интерфейс IDrawingGroup

Интерфейс группы (постоянной, временной, именованной).
Иерархия:
IDispatch
IKompasAPIObject
IDrawingGroup
Описание:
Интерфейс позволяет задавать параметры группы (постоянной, временной или именованной).
Примечание:
Интерфейс можно получить у коллекции групп, используя свойство IDrawingGroups::Item или метод IDrawingGroups::Add или у дополнительного интерфейса документа 2D с помощью свойства IKompasDocument2D1::CurrentGroup.


## AddObjects - Добавить объекты в группу

Синтаксис Automation:
```
BOOL AddObjects( VARIANT Objects );
```
Синтаксис COM:
```
HRESULT AddObjects( VARIANT Objects,
BOOL * Result );
Входные параметры:
Objects    - объект или массив объектов для добавления в группу ( VARIANT типа VT_DISPATCH или VT_ARRAY    VT_DISPATCH).
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Метод позволяет добавить объекты в группу.


## AddRegion - Добавить объекты в группу рамкой

Синтаксис Automation:
```
BOOL AddRegion( long RegionType,
double XMin,
double YMin,
double XMax,
double YMax );
```
Синтаксис COM:
```
HRESULT AddRegion( ksRegionTypeEnum RegionType,
double XMin,
double YMin,
double XMax,
double YMax,
BOOL * Result );
Входные параметры:
RegionType    - тип рамки из перечисления ksRegionTypeEnum,
XMin, YMin    - координаты нижнего левого угла рамки,
XMax, YMax    - координаты верхнего правого угла рамки.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Метод позволяет добавить объекты в группу рамкой.


## Clear - Очистить группу

Синтаксис Automation:
```
BOOL Clear( BOOL DeleteTmp );
```
Синтаксис COM:
```
HRESULT Clear( BOOL DeleteTmp,
BOOL * Result );
Входные параметры:
DeleteTmp    - удалять ли временные объекты.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Метод позволяет удалить все объекты из группы.


## Close - Закрыть группу

Синтаксис Automation:
```
BOOL Close();
```
Синтаксис COM:
```
HRESULT Close( BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Метод позволяет закрыть отредактированную группу.


## CopyToDocument - Копировать группу

Синтаксис Automation:
```
LPDISPATCH CopyToDocument( IKompasDocument2D * OtherDocument );
```
Синтаксис COM:
```
HRESULT CopyToDocument( IKompasDocument2D * OtherDocument, IDrawingGroup * * Result );
Возвращаемое значение:
- Группа созданных объектов IDrawingGroup.
Входные параметры:
OtherDocument    - Указатель на другой документ, куда копируется группа IKompasDocument2D.
КOMPAS v24
```


## Current - Текущая группа

Тип данных: BOOL
Синтаксис Automation:
```
Current = Object.Current    Получить свойство(* )
Current = Object.GetCurrent()    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_Current( &Current )    Получить свойство
```
Примечание:
1. Свойство позволяет получать признак того, что группа является текущей.
2. Свойство доступно только для чтения.


## Delete - Удалить группу

Синтаксис Automation:
```
BOOL Delete();
```
Синтаксис COM:
```
HRESULT Delete( BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Метод позволяет удалить группу.


## DetachObjects - Исключить объекты из группы

Синтаксис Automation:
```
BOOL DetachObjects( VARIANT Objects,
BOOL DeleteTmp );
```
Синтаксис COM:
```
HRESULT DetachObjects( VARIANT Objects,
BOOL DeleteTmp,
BOOL * Result );
Входные параметры:
Objects    - объект или массив объектов для удаления из группы( VARIANT типа VT_DISPATCH или VT_ARRAY    VT_DISPATCH ),
DeleteTmp    - удалять ли временные объекты.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Метод позволяет исключить объекты из группы.


## Draw - Отрисовать в окне

Синтаксис Automation:
```
BOOL Draw( OLE_HANDLE HWnd );
```
Синтаксис COM:
```
HRESULT Draw( OLE_HANDLE HWnd,
BOOL * Result );
Входные параметры:
HWnd    - дескриптор окна.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Метод позволяет отрисовать группу в окне.


## ExistObject - Проверить, есть ли объект в группе

Синтаксис Automation:
```
BOOL ExistObject( LPDISPATCH Object );
```
Синтаксис COM:
```
HRESULT ExistObject( IDrawingObject * Object,
BOOL * Result );
Входные параметры:
Object    - объект, наличие которого в группе надо проверить.
Возвращаемое значение:
TRUE    - объект есть в группе,
FALSE    - объекта нет в группе.
```
Примечание:
Метод позволяет определить, есть ли в группе заданный объект.


## GetGabarit - Габарит объектов группы

Синтаксис Automation:
```
BOOL GetGabarit( double * X1, double * Y1, double * X2, double * Y2 );
```
Синтаксис COM:
```
HRESULT GetGabarit( double * X1, double * Y1, double * X2, double * Y2, BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
Выходные параметры:
X1, Y1    - первая точка габарита - левая нижняя,
X2, Y2    - вторая точка габарита - правая верхняя.
Версия Компас v23
```


## Name - Имя именованной группы

Тип данных: BSTR
Синтаксис Automation:
```
Name = Object.Name    Получить свойство(* )
Object.Name = Name    Установить свойство (* )
Name = Object.GetName()    Получить свойство (**)
Object.SetName( Name )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_Name( &Name )    Получить свойство
Object.put_Name( Name )    Установить свойство
```
Примечание:
Свойство позволяет устанавливать и получать имя группы и добавляет группу в именованные.


## Objects - Получить массив объектов SAFEARRAY|VT_DISPATCH

Тип данных: VARIANT типа VT_ARRAY | VT_DISPATCH
Синтаксис Automation:
```
Objects = Object.Objects    Получить свойство(* )
Objects = Object.GetObjects()    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_Objects( &Objects )    Получить свойство
```
Примечание:
1. Свойство позволяет получать массив объектов, входящих в группу. Если возвращается один объект, то тип VARIANT-а будет VT_DISPATCH, если возвращается несколько объектов, то тип VARIANT-а будет VT_ARRAY | VT_DISPATCH.
2. Свойство доступно только для чтения.


## ObjectsCount - Количество объектов в группе

Тип данных: long
Синтаксис Automation:
```
ObjectsCount = Object.ObjectsCount    Получить свойство(* )
ObjectsCount = Object.GetObjectsCount()    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_ObjectsCount( &ObjectsCount )    Получить свойство
```
Примечание:
1. Свойство позволяет получать количество объектов в группе.
2. Свойство доступно только для чтения.


## Open - Открыть группу

Синтаксис Automation:
```
BOOL Open();
```
Синтаксис COM:
```
HRESULT Open( BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Метод позволяет открыть группу для редактирования.


## ReadFragment - Добавить объекты в группу из фрагмента

Синтаксис Automation:
```
BOOL ReadFragment( BSTR FileName,
BOOL CurentLayer,
double XBase,
double YBase,
double Scale,
double Angle,
BOOL ScaleProjLinesSize );
```
Синтаксис COM:
```
HRESULT ReadFragment( BSTR FileName,
BOOL CurentLayer,
double XBase,
double YBase,
double Scale,
double Angle,
BOOL ScaleProjLinesSize,
BOOL * Result );
Входные параметры:
FileName    - имя файла фрагмента,
CurentLayer    - тип размещения по слоям FALSE - на свои слои, TRUE - в текущий слой,
XBase, YBase    - координаты базовой точки в СК вида,
Scale    - масштаб,
Angle    - угол поворота в СК вида,
ScaleProjLinesSize    - масштабировать ли проекционные линии.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Метод позволяет добавить объекты в группу из фрагмента.


## ReadFromClip - Считать объекты из клипа

Синтаксис Automation:
```
BOOL ReadFromClip( BOOL AttrCopy,
BOOL SpcObjCopy );
```
Синтаксис COM:
```
HRESULT ReadFromClip( BOOL AttrCopy,
BOOL SpcObjCopy,
BOOL * Result );
Входные параметры:
AttrCopy    - копировать ли атрибуты,
SpcObjCopy    - копировать ли объекты спецификации.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Метод позволяет считать объекты из клипа в группу.


## Store - Вставить временную группу в документ

Синтаксис Automation:
```
BOOL Store();
```
Синтаксис COM:
```
HRESULT Store( BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Метод позволяет вставить временную группу в документ.


## WriteFragment - Записать в фрагмент

Синтаксис Automation:
```
BOOL WriteFragment( BSTR FileName,
BSTR Comment,
double XBase,
double YBase );
```
Синтаксис COM:
```
HRESULT WriteFragment( BSTR FileName,
BSTR Comment,
double XBase,
double YBase,
BOOL * Result );
Входные параметры:
FileName    - имя файла фрагмента,
Comment    - комментарий,
XBase, YBase    - координаты базовой точки в СК вида,
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Метод позволяет записать группу в фрагмент.


## WriteToClip - Записать объекты в клип

Синтаксис Automation:
```
BOOL WriteToClip( BOOL AttrCopy,
BOOL SpcObjCopy );
```
Синтаксис COM:
```
HRESULT WriteToClip( BOOL AttrCopy,
BOOL SpcObjCopy,
BOOL * Result );
Входные параметры:
AttrCopy    - копировать ли атрибуты,
SpcObjCopy    - копировать ли объекты спецификации.
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
```
Примечание:
Метод позволяет скопировать объекты из группы в клип.
