---
title: "Интерфейс IMacroObject3D"
type: interface
api: [api7]
domain: [3d]
tags: [interface, api7, 3d, imacroobject3d]
sources:
  - imacroobject3d.html
---

*API интерфейсов. Версия 7 > Документ 3D  > Макрообъекты 3D *


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

Интерфейс макроэлемента 3D.
Иерархия:
IDispatch
IKompasAPIObject
IModelObject
IMacroObject3D
Данный интерфейс можно получить с помощью метода коллекции операций по сечениям IMacroObjects3D::Add или свойства IMacroObjects3D::MacroObject3D.
КОМПАС версия v18


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

Тип данных: Указатель на интерфейс IModelObject.
Синтаксис Automation:
```
AssociationObject = Object.AssociationObject( Index )    Получить свойство (* )
Object.AssociationObject( Index ) = AssociationObject    Установить свойство (* )
AssociationObject = Object.GetAssociationObject( Index )    Получить свойство (**)
Object.SetAssociationObject( Index, AssociationObject )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_AssociationObject( Index, &AssociationObject )    Получить свойство
Object.put_AssociationObject( Index, AssociationObject )    Установить свойство
Входные параметры:
long Index    - индекс объекта.
```


## AssociationObjectCount - Количество опорных объектов

Тип данных: long
Синтаксис Automation:
```
AssociationObjectCount = Object.AssociationObjectCount ;    Получить свойство (* )
AssociationObjectCount = Object.GetAssociationObjectCount();    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_AssociationObjectCount( &AssociationObjectCount );    Получить свойство
```
Примечание:
Свойство доступно только для чтения.


## ClearAssociationObject - Удалить все опорные объекты

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


## Destroy - Разрушить макроэлемент

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


## DoubleClickEditable - Редактирование по двойному клику поддерживается

Тип данных: BOOL
Синтаксис Automation:
```
DoubleClickEditable = Object.DoubleClickEditable    Получить свойство (* )
Object.DoubleClickEditable = DoubleClickEditable    Установить свойство (* )
DoubleClickEditable = Object.GetDoubleClickEditable()    Получить свойство (**)
Object.SetDoubleClickEditable( DoubleClickEditable )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_DoubleClickEditable( &DoubleClickEditable )    Получить свойство
Object.put_DoubleClickEditable( DoubleClickEditable )    Установить свойство
```


## Label - Отображаемое имя объекта в дереве

Тип данных: BSTR
Синтаксис Automation:
```
Label = Object.Label ;    Получить свойство (* )
Label = Object.GetLabel( );    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_Label( &Label );    Получить свойство
```
Примечание:
Свойство доступно только для чтения.


## Objects - Внутренние объекты макро

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


## PropertyObjectEditable - Поддерживается интерфейс внешних свойств объекта

Тип данных: BOOL
Синтаксис Automation:
```
PropertyObjectEditable = Object.PropertyObjectEditable    Получить свойство (* )
Object.PropertyObjectEditable = PropertyObjectEditable    Установить свойство (* )
PropertyObjectEditable = Object.GetPropertyObjectEditable()    Получить свойство (**)
Object.SetPropertyObjectEditable( PropertyObjectEditable )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_PropertyObjectEditable( &PropertyObjectEditable )    Получить свойство
Object.put_PropertyObjectEditable( PropertyObjectEditable )    Установить свойство
```


## StaffVisible - Управление видимостью состава

Тип данных: BOOL
Синтаксис Automation:
```
StaffVisible = Object.StaffVisible    Получить свойство (* )
Object.StaffVisible = StaffVisible    Установить свойство (* )
StaffVisible = Object.GetStaffVisible()    Получить свойство (**)
Object.SetStaffVisible( StaffVisible )    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_StaffVisible( &StaffVisible )    Получить свойство
Object.put_StaffVisible( StaffVisible )    Установить свойство
```
