---
title: "Слои"
type: interface
api: [api7]
tags: [interface, api7, cu1735361]
sources:
  - cu1735361.html
  - idocument3dmanager.html
  - ilayers3d.html
  - ilayergroups3d.html
  - ilayer3d.html
  - ilayergroup3d.html
---

*API интерфейсов. Версия 7 > Сервисные функции *




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

Менеджер 3D документа.
Иерархия:
IDispatch
IKompasAPIObject
IDocument3DManager
Интерфейс можно получить с помощью свойства IKompasDocument3D1::Document3DManager.


## Layers3D - Коллекция слоев в 3D

Тип данных: Указатель на интерфейс ILayers3D
Синтаксис Automation:
```
Layers3D = Object.Layers3D    Получить свойство (* )
Layers3D = Object.GetLayers3D)    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_Layers3D( &Layers3D )    Получить свойство
```
Примечание:
Свойство только для чтения.


## LayersDynamicGroups3D - Коллекция динамических групп слоев в 3D

Тип данных: Указатель на интерфейс ILayerGroups3D
Синтаксис Automation:
```
LayersDynamicGroups3D = Object.LayersDynamicGroups3D    Получить свойство (* )
LayersDynamicGroups3D = Object.GetLayersDynamicGroups3D    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_LayersDynamicGroups3D( &LayersDynamicGroups3D)    Получить свойство
```
Примечание:
Свойство только для чтения.


## LayersGroups3D - Коллекция групп слоев в 3D

Тип данных: Указатель на интерфейс ILayerGroups3D
Синтаксис Automation:
```
LayersGroups3D = Object.LayersGroups3D    Получить свойство (* )
LayersGroups3D = Object.GetLayersGroups3D    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_LayersGroups3D( &LayersGroups3D)    Получить свойство
```
Примечание:
Свойство только для чтения.


## PartsGroups - Группы компонентов

Тип данных: Указатель на интерфейс ILayers3D
Синтаксис Automation:
```
PartsGroups = Object.PartsGroups    Получить свойство (* )
PartsGroups = Object.GetPartsGroups()    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_PartsGroups( &PartsGroups )    Получить свойство
Версия: Компас v20
```


## Update - Обновление данных

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


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

Интерфейс коллекции слоев в 3D.
Иерархия:
IDispatch
IKompasAPIObject
IKompasCollection
ILayers3D
Интерфейс коллекции слоев в 3D можно получить у Менеджера 3D-документа с помощью свойства IDocument3DManager::Layers3D или у Группы слоев в 3D с помощью свойства ILayerGroup3D::Layers.


## Add - Создать слой (добавляет слой в коллекцию)

Синтаксис Automation:
```
LPDISPATCH Add();
```
Синтаксис COM:
```
HRESULT Add( ILayer3D ** Result );
Возвращаемое значение:
- указатель на интерфейс слоя ILayer3D.
```


## Attach - Добавить существующий слой

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


## Detach - Отсоединить слой

Синтаксис Automation:
```
BOOL Detach( ILayer3D * PVal );
```
Синтаксис COM:
```
HRESULT Detach( ILayer3D * PVal, BOOL * Result );
Возвращаемое значение:
TRUE    - в случае успешного завершения,
FALSE    - в случае неудачи.
Входные параметры:
PVal    - указатель на интерфейс слоя ILayer3D.
Возвращаемое значение:
- Полный путь к библиотеке на диске.
```
Примечание:
1. Интерфейс слоя отсоединяется от коллекции, слой при этом из документа не удаляется.
2. Метод работает только для коллекции слоев группы ILayerGroup3D, если она не является динамической.


## Layer3D - Возвращает слой, заданный по индексу, имени или ссылке

Тип данных: Указатель на интерфейс ILayer3D
Синтаксис Automation:
```
Layer3D = Object.Layer3D( Index )    Получить свойство (* )
Layer3D = Object.GetLayer3D( Index )    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_Layer3D( Index, &Layer3D )    Получить свойство
```
Примечание:
1. Свойство только для чтения.
2. В качестве индекса может использоваться индекс элемента в массиве, ссылка на слой, имя слоя.


