# 2.6 - Dynamo FormIt ノード

*FormIt には、FormIt と Dynamo の間でジオメトリを転送する Dynamo ノードのライブラリが用意されています。これまでの章で、Dynamo オブジェクトを作成し、FormIt 内で動的に調整する方法について説明しました。この章では、指定した Dynamo グラフを編集して、OOTB 階段グラフの修正バージョンを作成します。*

*この章では、モデル* ***Encode Campus Sample Model.axm*** *と* *Dynamo スクリプト* ***Stairs by Top Edge.dyn*** *の両方を使用します。まだダウンロードしていない場合は、* ***FormIt Primer Part 2 Dataset** をダウンロードすると、両方のファイルが見つかります。*

*FormIt で Dynamo を初めて使用する場合は、Primer* ***パート 1*** *の「* ***1.10 -*** ***Dynamo の計算グループ*** *」の章を参照してください。この章では、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** フォルダ内に OOTB グラフのライブラリが用意されていますが、独自のカスタム グラフを作成して保存する場所が必要です。これを行うには、まず、FormIt の **Dynamo ライブラリの場所** に新しいフォルダを追加します。これは、FormIt のコンテンツ ライブラリにフォルダを追加する場合と似ています。必要に応じて、Primer Part 1 の「**1.11 - コンテンツ ライブラリを使用してモデルを読み込む** 」の章を参照してください。*

1 - 新しい **Dynamo ライブラリの場所** を追加するには、次のように操作します。

1. **Encode Campus Sample Model.axm** を開いた状態で、**\[Dynamo]パレット** に移動します。
2. 左上隅の **\[Dynamo フォルダをリンク]** ボタンをクリックします。
3. **\[基本設定]** ウィンドウが開き、**\[Dynamo]** タブが自動的に選択されます。新しい Dynamo ライブラリの場所を追加する**プラス** アイコンをクリックします。
4. **Encode Model Data Set** をダウンロードした場所にナビゲートし、**Supporting Files** > **FormIt Primer Graphs** フォルダを選択します。
5. **\[フォルダを選択]** をクリックし、**\[OK]** をクリックすると、FormIt に戻ります。
6. **\[Dynamo]パレット** の上部にあるフォルダのドロップダウンで、先ほど追加した **FormIt Primer Graphs** フォルダを選択します。

![](/files/beKwk20euDsNqSiIPE7e)

## **SendToFormIt** **ノード**

*Dynamo グラフを FormIt で使用するには、少なくとも 1 つの* ***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 が自動的に起動し、編集するグラフが開きます。

![](/files/D9VCjL4Edtdt3aTQCgse)

2 - Dynamo とグラフが開いたら、下図の右端にある緑色と紫色のグループが含まれている領域を拡大表示します。

![](/files/iK0cT3INJ7Oyq7ozZKiv)

***注:*** *Dynamo グラフのフローの方向は左から右となっているため、通常はグラフの右端に出力ノードがあります。*

3 - ここでは、バックグラウンドで表示されている階段ジオメトリを FormIt モデルに送信するために、**SendToFormIt** ノードを追加します。

1. 左側の\[アドオン(パッケージ)]のセクションで、**\[FormIt]** ドロップダウンを展開し、**\[SendToFormIt]** をクリックします。画面の中央に **SendToFormIt** ノードが表示されます。
2. 紫色のグループ **Send Stair Geometry to FormIt** に新しいノードを追加します。これを行うには、紫色のグループと新しい **SendToFormIt** ノードの両方を選択し、**SendToFormIt** ノードを右クリックして、**\[グループに追加]** を選択します。下図に示す位置と同じような場所に新しいノードを移動します。
3. **SendToFormIt** ノードを右クリックして、**\[出力]** がオンになっていることを確認します。これは既定でオンになっています。オンになっていないと、ジオメトリは FormIt に送信されません。
4. **SendToFormIt** ノードの名前を **SendToFormIt.Stairs** に変更します。
5. 下図に示すように、新しい **SendToFormIt.Stairs** ノードの 2 つの入力を接続します。

![](/files/jn19f02QIIQGTJ6oUEgu)

***注:*** *ここでは、ジオメトリを FormIt にオブジェクトとして送信するかメッシュとして送信するかを決定する* ***SetAsMesh*** *オプション ノードのみを使用していますが、* *使用可能な* ***FormItGroupOptions*** *ノードは多数あります。各オプション ノードは、FormIt に送信されるジオメトリのさまざまなプロパティをコントロールします。他のコントロールを自由に試してみてください。*

