> For the complete documentation index, see [llms.txt](https://docs.bimplanet.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bimplanet.org/dynamo-nodes/revit-nodes/selection-nodes.md).

# Вкладка Selection

## Выборка по критерию <a href="#select-by-criteria" id="select-by-criteria"></a>

Большинство скриптов, которые мы создаем при взаимодействии с Revit, так или иначе начинаются с выборки тех элементов, с которыми мы хотим работать. Ее можно осуществлять по разным критериям. И для этого на вкладке [`Selection`](/dynamo-nodes/revit-nodes/selection-nodes.md) есть ряд разнообразных нодов.

### Categories

<div align="left"><img src="/files/-M5BwbU3oFt7wWPNOgAG" alt=""></div>

#### Описание <a href="#description" id="description"></a>

Узел с выпадающим списком, в котором находятся все [категории семейств](/mics/glossary.md#revit-category) данного проекта. С его помощью можно взять ту или иную категорию и использовать ее в дальнейшем для выборки элементов и некоторых других целей.

{% hint style="warning" %}
Выбранная категория - это не просто текст с ее именем. А объект типа `Category`
{% endhint %}

<div align="left"><img src="/files/-M5Bx5L3Fv-reWmchzo8" alt="Получения типа данных для объекта-категории"></div>

#### Входные и выходные слоты <a href="#in-and-out" id="in-and-out"></a>

{% tabs %}
{% tab title="Category" %}
Выдает объект-категорию, выбранную пользователем в выпадающем списке

| Тип и структура данных    | Направление | Значение по умолчанию |
| ------------------------- | ----------- | --------------------- |
| `Revit.Elements.Category` | Out         |                       |
| {% endtab %}              |             |                       |
| {% endtabs %}             |             |                       |

#### Примеры практического применения <a href="#practical-cases" id="practical-cases"></a>

{% tabs %}
{% tab title="Выборка элементов модели" %}
В сочетании с нодом [`All Elements Of Category`](/dynamo-nodes/revit-nodes/selection-nodes.md#all-elements-of-category) используется для получения всех экземпляров элементов указанной категории, размещенных в [проекте Revit](/mics/glossary.md#revit-project).

<div align="left"><img src="/files/-M5C-33T08ix31H6o8Vy" alt=""></div>

{% hint style="success" %}
Получен полный список экземпляров элементов указанной категории.
{% endhint %}
{% endtab %}
{% endtabs %}

{% hint style="danger" %}
Ноды с выпадающими списками частенько сбрасывают свое значение при открытии скрипта в определенных условиях (например, при изменении версии файла Revit). Поэтому, с ними не всегда удобно работать. В качестве [альтернативы](/dynamo-nodes/revit-nodes/selection-nodes.md#description-1), можно использовать узел `Category.ByName` для получения объекта-категории.
{% endhint %}

### All Elements of Category

<div align="left"><img src="/files/-M5C0qp6eAyAHJ9JXeA9" alt=""></div>

#### Описание <a href="#description" id="description"></a>

Получение всех экземпляров элементов указанной категории. Принимает на вход одну или несколько объектов-категорий.

<div align="left"><img src="/files/-M5C1m8MUXObVTmA-_cD" alt=""></div>

#### Входные и выходные слоты <a href="#in-and-out" id="in-and-out"></a>

{% tabs %}
{% tab title="Category" %}
Принимает на вход один или несколько объектов-категорий

| Тип и структура данных          | Направление | Значение по умолчанию |
| ------------------------------- | ----------- | --------------------- |
| `Revit.Elements.Category[]..[]` | `In`        |                       |
| {% endtab %}                    |             |                       |

{% tab title="Elements" %}
Для каждого поданного во входной слот `Categories` объекта-категории выдает полный список экземпляров элементов Revit

| Тип и структура данных | Направление | Значение по умолчанию |
| ---------------------- | ----------- | --------------------- |
| `Revit.Elements[]..[]` | `Out`       |                       |
| {% endtab %}           |             |                       |
| {% endtabs %}          |             |                       |

{% hint style="danger" %}
Если для выборки элементов вы попытаетесь использовать строку с именем категории вместо самого объекта-категории, то получите ошибку.
{% endhint %}

<div align="left"><img src="/files/-M5BycBDANnuv7SGQtsD" alt=""></div>

#### Примеры практического применения <a href="#practical-cases" id="practical-cases"></a>

См. аналогичный [раздел](/dynamo-nodes/revit-nodes/selection-nodes.md#practical-cases) узла `Categories`.

### Element Types

<div align="left"><img src="/files/-M5QoMqdgFTj9o5-0h20" alt=""></div>

#### Описание <a href="#description" id="description"></a>

Узел с выпадающим списком, в котором находятся различные типы (классы) объектов Revit. С его помощью можно делать некоторые виды выборок, недоступные через [выборку по категории](/dynamo-nodes/revit-nodes/selection-nodes.md#categories).&#x20;

{% hint style="warning" %}
Пользователей, привыкших к понятию тип (типоразмер) и экземпляр в рамках программы Revit, этот нод часто вводит в заблуждение. Следует помнить, что в данном случае тип (класс) - это понятие программирования, а не Revit. К классам могут относиться "типоразмер стены", "экземпляр стены" и т.д.
{% endhint %}

#### Входные и выходные слоты <a href="#in-and-out" id="in-and-out"></a>

{% tabs %}
{% tab title="Types" %}
Выдает тип (класс) объекта Revit , выбранный пользователем в выпадающем списке

| Тип и структура данных | Направление | Значение по умолчанию |
| ---------------------- | ----------- | --------------------- |
| `System.RuntimeType`   | Out         |                       |
| {% endtab %}           |             |                       |
| {% endtabs %}          |             |                       |

#### Примеры практического применения <a href="#practical-cases" id="practical-cases"></a>

{% tabs %}
{% tab title="Список типоразмеров системных семейств" %}
В сочетании с нодом [`All Elements of Type`](/dynamo-nodes/revit-nodes/selection-nodes.md#all-elements-of-type) можно получить полный список типоразмеров стен, которые мы видим в диспетчере [проекта Revit](/mics/glossary.md#revit-project).

{% hint style="info" %}
Поскольку в диспетчере проекта мы видим типоразмеры как для размещенных в модели элементов, так и нет, то через другие виды выборок получение подобного списка было бы невозможно!
{% endhint %}

![](/files/-M5R707RFEgZDhQedpUm)

{% hint style="success" %}
Получен полный список типоразмеров стен, которые мы видим в диспетчере проекта.
{% endhint %}

Аналогичным образом можно получать списки типоразмеров для других системных семейств:

| Класс     | Описание              |
| --------- | --------------------- |
| FloorType | Типоразмер перекрытий |
| RoofType  | Типоразмер крыш       |
| StairType | Типоразмер лестниц    |

И так далее...
{% endtab %}

{% tab title="Полный список типоразмеров загружаемых семейств" %}
В сочетании с нодом [`All Elements of Type`](/dynamo-nodes/revit-nodes/selection-nodes.md#all-elements-of-type) можно получить полный список всех типоразмеров загружаемых семейств Revit (дверей, окон и т.д.), которые мы видим в диспетчере проекта.

{% hint style="info" %}
Поскольку в диспетчере проекта мы видим типоразмеры как для размещенных в модели элементов, так и нет, то через другие виды выборок получение подобного списка было бы невозможно!
{% endhint %}

<div align="left"><img src="/files/-M5RA_n57sO2l-tLXBr1" alt=""></div>

{% hint style="success" %}
&#x20;Получен полный список всех типоразмеров , которые мы видим в диспетчере проекта, для всех разнообразных [категорий](/mics/glossary.md#revit-category) [загружаемых семейств](/mics/glossary.md#revit-loadable-families).
{% endhint %}

Аналогичным образом можно получать списки экземпляров загружаемых семейств (т.е. конкретных элементов, размещенных в модели), а также список самих семейств.

| Класс          | Описание                         |
| -------------- | -------------------------------- |
| FamilyInstance | Экземпляр загружаемого семейства |
| Family         | Семейство                        |
| {% endtab %}   |                                  |
| {% endtabs %}  |                                  |

### All Elements of Type

<div align="left"><img src="/files/-M5RC8SwpJHBFAhNIL1Y" alt=""></div>

#### Описание <a href="#description" id="description"></a>

Получение всех объектов указанного типа (класса). Принимает на вход один или несколько типов (классов) Revit.

<div align="left"><img src="/files/-M5RDGEyikWLigMoq-w8" alt=""></div>

#### Входные и выходные слоты <a href="#in-and-out" id="in-and-out"></a>

{% tabs %}
{% tab title="element type" %}
Принимает на вход один или несколько типов (классов) Revit

| Тип и структура данных     | Направление | Значение по умолчанию |
| -------------------------- | ----------- | --------------------- |
| `System.RuntimeType[]..[]` | `In`        |                       |
| {% endtab %}               |             |                       |

{% tab title="elements" %}
Выдает списки объектов для всех поданных в узел классов

| Тип и структура данных | Направление | Значение по умолчанию |
| ---------------------- | ----------- | --------------------- |
| `Revit.Elements[]..[]` | `Out`       |                       |
| {% endtab %}           |             |                       |
| {% endtabs %}          |             |                       |

{% hint style="danger" %}
Данный узел возможно использовать только в сочетании с узлом [`Element Types`](/dynamo-nodes/revit-nodes/selection-nodes.md#element-types). При попытке использовать этот нод каким-либо другим способом в большинстве случаев вы получите ошибку!
{% endhint %}

<div align="left"><img src="/files/-M5RESbujXKtBtHuMu4x" alt=""></div>

#### Примеры практического применения <a href="#practical-cases" id="practical-cases"></a>

См. аналогичный [раздел](/dynamo-nodes/revit-nodes/selection-nodes.md#practical-cases-2) узла `Element Types`.

### Family Types

<div align="left"><img src="/files/-M5gh1r-Kb3oj_rSosDq" alt=""></div>

#### Описание <a href="#description" id="description"></a>

Выпадающий список, в котором находятся все загруженные в [проект Revit](/mics/glossary.md#revit-project) типоразмеры [загружаемых семейств](/mics/glossary.md#revit-loadable-families).

#### Входные и выходные слоты <a href="#in-and-out" id="in-and-out"></a>

{% tabs %}
{% tab title="First Tab" %}
Выдает объект выбранного типоразмера [загружаемого семейства](/mics/glossary.md#revit-loadable-families).

| Тип и структура данных      | Направление | Значение по умолчанию |
| --------------------------- | ----------- | --------------------- |
| `Revit.Elements.FamilyType` | Out         |                       |
| {% endtab %}                |             |                       |
| {% endtabs %}               |             |                       |

{% hint style="danger" %}
Не стоит путать данный нод с узлом [`Element Types`](/dynamo-nodes/revit-nodes/selection-nodes.md#element-types). Это совершенно разные ноды!
{% endhint %}

#### Примеры практического применения <a href="#practical-cases" id="practical-cases"></a>

{% tabs %}
{% tab title="Выборка экземпляров типоразмера" %}
&#x20;В сочетании и с нодом [`All Elements of Family Type`](/dynamo-nodes/revit-nodes/selection-nodes.md#all-elements-of-family-type) используется для выборки всех экземпляров указанного типоразмера.

<div align="left"><img src="/files/-M5gneL5ap8lJckgyonY" alt=""></div>

{% hint style="success" %}
Получен полный список экземпляров указанного типоразмера [загружаемого семейства](/mics/glossary.md#revit-loadable-families).
{% endhint %}
{% endtab %}

{% tab title="Размещение адаптивных компонентов" %}
В сочетании с нодом `AdaptiveComponent.ByPoints` используется для размещения семейств адаптивных типовых моделей в [проекте Revit](/mics/glossary.md#revit-project).

![](/files/-M5grYkgUYlcSSlRSqH9)

{% hint style="success" %}
Экземпляр [семейства](/mics/glossary.md#revit-family) указанного типоразмера создан и размещен в [проекте Revit](/mics/glossary.md#revit-project).
{% endhint %}
{% endtab %}
{% endtabs %}

### All Elements of Family Type

<div align="left"><img src="/files/-M5gjAfayaGLXC5XVGVS" alt=""></div>

#### Описание

Получение всех экземпляров элементов указанного типоразмера [загружаемого семейства](/mics/glossary.md#revit-loadable-families). Принимает на вход один или несколько объектов-типоразмеров.

![](/files/-M5gn4ageoZJFhF29Tax)

#### Входные и выходные слоты <a href="#in-and-out" id="in-and-out"></a>

{% tabs %}
{% tab title="Family Type" %}
Принимает на вход один или несколько типоразмеров [загружаемых семейств](/mics/glossary.md#revit-loadable-families) Revit&#x20;

| Тип и структура данных            | Направление | Значение по умолчанию |
| --------------------------------- | ----------- | --------------------- |
| `Revit.Elements.FamilyType[]..[]` | `In`        |                       |
| {% endtab %}                      |             |                       |

{% tab title="Elements" %}
Выдает списки всех экземпляров для каждого из поданного во входной слот типоразмеров [загружаемых семейств](/mics/glossary.md#revit-loadable-families).

| Тип и структура данных | Направление | Значение по умолчанию |
| ---------------------- | ----------- | --------------------- |
| `Revit.Elements[]..[]` | `Out`       |                       |
| {% endtab %}           |             |                       |
| {% endtabs %}          |             |                       |

{% hint style="danger" %}
Не стоит пробовать подавать в данный нод какой-либо объект из выпадающего списка [`Element Types`](/dynamo-nodes/revit-nodes/selection-nodes.md#element-types). Вы не получите корректного результата!
{% endhint %}

<div align="left"><img src="/files/-M5gyLje1Fh4ugk_6C7Y" alt=""></div>

#### Примеры практического применения <a href="#practical-cases" id="practical-cases"></a>

См. аналогичный [раздел](/dynamo-nodes/revit-nodes/selection-nodes.md#practical-cases-4) узла `Family Types`.

![2020 © BIM Planet](/files/-Lwx4ydnXUIV_zCcwIR-)
