# Библиотека

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

!

* Основные узлы: входят в установку по умолчанию.
* Пользовательские узлы: сохраняйте часто используемые процедуры или специальные графики в качестве пользовательских узлов. Ими также можно поделиться с сообществом.
* Узлы из Package Manager: коллекция опубликованных пользовательских узлов.

Мы рассмотрим [иерархические категории узлов](#library-hierarchy-for-categories), способ [быстрого поиска узлов в библиотеке](#search-by-hierarchy), а также некоторые из [часто используемых узлов](#frequently-used-nodes).

### Иерархия библиотек для категорий

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

Откройте библиотеку, щелкнув меню, чтобы развернуть каждую категорию и ее подкатегорию.

{% hint style="info" %}
Начинать знакомство с программой рекомендуется с меню Geometry, так как в них представлено наибольшее количество узлов.
{% endhint %}

!

> 1. Библиотека
> 2. Категория
> 3. Подкатегория
> 4. Узел

Далее внутри подкатегории выполняется распределение узлов в зависимости от их функции: **создание** данных, выполнение **действия** или **запрос** данных.

* ! **Create**: создание и построение геометрии с нуля. Например, окружности.
* ! **Action**: выполнение действия с объектом. Например, масштабирование окружности.
* ! **Query**: получение свойства уже существующего объекта. Например, получение радиуса окружности.

Наведите указатель на узел, чтобы посмотреть подробные сведения, помимо его имени и значка. Такие подсказки позволяют быстро определить функции, выполняемые узлом, какие данные ему требуются на входе, и что он выдает на выходе.

!

> 1. Описание: описание узла на обычном языке.
> 2. Значок: увеличенная версия значка, используемого в меню библиотеки.
> 3. Входные данные: наименование, тип и структура данных.
> 4. Выходные данные: наименование, тип и структура данных.

### Быстрый поиск в библиотеке

Если вам с относительной точностью известно, какой узел необходимо добавить в рабочее пространство, введите ключевые слова в поле **Поиск**, чтобы найти все соответствующие узлы.

Щелчком выберите необходимый узел или нажмите клавишу ENTER, чтобы добавить выделенные узлы в центр рабочего пространства.

!

#### Поиск по иерархии

Поиск узлов можно выполнять не только по ключевым словам, но и по иерархии, разделяя ее уровни точкой в поле поиска, или с помощью узлов Code Block (в которых используется *текстовый язык Dynamo*).

Иерархия каждой библиотеки отражается в имени узлов, добавляемых в рабочее пространство.

При вводе тех или иных фрагментов расположения узла в библиотечной иерархии в формате `library.category.nodeName` отображаются различные результаты.

* `library.category.nodeName`

!

* `category.nodeName`

!

* `nodeName` или `keyword`

!

В рабочем пространстве имя узла обычно представлено в формате `category.nodeName`. Есть некоторые исключения, в частности, узлы категорий Input и View.

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

* Узлы из большинства библиотек содержат формат категории.

!

* Узлы `Point.ByCoordinates` и `UV.ByCoordinates` имеют одинаковое имя, но относятся к разным категориям.

!

* К исключениям относятся встроенные функции, узлы Core.Input, Core.View и логические операторы.

!

### Часто используемые узлы

В базовый комплект установки приложения Dynamo входят сотни узлов. Какие из них наиболее важны при разработке визуальных программ? Рассмотрим узлы, которые позволяют определить параметры программы (**Input**), отображать результаты действия, выполняемого тем или иным узлом (**Watch**), и задавать входные данные или функции с помощью горячей клавиши (**Code Block**).

#### Узлы Input

Узлы Input — это ключевой инструмент, благодаря которому пользователи визуальных программ могут работать с основными параметрами. Ниже перечислены некоторые узлы, доступные в основной библиотеке.

| Узел           |   | Узел           |   |
| -------------- | - | -------------- | - |
| Логическое     | ! | Number         | ! |
| String         | ! | Number Slider  | ! |
| Directory Path | ! | Integer Slider | ! |
| File Path      | ! |                |   |

#### Узлы Watch и Watch3D

Узлы Watch играют важную роль в управлении потоком данных в визуальной программе. Результат работы узла можно увидеть в окне **предварительного просмотра данных узла**, наведя курсор на узел.

!

Элемент удобно просматривать в узле **Watch**.

!

Кроме того, результаты геометрии можно просмотреть с помощью узла **Watch3D**.

!

Оба этих узла находятся в категории видов основной библиотеки.

{% hint style="info" %}
Совет. Иногда при работе с большим количеством узлов пользоваться функцией 3D-просмотра может быть неудобно. В этом случае можно снять флажок фонового просмотра в меню «Параметры» и использовать узел Watch3D для предварительного просмотра геометрии.
{% endhint %}

#### Code Block

Узлы Code Block позволяют создавать блоки кода, состоящие из строк, разделенных запятыми. Это так же просто, как и с узлом `X/Y`.

Кроме того, узлы Code Block можно использовать как горячую клавишу для ввода чисел или вызова другой функции узла. Для этого используется синтаксис, соответствующий соглашению об именовании для текстового языка Dynamo — [DesignScript](https://primer2.dynamobim.org/ru/8_coding_in_dynamo/8-1_code-blocks-and-design-script/2-design-script-syntax).

Ниже приведен простой пример (с инструкциями) по использованию Code Block в сценарии.

1. Дважды щелкните мышью для создания узла Code Block.
2. Введите `Circle.ByCenterPointRadius(x,y);`.
3. Щелкните в рабочем пространстве, чтобы отменить выбор и автоматически добавить входные порты `x` и `y`.
4. Создайте узлы Point.ByCoordinates и Number Slider, затем соедините их с портами ввода в узле Code Block.
5. Результат выполнения визуальной программы отображается в виде окружности в окне 3D-просмотра.
