# Вкладка Selection

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

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

### Categories

<div align="left"><img src="https://2252576216-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LurrPeyGQkF6ssrXKfP%2F-M5BtFbm0KwojZg_4Ztm%2F-M5BwbU3oFt7wWPNOgAG%2F200418_1357_008%201.jpg?alt=media&#x26;token=b8e29f8e-bf3c-4d90-b2e5-9f0121063615" alt=""></div>

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

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

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

<div align="left"><img src="https://2252576216-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LurrPeyGQkF6ssrXKfP%2F-M5BxsvnMMEtu867YTxM%2F-M5Bx5L3Fv-reWmchzo8%2F200418_1401_010.jpg?alt=media&#x26;token=9ccc0c3a-2ecd-4269-9ab3-f2fa4043da61" 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`](#all-elements-of-category) используется для получения всех экземпляров элементов указанной категории, размещенных в [проекте Revit](https://docs.bimplanet.org/mics/glossary#revit-project).

<div align="left"><img src="https://2252576216-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LurrPeyGQkF6ssrXKfP%2F-M5BxsvnMMEtu867YTxM%2F-M5C-33T08ix31H6o8Vy%2F200418_1415_013.jpg?alt=media&#x26;token=0c724fe7-10c0-4837-9e9e-bda91f860df9" alt=""></div>

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

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

### All Elements of Category

<div align="left"><img src="https://2252576216-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LurrPeyGQkF6ssrXKfP%2F-M5C01-XfJeUnmOYEVJ-%2F-M5C0qp6eAyAHJ9JXeA9%2F200418_1341_001%201.png?alt=media&#x26;token=497a5446-d3cd-46d0-9bc6-869a89f53843" alt=""></div>

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

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

<div align="left"><img src="https://2252576216-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LurrPeyGQkF6ssrXKfP%2F-M5C01-XfJeUnmOYEVJ-%2F-M5C1m8MUXObVTmA-_cD%2F200418_1427_015.jpg?alt=media&#x26;token=19d37fad-8acc-43c3-b517-2f5960b2de09" 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="https://2252576216-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LurrPeyGQkF6ssrXKfP%2F-M5BxsvnMMEtu867YTxM%2F-M5BycBDANnuv7SGQtsD%2F200418_1355_007.jpg?alt=media&#x26;token=e4f1ef3b-6b78-4634-a83d-4d186559d020" alt=""></div>

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

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

### Element Types

<div align="left"><img src="https://2252576216-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LurrPeyGQkF6ssrXKfP%2F-M5R4voQNKDuKGrSe6kk%2F-M5QoMqdgFTj9o5-0h20%2F200421_1112_002%202.png?alt=media&#x26;token=731e54ea-0bf3-47a5-b509-9798e8ff3a71" alt=""></div>

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

Узел с выпадающим списком, в котором находятся различные типы (классы) объектов Revit. С его помощью можно делать некоторые виды выборок, недоступные через [выборку по категории](#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`](#all-elements-of-type) можно получить полный список типоразмеров стен, которые мы видим в диспетчере [проекта Revit](https://docs.bimplanet.org/mics/glossary#revit-project).

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

![](https://2252576216-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LurrPeyGQkF6ssrXKfP%2F-M5R4voQNKDuKGrSe6kk%2F-M5R707RFEgZDhQedpUm%2F200421_1242_006.jpg?alt=media\&token=373d336d-f8c7-4dfb-8f88-dace7bd6867c)

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

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

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

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

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

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

<div align="left"><img src="https://2252576216-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LurrPeyGQkF6ssrXKfP%2F-M5R9lOLj7Ki7nFJG1Nx%2F-M5RA_n57sO2l-tLXBr1%2F200421_1248_007.jpg?alt=media&#x26;token=4247a1d3-e9b2-45d8-b9de-747715e8591e" alt=""></div>

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

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

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

### All Elements of Type

<div align="left"><img src="https://2252576216-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LurrPeyGQkF6ssrXKfP%2F-M5RBWVMrFDdZ7EvpvR9%2F-M5RC8SwpJHBFAhNIL1Y%2F200421_1114_003%201.png?alt=media&#x26;token=e92d827a-ff07-478b-84a8-26afa4b71754" alt=""></div>

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

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

<div align="left"><img src="https://2252576216-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LurrPeyGQkF6ssrXKfP%2F-M5RBWVMrFDdZ7EvpvR9%2F-M5RDGEyikWLigMoq-w8%2F200421_1311_009.jpg?alt=media&#x26;token=09b9bdb8-bd5d-4628-ae78-f72eddaa8b0d" 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`](#element-types). При попытке использовать этот нод каким-либо другим способом в большинстве случаев вы получите ошибку!
{% endhint %}

<div align="left"><img src="https://2252576216-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LurrPeyGQkF6ssrXKfP%2F-M5RBWVMrFDdZ7EvpvR9%2F-M5RESbujXKtBtHuMu4x%2F200421_1316_010.jpg?alt=media&#x26;token=ee797f1c-a270-43f0-aa67-6619480964fc" alt=""></div>

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

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

### Family Types

<div align="left"><img src="https://2252576216-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LurrPeyGQkF6ssrXKfP%2F-M5gfhdRZV2UCyKl5MCL%2F-M5gh1r-Kb3oj_rSosDq%2F200423_1316_002%201.png?alt=media&#x26;token=adf3bd27-e813-4a6b-b2d6-4ce3d51c1603" alt=""></div>

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

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

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

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

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

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

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

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

<div align="left"><img src="https://2252576216-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LurrPeyGQkF6ssrXKfP%2F-M5gmu1xm-UC2mwXmcY2%2F-M5gneL5ap8lJckgyonY%2F200423_1316_001.jpg?alt=media&#x26;token=3bfb086b-69eb-4899-9e51-329b719579ce" alt=""></div>

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

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

![](https://2252576216-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LurrPeyGQkF6ssrXKfP%2F-M5gpvCQD01OY_VzeEX1%2F-M5grYkgUYlcSSlRSqH9%2F200424_1821_004.jpg?alt=media\&token=2ac8c481-7582-404b-b7a2-5b655deff3d6)

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

### All Elements of Family Type

<div align="left"><img src="https://2252576216-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LurrPeyGQkF6ssrXKfP%2F-M5ghdzV2XisyPMWVAi1%2F-M5gjAfayaGLXC5XVGVS%2F200423_1316_003.png?alt=media&#x26;token=fe476ac4-0571-4b53-8346-4f8de983e9ac" alt=""></div>

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

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

![](https://2252576216-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LurrPeyGQkF6ssrXKfP%2F-M5gmu1xm-UC2mwXmcY2%2F-M5gn4ageoZJFhF29Tax%2F200424_1816_003.jpg?alt=media\&token=3b5ad05e-7bb1-4c70-ac7a-24ca4a02ab23)

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

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

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

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

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

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

<div align="left"><img src="https://2252576216-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LurrPeyGQkF6ssrXKfP%2F-M5gvlAv_gsy_y2gNDcR%2F-M5gyLje1Fh4ugk_6C7Y%2F200424_1912_006.jpg?alt=media&#x26;token=6e8fd4a2-b214-4f86-bdee-a18c7eeef1ce" alt=""></div>

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

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

![2020 © BIM Planet](https://2252576216-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LurrPeyGQkF6ssrXKfP%2F-Lwx5hK4AW5gziaI8JGs%2F-Lwx4ydnXUIV_zCcwIR-%2FDynamoBIMPlanet_Header'''_small.png?alt=media\&token=abae079b-85a9-4478-bd48-7e93d6ece5ca)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.bimplanet.org/dynamo-nodes/revit-nodes/selection-nodes.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