4 - FormIt に戻り、適切に送信されたかどうかを確認します。

1. Dynamo を保存して閉じます。更新されたグラフは、自動的に FormIt に再ロードされます。
2. **Encode Campus Sample File** を開いている FormIt ウィンドウに戻り、**\[Dynamo]パレット** で **\[Stair by Top Edge]** をもう一度クリックします。
3. 下図に示すように、モデルに階段を配置します。
4. 階段を選択し、グループ名が Dynamo グラフの名前と一致していることを確認してください。
5. ここで、グループを編集するためにダブルクリックし、ネストされた階段ジオメトリ グループを選択します。グループの名前が、Dynamo でノードに付けた名前と一致しています。

![](/files/iDgaY976CkecY7KsjGYf)

***注:*** *階段の正確な位置を考慮する必要はありません。次のセクションで調整します。*

![](/files/YBaQdGCcO9QDelFXSiVi)

***注:*** *この例では必要な* ***SendToFormIt*** *ノードは 1 つのみでしたが、複数作成することもできます。ノードごとに、元となった* ***SendToFormIt*** *ノードの名前に基づいて、1 つの新しいグループが FormIt で作成されます。*

## **SelectFromFormIt ノード**

*これまでの章で説明したように、Dynamo グラフでは特定のジオメトリを選択するようユーザに求めるプロンプトが表示され、そのジオメトリがグラフで使用されます。このようなノードを階段グラフに 2 つ追加します。これにより、Dynamo 内で階段の方向、幅、高さを、選択した FormIt ジオメトリから計算できるようになります。*

1 - 先ほど配置した階段を削除します。

2 - 空の FormIt ウィンドウに戻ります。

3 - **\[Dynamo]パレット** で **\[Stairs by Top Edge]** タイルのドロップダウンをクリックし、**\[ソース グラフを編集]** を選択すると、また Dynamo で開きます。

***注:*** *Dynamo グラフを、* ***\[Dynamo]パレット*** *ではなく* ***\[プロパティ]パレット*** *の* ***\[埋め込まれたグラフを編集]** をクリックして直接編集すると、実際にはそのグループに埋め込まれたグラフのみを編集することになり、事前に FormIt の Dynamo ライブラリに追加したフォルダに保存されているソース グラフは編集されません。*

4 - 今回は、グラフの開始側、つまり左側付近に配置されることの多い選択ノードをいくつか追加します。下図に示されている領域を拡大表示します。

![](/files/rMbgqR6r2y5LqcZiPYO7)

5 - 新しい選択ノードを追加します。

1. **\[アドオン]** セクションで **\[FormIt]** を展開し、**\[SelectFromFormIt]** を 2 回クリックします。これで、画面の中央に新しいノードが 2 つ作成されます。
2. 下図に示すように、作成された 2 つを上下に配置し、オレンジ色のグループを作成して、「**Geometry Selected from FormIt** 」という名前を付けます。FormIt で要素の選択を求めるプロンプトが表示される順序は、Dynamo での選択ノードの垂直方向の配置に基づきます。つまり、一番上のノードが最初に表示され、一番下のノードが最後に表示されます。
3. 上のノードの名前を「**Select Top Edge** 」に、下のノードの名前を「**Select Bottom Floor** 」に変更します。このグラフを FormIt で実行すると、Dynamo の選択ウィザードが表示され、ジオメトリを選択するためのプロンプトとして、これらのノードの名前が使用されます。
4. 各ノードを右クリックし、**\[入力]** がオンになっていることを確認します。これは既定でオンになっています。オンになっていないと、ノードは FormIt に認識されません。
5. 下図に示すように、新しい選択ノードにワイヤで繋げます。各ノードの接続は 1 つのみです。

![](/files/DrUHTnfLOIgMejbaua48)

***注:*** *新しいノードに警告が表示され、上図のように黄色に変わる場合があります。ここではこれらの警告を無視していただいて構いません。警告が表示されるのは、ノードが FormIt からのジオメトリを必要としているのにまだ受け取っていないからです(ノードを追加したばかりであるため、これは仕方ありません)。*

6 - 選択ノードのジオメトリによって階段が作成されるよう、グラフに変更を加える必要があります。まず、**Floor-to-Floor Height** と **Stair Width** の入力を変更して、その値を入力スライダではなく、選択したジオメトリから取得するようにします。