## Layer3DByNumber - Возвращает слой, заданный по номеру

Тип данных: Указатель на интерфейс ILayer3D
Синтаксис Automation:
```
Layer3DByNumber = Object.Layer3DByNumber( Number )    Получить свойство (* )
Layer3DByNumber = Object.GetLayer3DByNumber( Number)    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_Layer3DByNumber( Number, &Layer3DByNumber )    Получить свойство
Входные параметры:
number    - номер слоя; тип long.
```
Примечание:
Свойство только для чтения.


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

Интерфейс коллекции групп cлоев в 3D.
Иерархия:
IDispatch
IKompasAPIObject
IKompasCollection
ILayerGroups3D
Интерфейс можно получить у Менеджера 3D документа с помощью свойств IDocument3DManager::LayersGroups3D и IDocument3DManager::LayersDynamicGroups3D и у группы слоев с помощью свойства ILayerGroup3D::LayerGroups.


## Add - Создать группу (добавляет группу в коллекцию)

Синтаксис Automation:
```
LPDISPATCH Add();
```
Синтаксис COM:
```
HRESULT Add( ILayerGroup3D ** Result );
Возвращаемое значение:
- указатель на интерфейс группы слоев ILayerGroup3D.
```


## LayerGroup3D - Возвращает группу по индексу, уникальному идентификатору или имени

Тип данных: Указатель на интерфейс ILayerGroup3D
Синтаксис Automation:
```
LayerGroup3D = Object.LayerGroup3D( Index )    Получить свойство (* )
LayerGroup3D = Object.GetLayerGroup3D( Index )    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_LayerGroup3D( Index, &LayerGroup3D )    Получить свойство
```
Примечание:
Свойство только для чтения.


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

Интерфейс cлоя в 3D.
Иерархия:
IDispatch
IKompasAPIObject
ILayer3D
Интерфейс можно получить у коллекции слоев 3D с помощью свойства ILayers3D::Layer3D и метода ILayers3D::Add.
Имеет дополнительный интерфейс IColorParam7, который можно получить с помощью метода IUnknown::QueryInterface.
Примечание:
Чтобы новые параметры интерфейса IColorParam7 слоя ILayer3D обновились у объектов модели, нужно вызвать метод IDocument3DManager::Update.


## Color - Цвет слоя

Тип данных: long
Синтаксис Automation:
```
Color = Object.Color    Получить свойство (* )
Object.Color = Color    Установить свойство (* )
Color = Object.GetColor()    Получить свойство (**)
Object.SetColor (Color)    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_Color( &Color )    Получить свойство
Object.put_Color( Color )    Установить свойство
```


## Comment - Комментарий

Тип данных: BSTR
Синтаксис Automation:
```
Comment = Object.Comment    Получить свойство (* )
Object.Comment = Comment    Установить свойство (* )
Comment = Object.GetComment()    Получить свойство (**)
Object.SetComment (Comment)    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_Comment( &Comment )    Получить свойство
Object.put_Comment( Comment )    Установить свойство
```


## Current - Состояние слоя - текущий

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


## Delete - Удалить слой

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


## Editable - Признак редактирования

Тип данных: BOOL
Синтаксис Automation:
```
Editable = Object.Editable    Получить свойство (* )
Object.Editable = Editable    Установить свойство (* )
Editable = Object.GetEditable()    Получить свойство (**)
Object.SetEditable (Editable)    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_Editable( &Editable )    Получить свойство
Object.put_Editable( Editable )    Установить свойство
```


## GetLayerObjects - Объекты слоя

Синтаксис Automation:
```
VARIANT GetLayerObjects( VARIANT ObjectsTypes );
```
Синтаксис COM:
```
HRESULT GetLayerObjects( VARIANT ObjectsTypes, VARIANT * Result );
Возвращаемое значение:
- Список объектов слоя.
Входные параметры:
ObjectsTypes    - список типов объектов из перечисления ksObj3dTypeEnum.
КOMPAS v24
```


