--- 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 ) Установить свойство ```