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

*API интерфейсов. Версия 7 > Документ 2D  > Виды и слои  > Интерфейс IDrawingObjects  > IDrawingObjects - свойства *


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

Интерфейс коллекции слоев графического документа.
Иерархия:
IKompasAPIObject
IKompasCollection
IDrawingObjects
ILayers
Примечание:
Интерфейс коллекции слоев можно получить от интерфейса вида с помощью свойства IView::Layers или у группы слоев с помощью свойства ILayerGroup::Layers.


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

Синтаксис Automation:
```
LPDISPATCH Add();
```
Синтаксис COM:
```
HRESULT Add ([out, retval] ILayer** Layer);
Возвращаемое значение:
- Указатель на интерфейс слоя ILayer.
```
Примечание:
1. Интерфейс слоя добавляется в коллекцию.
2. Слой в документе будет создан после вызова метода IDrawingObject::Update.


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

Синтаксис Automation:
```
BOOL Attach (LPDISPATCH pVal);
```
Синтаксис COM:
```
HRESULT Attach ([in] ILayer * pVal, [out, retval] VARIANT_BOOL * Result);
Входные параметры:
pVal    - Указатель на интерфейс слоя ILayer.
Возвращаемое значение:
TRUE    - в случае успеха,
FALSE    - в случае неудачи.
```
Примечание:
1. Интерфейс слоя добавляется в коллекцию.
2. Метод работает только для коллекции слоев группы ILayerGroup, если она не является динамической.


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

Тип данных: указатель на интерфейс слоя ILayer.
Синтаксис Automation:
```
BOOL Detach (LPDISPATCH pVal);
```
Синтаксис COM:
```
HRESULT Detach ([in] ILayer * pVal, [out, retval] VARIANT_BOOL * Result);
Входные параметры:
pVal    - Указатель на интерфейс слоя ILayer.
Возвращаемое значение:
TRUE    - в случае успеха,
FALSE    - в случае неудачи.
```
Примечание:
1. Интерфейс слоя отсоединяется от коллекции, слой при этом из документа не удаляется.
2. Метод работает только для коллекции слоев группы ILayerGroup, если она не является динамической.


## Layer - Слой, заданный по индексу

Тип данных: указатель на интерфейс слоя ILayer
Синтаксис Automation:
```
Layer = iObject.Layer (Index)    Получить свойство (* )
Layer = iObject.GetLayer (Index)    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_Layer (Index, &Layer)    Получить свойство
Входные параметры:
index    - индекс слоя в коллекции; тип VARIANT.
```
Примечание:
1. Свойство доступно только для чтения.
2. В качестве индекса может использоваться индекс элемента в массиве, ссылка на слой, имя слоя.


## LayerByNumber - Слой, заданный по номеру

Тип данных: указатель на интерфейс слоя ILayer
Синтаксис Automation:
```
Layer = iObject.LayerByNumber (Number)    Получить свойство (* )
Layer = iObject.GetLayerByNumber (Number)    Получить свойство (**)
```
Синтаксис COM:
```
iObject->get_LayerByNumber (Number, &Layer)    Получить свойство
Входные параметры:
number    - номер слоя; тип long.
```
Примечание:
Свойство доступно только для чтения.