## Name - Имя слоя

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


## Number - Номер слоя

Тип данных: long
Синтаксис Automation:
```
Number = Object.Number    Получить свойство (* )
Object.Number = Number    Установить свойство (* )
Number = Object.GetNumber()    Получить свойство (**)
Object.SetNumber (Number)    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_Number( &Number )    Получить свойство
Object.put_Number( Number )    Установить свойство
```


## Projected - Признак проецирования

Тип данных: BOOL
Синтаксис Automation:
```
Projected = Object.Projected    Получить свойство (* )
Object.Projected = Projected    Установить свойство (* )
Projected = Object.GetProjected()    Получить свойство (**)
Object.SetProjected (Projected)    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_Projected( &Projected )    Получить свойство
Object.put_Projected( Projected )    Установить свойство
```


## Update - Обновление данных

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


## Visible - Состояние слоя - видимый или погашенный

Тип данных: BOOL
Синтаксис Automation:
```
Visible = Object.Visible    Получить свойство (* )
Object.Visible = Visible    Установить свойство (* )
Visible = Object.GetVisible()    Получить свойство (**)
Object.SetVisible (Visible)    Установить свойство (**)
```
Синтаксис COM:
```
Object.get_Visible( &Visible )    Получить свойство
Object.put_Visible( Visible )    Установить свойство
```


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

Интерфейс группы cлоев в 3D.
Иерархия:
IDispatch
IKompasAPIObject
IKompasCollection
ILayerGroup3D
Данный интерфейс можно получить у коллекции групп слоев ILayerGroups3D с помощью свойства ILayerGroups3D::LayerGroup3D, метода ILayerGroups3D::Add, либо от интерфейса другой группы слоев с помощью свойства ILayerGroup3D::OwnerGroup.


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

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


## LayerFilterConditions - Коллекция условий фильтрации

Тип данных: Указатель на интерфейс ILayerFilterConditions
Синтаксис Automation:
```
LayerFilterConditions = Object.LayerFilterConditions    Получить свойство (* )
LayerFilterConditions = Object.GetLayerFilterConditions()    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_LayerFilterConditions( &LayerFilterConditions )    Получить свойство
```
Примечание:
Свойство только для чтения.


## LayerGroups - Коллекция групп слоев

Тип данных: Указатель на интерфейс ILayerGroup3D
Синтаксис Automation:
```
LayerGroups = Object.LayerGroups    Получить свойство (* )
LayerGroups = Object.GetLayerGroups()    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_LayerGroups( &LayerGroups )    Получить свойство
```
Примечание:
Свойство только для чтения.


## Layers - Коллекция слоев

Тип данных: Указатель на интерфейс ILayers3D
Синтаксис Automation:
```
Layers = Object.Layers    Получить свойство (* )
Layers = Object.GetLayers()    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_Layers( &Layers )    Получить свойство
```
Примечание:
Свойство только для чтения.


## Name - Имя группы

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


## OwnerGroup - Владелец группы - другая группа

Тип данных: Указатель на интерфейс ILayerGroup3D
Синтаксис Automation:
```
OwnerGroup = Object.OwnerGroup    Получить свойство (* )
OwnerGroup = Object.GetOwnerGroup()    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_OwnerGroup( &OwnerGroup )    Получить свойство
```
Примечание:
Свойство только для чтения.


## UniqueId - Уникальный идентификатор группы слоев

Тип данных: double
Синтаксис Automation:
```
UniqueId = Object.UniqueId    Получить свойство (* )
UniqueId = Object.GetUniqueId()    Получить свойство (**)
```
Синтаксис COM:
```
Object.get_UniqueId( &UniqueId )    Получить свойство
```
Примечание:
1. Свойство только для чтения.
2. После создания группы свойство не изменяется и хранится в чертеже.
