# 2.6. Узлы FormIt в Dynamo

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

*В этой главе будет использована модель* ***Encode Campus Sample Model.axm*** *и* *сценарий* ***Stairs by Top Edge.dyn*** *модуля Dynamo. Если вы еще этого не сделали, эти файлы можно скачать из* ***набора данных к части II руководства FormIt Primer**.*

*Если вы только начинаете использовать Dynamo в FormIt, рекомендуется предварительно прочитать главу* ***1.10.*** ***Вычислительные группы Dynamo*** *в* ***части I*** *настоящего руководства. Хотя в этой главе рассматривается редактирование графиков Dynamo, речь идет только об элементах Dynamo, связанных с узлами для FormIt. Если вы еще не работали с Dynamo, дополнительные сведения можно найти на странице* [***Dynamo Primer***](https://primer.dynamobim.org/01_Introduction/1-2_what_is_dynamo.html)***.***

***Для работы с этим разделом требуется FormIt for Windows 2022.0 или более поздней версии.***

## **Добавление папки библиотеки Dynamo**

*Хотя FormIt содержит готовую к использованию библиотеку графиков в папке **Dynamo Samples**, необходимо место для создания и сохранения пользовательских графиков. Для этого сначала потребуется добавить новую **папку библиотеки Dynamo** в FormIt. Эта процедура аналогична добавлению папки в библиотеку компонентов FormIt (см. главу **1.11. Импорт моделей с использованием Библиотеки компонентов** в части I данного руководства).*

1 – Чтобы добавить **новую папку библиотеки Dynamo**, выполните следующие действия.

1. Откройте файл **Encode Campus Sample Model.axm** и перейдите на **палитру Dynamo**.
2. Нажмите кнопку **Привязать каталог Dynamo** в верхнем левом углу.
3. Откроется окно **Настройки** с автоматически выбранной вкладкой **Dynamo**. Щелкните значок «плюс» (**Добавить новую папку библиотеки Dynamo**).
4. Перейдите к папке, в которую был загружен **набор данных Encode Model**, и выберите папку **Supporting Files** > **FormIt Primer Graphs**.
5. Нажмите **Выбрать папку**, а затем **ОК** для перехода назад в FormIt.
6. В раскрывающемся списке папок в верхней части **палитры Dynamo** выберите только что добавленную папку **FormIt Primer Graphs**.

![](https://911479504-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTy1RB39tHrJIZ4W3sCan%2Fuploads%2Fgit-blob-57eef08012ed90a0da31117b7c9b2b0f0e462d5b%2F0%20\(21\).png?alt=media)

## **Узел** **SendToFormIt**

*Для работы с FormIt любой график Dynamo должен содержать хотя бы один узел* ***SendToFormIt*** *.*

1 – Сначала попробуйте использовать график **Stair by Top Edge** из только что добавленной папки без внесения в него изменений.

1. Сначала перейдите к сцене Section — Longitudinal.

2 – Добавьте узел **SendToFormIt** в график. Для этого используйте инструмент «Редактировать исходный график» в новой модели FormIt, чтобы не вносить изменения в рабочую модель.

1. Щелкните правой кнопкой мыши значок **FormIt** на панели задач и выберите **FormIt**, чтобы открыть новое пустое окно FormIt (или щелкните средней кнопкой мыши значок FormIt).
2. На **палитре Dynamo** найдите миниатюру **Stairs by Top Edge** и щелкните небольшую стрелку раскрывающегося списка на правой кромке миниатюры или саму миниатюру правой кнопкой мыши.
3. Выберите команду **Редактировать исходный график**. Модуль Dynamo и график для редактирования откроются автоматически.

![](https://911479504-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTy1RB39tHrJIZ4W3sCan%2Fuploads%2Fgit-blob-45c7ca6f01ae7b6e79fffc1f3904b1771548d597%2F2%20\(22\).png?alt=media)

2 – После открытия Dynamo и графика увеличьте область, показанную ниже, в крайней правой части которой находятся группы зеленого и фиолетового цветов.

![](https://911479504-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTy1RB39tHrJIZ4W3sCan%2Fuploads%2Fgit-blob-b825af4619a8e3ceadb72f612ecbf8cb388eb038%2F3%20\(19\).png?alt=media)

***Примечание.*** *Графики Dynamo выполняются слева направо, поэтому узлы вывода обычно расположены в правой части графика.*

3 – Теперь необходимо добавить узел **SendToFormIt**, чтобы отправить геометрию лестницы, которая отображается на заднем плане, в модель FormIt.

1. В области «Надстройки» (пакеты) слева разверните раскрывающийся список **FormIt** и выберите **SendToFormIt**. В центре экрана отобразится узел **SendToFormIt**.
2. Добавьте новый узел в группу фиолетового цвета **Send Stair Geometry to FormIt**. Для этого выберите эту группу и новый узел **SendToFormIt**, а затем щелкните правой кнопкой мыши узел **SendToFormIt** и выберите команду **Добавить в группу**. Переместите новый узел в расположение, аналогичное показанному на изображении ниже.
3. Щелкните правой кнопкой мыши узел **SendToFormIt** и убедитесь, что установлен флажок **Является выводом**. Обычно он установлен по умолчанию, но если это не так, геометрия не будет отправлена в FormIt.
4. Переименуйте узел **SendToFormIt** в **SendToFormIt.Stairs**.
5. Подсоедините 2 (два) порта ввода нового узла **SendToFormIt.Stairs**, как показано на изображении ниже.

![](https://911479504-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTy1RB39tHrJIZ4W3sCan%2Fuploads%2Fgit-blob-7b50affceaab1277b88ce55dc05a32e7a45f1101%2F4%20\(18\).png?alt=media)

***Примечание.*** *Хотя мы используем только узел параметров* ***SetAsMesh***, *который определяет, как геометрия будет отправлена в FormIt — в виде объекта или в виде сетки, —* *доступно еще несколько узлов* ***FormItGroupOptions*** *. Каждый из них управляет различными свойствами геометрии, отправляемой в FormIt. Вы можете самостоятельно проверить, как работают другие узлы.*

4 – Вернитесь в FormIt и проверьте результат.

1. Сохраните и закройте Dynamo. Обновленный график автоматически загрузится обратно в FormIt.
2. Вернитесь в окно FormIt с файлом **Encode Campus Sample** и на **палитре Dynamo** еще раз щелкните сценарий **Stairs by Top Edge**.
3. Разместите лестницу в модели, как показано на изображении ниже.
4. Выберите лестницу и обратите внимание, что имя ее группы совпадает с именем графика Dynamo.
5. Дважды щелкните группу, чтобы изменить ее, и выберите вложенную группу геометрии лестницы. Обратите внимание, что имя этой группы совпадает с именем, присвоенным узлу в Dynamo.

![](https://911479504-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTy1RB39tHrJIZ4W3sCan%2Fuploads%2Fgit-blob-b4f5b4739f1f208006ad1d68456cf5107f186471%2F5%20\(17\).png?alt=media)

***Примечание.*** *Не обращайте внимания на точность местоположения лестницы. Оно будет скорректировано в следующем разделе.*

![](https://911479504-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTy1RB39tHrJIZ4W3sCan%2Fuploads%2Fgit-blob-c2c757e3c9f0ca166cf88bd0d7e5b0ec102c1444%2F6%20\(14\)%20\(2\).png?alt=media)

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

## **Узлы SelectFromFormIt**

*В предыдущих главах уже отмечалось, что графики Dynamo могут предлагать пользователю выбрать определенную геометрию, которая затем используется в графике. Добавьте 2 (два) узла в график лестницы, позволяющие рассчитать ориентацию, ширину и высоту лестницы в соответствии с выбранной геометрией FormIt в Dynamo.*

1 – Удалите только что размещенную лестницу.

2 - Вернитесь в пустое окно FormIt.

3 - На **палитре Dynamo** щелкните раскрывающийся список миниатюры **Stairs by Top Edge** и выберите **Редактировать исходный график**. График снова откроется в Dynamo.

***Примечание.*** *При редактировании графика Dynamo непосредственно на* ***палитре свойств*** *путем выбора команды* ***Редактировать исходный график*** *(а не на* ***палитре Dynamo**) изменяется только встроенный график для данной группы. Исходный график, сохраненный в папке, которая была ранее добавлена в библиотеку Dynamo в FormIt, остается неизменным.*

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

![](https://911479504-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTy1RB39tHrJIZ4W3sCan%2Fuploads%2Fgit-blob-772ea8f599aab0c27c50ceecc44494cdd6e0407b%2F7%20\(9\).png?alt=media)

5 – Чтобы добавить новые узлы выбора, выполните следующие действия.

1. В области **Надстройки** разверните элемент **FormIt** и дважды щелкните **SelectFromFormIt**, чтобы создать 2 (два) новых узла в центре экрана.
2. Расположите их один над другим, как показано на изображении ниже, создайте для них группу оранжевого цвета и присвойте ей имя **Geometry Selected from FormIt**. Порядок, в котором пользователю предлагается выбрать элементы в FormIt, продиктован вертикальным расположением узлов выбора в Dynamo. Верхний узел отображается первым, нижний — последним.
3. Измените имя верхнего узла на **Select Top Edge**, а нижнего узла на **Select Bottom Floor**. При запуске этого графика в FormIt отображается мастер выбора Dynamo, который использует имена этих узлов при запросе на выбор геометрии.
4. Щелкните правой кнопкой мыши каждый из узлов и убедитесь, что установлен флажок **Является вводом**. Флажок должен быть установлен по умолчанию, в противном случае эти узлы не будут распознаваться FormIt.
5. Подсоедините новые узлы выбора, как показано на изображении ниже. Каждый из них имеет только 1 (одно) соединение.

![](https://911479504-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTy1RB39tHrJIZ4W3sCan%2Fuploads%2Fgit-blob-6986ab3ab42b7314975d4d4bb90e7797bc6c7759%2F8%20\(11\).png?alt=media)

***Примечание.*** *Новые узлы с предупреждениями обозначены желтым цветом (см. изображение выше). Пока их можно игнорировать. Предупреждения появляются из-за того, что узлы ожидают геометрию из FormIt, но еще не получили ее (так как только что были добавлены).*

6 – Теперь необходимо внести в график дополнительные изменения, требуемые для создания лестниц из геометрии, полученной узлами выбора. Сначала необходимо изменить порты ввода **Floor-to-Floor Height** и **Stair Width**, чтобы они получали значения из выбранной геометрии, а не из регуляторов ввода.

1. Нажав и удерживая клавишу **SHIFT**, щелкните порт вывода узла **Floor-to-Floor Height** внутри группы оранжевого цвета **Slider Inputs** и переместите провода к порту вывода узла **Calculated Floor-to-Floor Height**.
2. Таким же образом переместите провода вывода от узла **Stair Width** в группе **Slider Inputs** к расположенному выше порту вывода узла **Calculated Floor-to-Floor Height**.
3. Удалите старые узлы **Floor-to-Floor Height** и **Stair Width**, так как они больше не потребуются.

![](https://911479504-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTy1RB39tHrJIZ4W3sCan%2Fuploads%2Fgit-blob-28537eb02e9819161fa6cd3d2722be3db90929fd%2F9%20\(8\)%20\(2\).png?alt=media)

***Примечание.*** *Добавление* *узлов ввода Dynamo в график аналогично добавлению узлов* ***SelectFromFormIt*** *. Убедитесь, что они имеют пометку* ***Является вводом**, переименуйте и расположите их соответствующим образом для отображения в FormIt, после чего они появятся в* ***палитре свойств** FormIt.*

7 – Перейдите в правую часть графика, куда ранее был добавлен узел **SendToFormIt.Stairs**. Необходимо, чтобы этот узел вывода использовал геометрию лестницы, перемещенную и повернутую в соответствии с выбранной геометрией в FormIt. Вместо группы **Stair Geometry** подсоединитесь к группе **Rotated and Translated Stair Geometry**.

![](https://911479504-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTy1RB39tHrJIZ4W3sCan%2Fuploads%2Fgit-blob-d2efa336db4aaefb33b94ad3e6ec543caeee5021%2F10%20\(8\)%20\(2\).png?alt=media)

## **Использование графика**

1 - После добавления узлов выбора и обработки график будет готов к работе. Сохраните и закройте Dynamo, а затем вернитесь в окно FormIt с файлом **Encode Campus Sample Model.axm** и попробуйте выполнить следующие действия.

1. Убедитесь, что вы все еще находитесь в сцене **Section — Longitudinal**, и нарисуйте линию длиной 6 футов вдоль правого края проема лестницы первого этажа. Это позволит определить ширину и угол лестницы.
2. На **палитре Dynamo** щелкните миниатюру **Stairs by Top Edge**, чтобы начать построение графика.
3. Появится мастер выбора Dynamo с инструкциями о том, как сделать первый выбор, используя имя, которое было присвоено этому узлу выбора ранее: **Select Top Edge**. После выбора только что нарисованной кромки щелкните стрелку «вперед» в мастере выбора Dynamo.
4. Появится запрос с именем другого узла выбора — **Select Bottom Floor**. Выберите перекрытие первого этажа основного здания и щелкните флажок.
5. После создания лестницы обратите внимание на то, что на **палитре свойств** теперь можно повторно выбрать геометрию для любого из узлов выбора. Также обратите внимание на то, что регуляторы, соответствующие удаленным узлам ввода, а именно **Floor-to-Floor Height** и **Stair Width**, больше не отображаются. Теперь эти значения рассчитываются на основе выбранной геометрии.

![](https://911479504-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTy1RB39tHrJIZ4W3sCan%2Fuploads%2Fgit-blob-1a6a0ea50b03e875cbc6786bad9fd5945ada946d%2F11%20\(8\).png?alt=media)

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

2 – В завершение можно добавить собственные штрихи. С помощью различных инструментов, рассмотренных в предыдущих главах, вы выполнили следующее.

1. Создали лестницу между этажами.
2. Немного повернули верхнюю кромку нижней лестницы, чтобы расположить лестницу по диагонали к основному этажу.
3. Чтобы добиться нужных настроек, скорректировали некоторые регуляторы ввода для каждой лестницы.
4. С помощью графика Dynamo **Railing Along Path** создали лестничные площадки вокруг лестничных проемов.
5. Для каждой лестницы с помощью команды **Сдвиг** добавили центральный косоур.
6. Разместили все лестницы, косоуры и перила в новом слое с именем **Encode Main Building — Stairs**.

![Finished stairs, views in section.](https://911479504-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTy1RB39tHrJIZ4W3sCan%2Fuploads%2Fgit-blob-7b2ad2e5ba6e5dba2e24d81619c551a9b88adb4c%2F12%20\(7\).png?alt=media)

![Finished stairs, as visible from the Eye Level – Plaza scene.](https://911479504-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTy1RB39tHrJIZ4W3sCan%2Fuploads%2Fgit-blob-48f702a553dacc2b0cd0e875edc054828c292312%2F13%20\(7\)%20\(2\).png?alt=media)
