> For the complete documentation index, see [llms.txt](https://primer2.dynamobim.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://primer2.dynamobim.org/ru/4_nodes_and_wires.md).

# Узлы и провода

## Узлы

**Узлы** Dynamo — это объекты, путем соединения которых создается визуальная программа. Каждый **узел** выполняет ту или иную операцию. Это может быть как простая операция, например хранение числа, так и более сложная, например создание или запрос геометрического объекта.

### Структура узла

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

![](https://2422276774-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Frrl0CzV5yPtxYRNkwD4h%2Fuploads%2Fgit-blob-24ea25c2e2ea156c439b74695caa04c2eb1682fe%2Fnodes%20and%20wires%20-%20nodes%20anatomy.jpg?alt=media)

> 1. Имя: имя узла, составленное по шаблону `Category.Name`.
> 2. Основная часть узла: если щелкнуть ее правой кнопкой мыши, отобразятся параметры, действующие на уровне узла.
> 3. Порты (ввода и вывода): разъемы для проводов, передающих входные данные для узла, а также результаты выполненной узлом операции.
> 4. Значение по умолчанию: щелкните порт ввода правой кнопкой мыши. Для некоторых узлов заданы значения по умолчанию, которые можно использовать или игнорировать.
> 5. Значок переплетения: значение [параметра «Переплетение»](/ru/5_essential_nodes_and_concepts/5-4_designing-with-lists/1-whats-a-list.md#lacing), заданное для совпадающих входных данных списка (подробные сведения см. далее).

### Порты ввода/вывода узлов

Порты — это вводы и выводы узлов, играющие роль разъемов для проводов. В порты, расположенные слева, поступают входящие данные, а из портов, расположенных справа, передаются далее результаты выполненной операции.

Каждый порт рассчитан на прием данных определенного типа. Если соединить с портами узла Point.ByCoordinates число, например *2.75*, то операция выполнится успешно и будет создана точка. Но если вместо числа соединить с тем же портом текстовое значение, например *Red*, это приведет к ошибке.

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

![](https://2422276774-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Frrl0CzV5yPtxYRNkwD4h%2Fuploads%2Fgit-blob-5cb78b09e5299c6e365fae655e56383f1949037b%2Fnodes%20and%20wires%20-%20nodes%20input%20and%20tooltip.jpg?alt=media)

> 1. Метка порта
> 2. Подсказка
> 3. Тип данных
> 4. Значение по умолчанию

### Состояния узла

Для демонстрации состояния выполнения операций в узлах визуальной программы в Dynamo используются разные цвета. Иерархия состояний определяется следующим образом: ошибка > предупреждение > информация > просмотр.

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

![](https://2422276774-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Frrl0CzV5yPtxYRNkwD4h%2Fuploads%2Fgit-blob-9460a87ae359d8b0391052e1546c6ccb711be8d9%2Fnodesandwires-nodestates.png?alt=media)

> 1. Соответствующие входные данные: если над входными портами узла отображаются синие вертикальные полосы, это означает, что узел правильно подключен, и в него поступают входные данные нужного типа.
> 2. Несоответствующие входные данные: если над одним или несколькими входными портами узла отображается красная вертикальная полоса, нужно подключить эти порты так, чтобы в них поступали входные данные нужного типа.
> 3. Функция: это узел, выводом которого является функция и порт вывода которого помечен серой вертикальной полосой.
> 4. Выбранный: выбранные узлы выделяются голубой рамкой по периметру.
> 5. Замороженный: замороженными являются полупрозрачные синие узлы, и выполнение операций таких узлов приостановлено.
> 6. Просмотр откл.: серый цвет строки состояния под узлом и значок глаза <img src="https://2422276774-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Frrl0CzV5yPtxYRNkwD4h%2Fuploads%2Fgit-blob-d4a8ab7ec6b4f3371adae18b5b918352890b25fe%2Fnodes%20and%20wires%20-%20preview%20off.jpg?alt=media" alt="" data-size="line"> указывают на то, что просмотр геометрии для этого узла отключен.
> 7. Предупреждение: желтый цвет строки состояния под узлом указывает на состояние предупреждения. Это значит, что в узле отсутствуют входные данные либо используются неверные типы данных.
> 8. Ошибка: красный цвет строки состояния под узлом указывает на то, что в узле произошла ошибка.
> 9. Сведения: синий цвет строки состояния под узлом указывает на информационное состояние, которое обозначает наличие полезных сведений об узлах. Переход к этому состоянию может быть вызван значением, близким к максимальному значению, поддерживаемому узлом, либо таким использованием узла, при котором может пострадать производительность, и т. д.

#### Обработка узлов с ошибками и предупреждениями

Если визуальная программа содержит предупреждения или ошибки, то Dynamo предоставляет подробную информацию о проблеме. Над именем каждого желтого узла отображается подсказка. Наведите указатель на значок предупреждения ![](https://2422276774-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Frrl0CzV5yPtxYRNkwD4h%2Fuploads%2Fgit-blob-fa6234641f9a475ddc5f28de8e8ab8dea030d001%2Fnodes%20and%20wires%20-%20node%20warning%20icon.png?alt=media) или ошибки ![](https://2422276774-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Frrl0CzV5yPtxYRNkwD4h%2Fuploads%2Fgit-blob-244a104d5b82aeaadcb7401501d593626d3c83fa%2Fnodes%20and%20wires%20-%20node%20error%20icon.png?alt=media), чтобы узнать подробности.

{% hint style="info" %}
Совет. Используя информацию из подсказки, проверьте узлы, предшествующие текущему, на наличие ошибок в типе или структуре требуемых данных.
{% endhint %}

![](https://2422276774-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Frrl0CzV5yPtxYRNkwD4h%2Fuploads%2Fgit-blob-c1eefb58220daa81bd40d3443646768ada131319%2Fnodes%20and%20wires%20-%20nodes%20with%20warning%20tooltip.jpg?alt=media)

> 1. Подсказка с предупреждением: не указанные данные или значение Null не могут использоваться как данные типа Double, например число.
> 2. Используйте узел Watch, чтобы просмотреть входные данные.
> 3. Узел Number, предшествующий текущему, передает на выходе текстовое значение Red, а не число.

### Замораживание узлов

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

<figure><img src="https://2422276774-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Frrl0CzV5yPtxYRNkwD4h%2Fuploads%2Fgit-blob-6fbb4617323d6342e96e3c285bf86393fb3dcdae%2Fnodes-freezing.png?alt=media" alt="" width="312"><figcaption></figcaption></figure>

При замораживании узла также замораживаются следующие за ним узлы. Другими словами, все узлы, которые зависят от вывода замороженного узла, также будут заморожены.

<figure><img src="https://2422276774-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Frrl0CzV5yPtxYRNkwD4h%2Fuploads%2Fgit-blob-13ca4bcd74fe47af0e436ca3ca14987182f0d7f8%2Fnodes-freezing-animated.gif?alt=media" alt=""><figcaption></figcaption></figure>

## Провода

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

### Поток выполнения операций в программе <a href="#program-flow" id="program-flow"></a>

Каждый провод соединяет порт вывода одного узла с портом ввода другого. Такой порядок подключения определяет направление **потока данных** в визуальной программе.

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

![](https://2422276774-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Frrl0CzV5yPtxYRNkwD4h%2Fuploads%2Fgit-blob-cd8fbd289c284d356a69b825ed6c32302619ff50%2Fnodes%20and%20wires%20-%20flow%20of%20data.jpg?alt=media)

### Создание проводов <a href="#creating-wires" id="creating-wires"></a>

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

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

![](https://2422276774-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Frrl0CzV5yPtxYRNkwD4h%2Fuploads%2Fgit-blob-149fda204f7d698563520b5cd825f1473bf8c791%2Fnodes%20and%20wires%20-%20creating%20a%20wire.gif?alt=media)

### Редактирование проводов <a href="#editing-wires" id="editing-wires"></a>

Зачастую при работе над визуальной программой возникает необходимость в корректировке потока выполнения операций путем редактирования проводов, играющих роль соединительных элементов. Чтобы отредактировать провод, щелкните порт ввода подсоединенного узла. Далее выберите один из следующих вариантов:

* Чтобы изменить соединение с портом ввода, щелкните другой порт ввода.

![](https://2422276774-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Frrl0CzV5yPtxYRNkwD4h%2Fuploads%2Fgit-blob-8ec926ed381fec90399942f0de4114e8f12232e1%2Fnodesandwires-editwirechangeport.gif?alt=media)

* Чтобы удалить провод, перетащите его в сторону от узла, а затем щелкните в рабочем пространстве.

![](https://2422276774-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Frrl0CzV5yPtxYRNkwD4h%2Fuploads%2Fgit-blob-0f86bdc6acccad936ca869b93e6819a6acf88d45%2Fnodes%20and%20wires%20-%20edit%20wires%20remove.gif?alt=media)

* Чтобы повторно соединить несколько проводов, щелкните нужные элементы, нажав и удерживая клавишу SHIFT.

![](https://2422276774-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Frrl0CzV5yPtxYRNkwD4h%2Fuploads%2Fgit-blob-61b2efe3cf5a0d016093c45f6167183ba71913be%2Fnodes%20and%20wires%20-%20edit%20multi%20ports.gif?alt=media)

* Чтобы скопировать провод, щелкните нужный элемент, нажав и удерживая клавишу CTRL.

![](https://2422276774-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Frrl0CzV5yPtxYRNkwD4h%2Fuploads%2Fgit-blob-888a7eb663b494df45e78194817f760def6b1fac%2Fnodes%20and%20wires%20-%20duplicate%20wire.gif?alt=media)

#### Провода по умолчанию и выделенные провода <a href="#wire-previews" id="wire-previews"></a>

По умолчанию провода отображаются при просмотре как серые прерывистые линии. При выборе узла все подключенные к нему провода выделяются голубым цветом, как и сам узел.

![](https://2422276774-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Frrl0CzV5yPtxYRNkwD4h%2Fuploads%2Fgit-blob-e39425871fb48601cff8115b3556f1de920f0aee%2Fnodes%20and%20wires%20-%20default%20vs%20highlighted%20wires.jpg?alt=media)

> 1. Выделенный провод
> 2. Провод по умолчанию

**Скрытие проводов по умолчанию**

Если требуется скрыть провода на графике, снимите флажок «Показать соединители» в меню «Просмотреть» > «Соединители».

В данном случае бледно-голубым цветом будут отображаться только выбранные узлы и соединенные с ними провода.

![](https://2422276774-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Frrl0CzV5yPtxYRNkwD4h%2Fuploads%2Fgit-blob-5655d0c0649b4b00f702b2833d2d564cfdb318f3%2Fnodes%20and%20wires%20-%20hide%20wires%20setting.gif?alt=media)

#### Скрытие отдельных проводов

Чтобы скрыть выбранный провод, щелкните правой кнопкой мыши вывод узла и выберите «Скрыть провода».

![](https://2422276774-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Frrl0CzV5yPtxYRNkwD4h%2Fuploads%2Fgit-blob-68bd919f75bedffbbc694d7cf8aba7807efc471d%2Fnodes%20and%20wires%20-%20hide%20selected%20wire.gif?alt=media)