1. **\[Shift]** を押しながらオレンジ色のグループ **Slider Inputs** 内の **Floor-to-Floor Height** ノードの出力をクリックし、そのワイヤをすぐ上の **Calculated Floor-to-Floor Height** ノードの出力に移動します。
2. 同様に、オレンジ色のグループ **Slider Inputs** の **Stair Width** ノードの出力ワイヤを、上の **Stair Width** ノードの出力に移動します。
3. 古い **Floor-to-Floor Height** ノードと **Stair Width** ノードはもう必要ないため、削除します。

![](/files/fqUVamKeVMzTmaWxlv4Y)

***注:*** *グラフへの* *Dynamo 入力ノードの追加は、* ***SelectFromFormIt*** *ノードを追加する場合と非常に似ています。* ***\[入力]** とマークされていることを確認し、名前を変更して順序を変更します。ただし、FormIt で表示するように設定すると、FormIt の* ***\[プロパティ]パレット** に表示されます。*

7 - 最後に、先ほど **SendToFormIt.Stairs** ノードを追加したグラフの右端を表示します。この出力ノードを切り替え、FormIt の場所で選択したジオメトリに基づいて移動および回転された階段ジオメトリを使用するようにします。接続をグループ **Stair Geometry** からグループ **Rotated and Translated Stair Geometry** に切り替えるだけです。

![](/files/glObGWzfLwJfgWge0YLl)

## **グラフを使用する**

1 - 選択ノードとベイク処理ノードの両方を追加し、グラフの準備ができました。Dynamo を保存して閉じ、**Encode Campus Sample Model.axm** を開いている FormIt ウィンドウに戻り、次の方法で試します。

1. シーン **Section - Longitudinal** で作業していることを確認して、1 階の階段開口部の右エッジに沿って 6' の線を描画します。これで、階段の幅と角度が定義されます。
2. **\[Dynamo]パレット** で **\[Stairs by Top Edge]** タイルをクリックして、グラフを開始します。
3. Dynamo の選択ウィザードが表示され、先ほど選択ノードに付けた **Select Top Edge** という名前を使用して、最初の選択を行うように指示されます。先ほど描画したエッジを選択して、Dynamo の選択ウィザードで進む矢印をクリックします。
4. 次のプロンプトの名前は、もう一方の選択ノードの名前である **Select Bottom Floor** です。この建物の 1 階スラブを選択し、チェックマークをクリックします。
5. 階段が作成された後、選択ノードを選んでそのジオメトリを再選択するためのオプションが **\[プロパティ]パレット** に表示されます。また、削除した入力ノード **Floor-to-Floor Height** および **Stair Width** に対応するスライダはなくなり、選択したジオメトリから計算されるようになりました。

![](/files/fpDhkFglyyMbqFtKCFci)

***注:** 上部エッジの位置または下部の床の高さを変更してグラフを再実行すると、それに応じて階段が更新されます。Dynamo で生成され、FormIt の選択に依存するジオメトリを手動で移動すると、作成に使用した選択済みジオメトリとの関係が変更される可能性があるため、通常はそのような移動を手動で行わないようにすることをお勧めします。Dynamo グループと選択ジオメトリをまとめてグループ化すると、接続を維持し、問題を回避できる場合があります。*

2 - 仕上げとして、自由に変更を加えます。これまでの章で説明したさまざまなツールを使用して、次のように変更しました。

1. 各階の間に階段を作成しました。
2. 階段最下部の上部エッジをわずかに回転させて、1 階に対してわずかに斜めの階段を作成しました。
3. 希望の設定にするために、各階段の入力スライダをわずかに調整しました。
4. Dynamo グラフの **Railing Along Path** を使用して、階段の開口部の周囲に踊り場を作成しました。
5. **スイープ** を使用して各階段に中央側桁を追加しました。
6. すべての階段、側桁、手摺を、**Encode Main Building - Stairs** という名前の新しいレイヤに配置しました。

![Finished stairs, views in section.](/files/dxqlq6FexxXpJzujAmSa)

![Finished stairs, as visible from the Eye Level – Plaza scene.](/files/O9qD2ODrhaWIB1yffmHx)


---

# 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://windows.help.formit.autodesk.com/ja/formit-primer/part-ii/2.6-dynamo-formit-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.
