FormIt + Dynamo
Computational Design in FormIt
Last updated
Computational Design in FormIt
Last updated
FormIt for Windows には Dynamo が組み込まれており、非常に優れた計算設計ワークフローを実現します。
FormIt 2024 は、最新の Dynamo リリース2.17 で最新の状態に更新されています。
FormIt 2023 では、SendToFormIt ノードを使用せずに Dynamo グラフを実行できるようになり、FormIt レベルを Excel に送信する機能が追加され、新しい FormItGroupOptions ノードを使用してカーブとサーフェス切り子面をコントロールできるようになりました。
FormIt 2022.1 では、使い慣れた FormIt 寸法を入力として使用する機能が追加され、オブジェクトレベルのオプションが導入され、JavaScript API アクセスの早期プレビューが利用できます。こちらから入手してください。
FormIt 2021.3 では、複数の SendToFormIt ノードとネストされた Dynamo グラフを使用する機能が追加されました。
FormIt 2021 に SelectFromFormIt ノードが追加され、常時接続されているセッション、複数インスタンスの編集などが有効になっています。
インタフェースについて学習し、Dynamo フォルダを FormIt にリンクします。
FormIt + Dynamo を初めて使用する場合は、Dynamo で 3D キャンバスを表示するには、最初にシステムを設定する必要があります。
[Dynamo]パネルを使用して、Dynamo の起動、Dynamo グループの配置、Dynamo グラフの編集を行います。
Dynamo パネルはコンテンツ ライブラリのように機能し、Dynamo ファイルを含むローカル フォルダをリンクして管理することができます。
リンクされたフォルダを切り替えるには、ドロップダウンを使用します。
[Dynamo]パネルでは、.dyn ファイルとサブフォルダのみを表示することができます。
フィルタ バーを使用すると、Dynamo ファイルやサブフォルダをフィルタして、必要なファイルを簡単に見つけることができます。
Dynamo でグラフを作成および編集したり、グラフを表示せずに FormIt でパラメータを変更することができます。また、その両方を同時に行うこともできます。
FormIt は、次の 3 種類の Dynamo グラフをサポートしています。
データ グラフ: データ グラフには SendToFormIt ノードがないため、FormIt を介してデータを表示したり渡すために使用されます。たとえば、データ グラフを使用して Excel にデータを送信したり、非ジオメトリック データを計算して Watch ノードに表示できます。
ジオメトリ グラフ: このグラフではジオメトリがすぐに生成されます。パラメータを表示するにはキャンバスに配置する必要があります。サムネイルをクリックすると、3D シーンに配置するジオメトリがカーソル上に表示されます。このグラフには、少なくとも 1 つの SendToFormIt ノードが存在し、グラフの最後でジオメトリを受け取る必要があります。
選択グラフ: このグラフでは、実行する前に FormIt で選択を行う必要があります。選択が必要な項目を示すプロンプトが FormIt の左上隅に表示されます。選択を行うとグラフが実行され、選択に対するジオメトリが生成されます。このグラフには、少なくとも 1 つの SendToFormIt ノードが存在し、グラフの最後でジオメトリを受け取る必要があります。
[Dynamo]パネルで、実行する Dynamo グラフのサムネイルをクリックします。
組み込みのサンプルを使用するか、独自の Dynamo ファイルのライブラリをリンクすることができます。
ジオメトリを FormIt に配置すると、Dynamo グラフのコピーが FormIt ファイルに埋め込まれます。
ジオメトリを生成するには、SendToFormIt ノードをグラフ内の出力ジオメトリ ノードにアタッチする必要があります。
SendToFormIt ノードからのジオメトリをカーソル上で配置できるようになります。
グラフに「入力」とマークされた SelectFromFormIt ノードがある場合、FormIt はまず選択を要求し(各選択ノードを縦に並べます)、選択に対して正しい位置にジオメトリを生成します。
元の Dynamo ファイルのコピーが FormIt グループに組み込まれ、ソース グラフから独立するようになりました。
配置時に、[プロパティ]パネルが自動的に切り替わり、使用可能なパラメータが表示されます。
Dynamo グループを配置した後、その配置した Dynamo グループを選択して[プロパティ]パネルに切り替えるか、グループをダブルクリックして自動的にプロパティに切り替えます。
Dynamo で「入力」とマークされた入力ノードがここに一覧表示されます。
SelectFromFormIt の入力ノードはボタンとして上部に表示され、グラフの動作に使用する選択内容の更新に使用できます。
FormIt は次の入力ノードをサポートしています: Number Slider、Integer Slider、Boolean Toggles、Number/String フィールド
FormIt の入力を変更し、[実行]をクリックします。[実行]ボタンが青に変わります。これはパラメータが変更されたため、グラフを実行する必要があることを示しています。
Dynamo はバックグラウンドで実行され、変更を処理して、更新されたジオメトリを FormIt に返します。
FormIt 2022 以降では、[プロパティ]パネルからの最初の実行で専用の Dynamo インスタンスを起動するようになり、その後の編集が大幅に高速化されました。
Dynamo の実行中に FormIt を引き続き使用することができます。
各 SendToFormIt グループ内のすべてのジオメトリは、Dynamo グラフの実行時に削除されて置き換えられます。
FormIt 2023 以降では、Dynamo を使用して FormIt レベルを Excel に送信できます。
サンプルの Dynamo グラフはこちらからダウンロードしてください。
[Dynamo]パレットで、Dynamo グラフが保存されたローカル フォルダを指定します。
サムネイルを右クリックし、次のボタンをクリックします: [埋め込まれたグラフを編集]
任意の場所に空の Excel スプレッドシートを作成します。
スプレッドシートの場所のフィールドを編集し、Excel スプレッドシートのパスを指定します。
[シート名]など、任意のフィールドを編集します。
Dynamo を閉じてグラフを保存します。
これで、サンプル ファイルをパレットでクリックするだけで、ジオメトリを生成することなく FormIt 内で実行できるようになります。
[Dynamo]パレットに Dynamo の入力が表示され、グラフの結果を表示する Excel が開きます。
モデルを変更したら、グラフのサムネイルを再度クリックするか、[実行] ボタンをクリックして、最新バージョンの FormIt スケッチのレベル データでスプレッドシートを更新できます。
FormIt 2021 以降では、[Dynamo]パネルの[Dynamo を起動]ボタンをクリックすると、FormIt との接続セッションが自動的に開始されます。
これにより、Dynamo でグラフ テンプレートが開き、FormIt でテンプレート ジオメトリが自動的に生成されます。
結果として得られたジオメトリは、現在のグループ編集コンテキストの原点にある新しいグループに表示されます。Dynamo を起動する前に目的のグループ コンテキストに入っておくことをお勧めします。
テンプレートには、FormIt ノードと一部のサンプル ジオメトリの両方が含まれています。スライダを調整すると、両方のアプリケーションで立方体のサイズが調整されます。
ここから、さまざまな Dynamo グラフを開いたり、テンプレート内のこれらの基本コンポーネントを使用して新しいオブジェクトを作成したり、Dynamo で名前を付けて新しい場所に保存することができます。
既存の Dynamo グラフは、2 つの方法で編集できます。FormIt に配置済みの埋め込まれたグラフを編集する方法と、コンピュータに保存されているソース グラフを編集する方法です。
Dynamo オブジェクトを FormIt に配置すると、その基礎となるグラフがコピーされ、現在の FormIt ファイルに埋め込まれます。Dynamo での編集は、[埋め込まれたグラフを編集] ボタンを使用して行います。
Dynamo グループを選択して[プロパティ]パネルに切り替えるか、グループをダブルクリックして自動的に[プロパティ]に切り替えます。
[埋め込まれたグラフを編集] ボタンをクリックします。
Dynamo 上部に表示されるファイル名に「(FormIt)」が含まれていることに注目してください。これは、この FormIt ファイルに埋め込まれているグラフを編集中であり、ソース グラフは変更されないことを意味します。
1 つまたは複数の SendToFormIt ノードが、FormIt に送信するジオメトリに接続されていることを確認します。
FormIt では、グラフを調整すると、ジオメトリに対する更新がリアルタイムで表示されます。
Dynamo で変更を保存しない場合、FormIt は最後に保存されたバージョンの Dynamo グラフにロール バックします。
各 SendToFormIt グループ内のすべてのジオメトリは、Dynamo グラフの実行時に削除されて置き換えられます。
ソース グラフは、ローカル フォルダをリンクした後に Dynamo パネルに表示されます。これらのグラフはコンピュータに保存され、[ソース グラフを編集]ボタンをクリックすることで Dynamo で編集できます。
Dynamo ファイルを含むフォルダを Dynamo パネルにリンクし、パネル内のその場所に移動します。
編集する Dynamo グラフのサムネイルを右クリック(または矢印をクリック)して、[ソース グラフを編集] ボタンを選択します。
Dynamo が要求されたグラフを開いて起動します。FormIt ではグラフの最終出力のジオメトリが表示されます。
1 つまたは複数の SelectFromFormIt ノードを入力として使用するグラフの場合、SelectFromFormIt ノードで選択を入力するまで結果のジオメトリが表示されない可能性があります。
結果として得られたジオメトリは、現在のグループ編集コンテキストの原点にある新しいグループに表示されます。
[ソース グラフを編集]をクリックする前に目的のグループ コンテキストに入っておくことをお勧めします。
編集が終了したら、保存して Dynamo を閉じます。FormIt では、ソース グラフがコピーされ、FormIt ファイルに埋め込まれています。
ソース グラフ をさらに編集する必要がある場合は、埋め込まれたコピーを削除して、次の手順に従います。
FormIt 2023 以降では、FormItGroupOptions ノード、SetCurveFacetingCount ノードおよび SetSurfaceFacetingCount ノードを使用して、SendToFormIt ノードにアタッチされた曲面とサーフェス切り子面をコントロールできるようになりました。
これらのノードは、曲面およびサーフェス切り子面のグローバル設定をオーバーライドします。これらの設定は、[編集]->[基本設定]->[単位 + 精度]で定義します。
これは、Dynamo グラフで特定の切り子面の値を使用して曲線オブジェクトを生成する必要がある場合に非常に便利です。これにより、現在のセッションで実行する各 Dynamo グラフのグローバル設定を変更する必要がなくなります。
[編集]->[基本設定]->[単位 + 精度]で、切り子面の設定をグローバルに設定することもできます。
[基本設定]で切り子面の品質を調整したら、グラフを再実行して、新しい切り子面のグローバル設定を使用します。
FormIt の曲面とサーフェス切り子面の設定の詳細はこちら
FormIt グループの機能を活用して、Dynamo のジオメトリを効率的に編成し、優れたワークフローを実現します。
SelectFromFormIt ノードのジオメトリを選択する場合、代わりにジオメトリを FormIt グループに保存してグループを選択すると便利です。
これにより、選択した FormIt グループの内容を柔軟に変更し、そのグループを参照しているグラフを再実行するだけで、更新された結果を確認できます。
グループ化されていないジオメトリを選択した場合、そのジオメトリを変更すると、次にグラフを実行する際にジオメトリを再選択するよう求められることがあります。
Dynamo グラフを FormIt で実行すると、そのジオメトリ結果が FormIt グループに含まれます。
グラフ内の各 SendToFormIt ノードは、ノード入力ポートからのジオメトリを含むサブグループを作成します。
FormIt で Dynamo オブジェクトを生成すると、グラフ全体とそのパラメータがコピーとして FormIt ファイルに埋め込まれます。
グラフを実行すると、各サブグループ内のジオメトリが削除されて再生成されます。
サブグループ内のジオメトリまたはサーフェスのペイントを変更する場合は注意が必要です。次に Dynamo グラフを実行するときに変更内容が失われてしまいます。
ただし、FormIt マテリアルを使用して内部のジオメトリではなくサブグループをペイントする場合、それらのマテリアルは実行操作間で維持されます。次を参照してください。
複数の SendToFormIt ノードを使用する場合、マテリアルごとにノードを整理して、異なるマテリアルを使用して別の FormIt サブグループをペイントすることができます。
次の例では、建物全体が FormIt の単純な平面から生成されていますが、建物の各コンポーネントには専用のマテリアルが必要であるため、独自の SendToFormIt ノードが用意されています。
各サブグループにマテリアルを適用した後は、Dynamo の実行操作間でマテリアルが維持されます。
SelectFromFormIt ノードを使用して、ある Dynamo グラフからサブグループの結果を選択し、別のグラフの結果を導き出すことができます。
上の例にある建物生成グラフのガラスの出力が、ビルトインの Storefront Curtainwall サンプルの選択ジオメトリとして使用されています。
建物の形状を変更したら、マリオン システム グループを選択し、[プロパティ]パネルで[実行]をクリックします。
ガラス グループの内容は変更されましたが、グループ自体は変更されなかったため、グラフを再実行するときにガラスを再度選択する必要はありません。
上のモデルは、FormIt 2022 以降で Dynamo Samples の Building Masses サブフォルダに「Roof Planes Building」として提供されるようになりました。
FormIt の豊富な機能と Dynamo を組み合わせて使用すると、マテリアルとネストされたロジックを含む完全なパラメトリック デザインを、強力なコンセプト モデラーのコンテキストで作成および調整できます。
上の説明を除き、FormIt の Dynamo グループは、他のグループと同じルールで動作します。
[Dynamo]パネルから新しい Dynamo オブジェクトを配置すると、固有のグループが作成されます。スケッチに既に配置されている同じオブジェクトのインスタンスには影響しません。
Dynamo グループのコピーと貼り付けを行うと、同じ状態を維持します。コピーの Dynamo グラフに変更を加えると、同じインスタンスのジオメトリも更新されます。ただし、固有である場合は更新されません。
Dynamo グループは、ショートカットの MU またはコンテキスト メニューを使用して固有にすることができます。
FormIt と Dynamo の間でデータを送信する、最も高機能なノードです。
FormIt で Dynamo オブジェクトを生成するには、必要なジオメトリ ノード出力を少なくとも 1 つの SendToFormIt ノードの geometry 入力にアタッチします。
FormItGroupOptions は FormIt 2022 の新しい(オプションの)ポートです。下の「FormItGroupOptions ノード 」セクションで詳しく説明します。
FormIt 2021.3 以降では、複数の SendToFormIt ノードを使用して Dynamo の結果を整理し、FormIt グループとサブグループにまとめることができます。
Dynamo と FormIt グループの連携を参照してください。
SendToFormIt ノードは、既定でオンになっている「出力」フラグを考慮します。ノードを右クリックして、次の内容を確認できます。
オンにすると、この SendToFormIt ノードにアタッチされたジオメトリが FormIt のサブグループ内に表示されます。
オフにすると、ジオメトリは FormIt に送信されず、対応するサブグループ(存在する場合)は削除されます。
FormIt 2021 以降では、FormIt からジオメトリを選択して、Dynamo グラフで入力として使用できます。
SelectFromFormIt ノードの名前は FormIt のプロンプトに使用されるため、選択する FormIt ジオメトリのタイプを示すような名前にする必要があります。
Dynamo グラフ エディタまたは[プロパティ]パネルで[FormIt から選択]ボタンをクリックすると、選択ウィザード モードが開始され、ジオメトリの選択手順を確認できます。
SelectFromFormIt ノードは、「入力」フラグを考慮します。これは、既定でオンになっています。これは、FormIt で選択が機能するよう、オンである必要があります。確認するノードを右クリックします。
「入力」がオンになっている場合:
グラフの Dynamo パネルのサムネイルは、選択が必要であることを示しています。
グラフを実行する際に、FormIt 選択ウィザードでは、グラフの上部から開始して各 SelectFromFormIt ノードの選択を設定する手順が示されます。
最初に生成した後、FormIt [プロパティ]パネルには各 SelectFromFormIt ノードのボタンが表示されます。
これらをクリックすると選択ウィザードが起動し、最終的なジオメトリの生成に使用する選択を変更できます。グラフは、再選択後に自動的に再実行されます。
SelectFromFormIt ノードに目的のジオメトリのタイプを示す名前を付けます。たとえば、「Select Site Boundary (Edges)」と入力します。
任意のタイプの FormIt ジオメトリを選択できますが、選択したジオメトリを FormIt グループに含めて未処理のジオメトリの代わりに選択することをお勧めします。
選択ベースの Dynamo グラフの結果を移動する必要がある場合は、まず選択ジオメトリを移動してからグラフを再実行します。この操作により、更新された選択ジオメトリが選択され、適切に位置が変更されます。
また、Dynamo の結果および 選択をグループ化して、含まれるグループを移動することもできます。
FormIt ジオメトリを Dynamo に送信すると、ジオメトリを FormIt に戻したときに、すべての属性、マテリアル、またはネストされたグループが失われます。
Dynamo で選択ベースのグラフを編集しているときに、FormIt で選択したジオメトリが変更された場合は、SelectFromFormIt ノードの[FormIt から選択]ボタンをクリックして、ジオメトリを再選択する必要があります。
FormIt で選択すると、アクティブな 選択フィルタ が適用されます。たとえば、FormIt の頂点を選択する場合は、選択フィルタで有効にする必要があります。
FormIt には Dynamo グラフを簡単にカスタマイズするための入力オプションが豊富にあります。
FormIt 2022.1.0 以降では、FormItLengthString ノードを使用して、アクティブなスケッチの FormIt の単位設定に関係なく、サポートされている FormIt の単位タイプ(フィート-インチ、インチ、m、cm、mm)で寸法を指定できます。
サポートされている他の入力ノードと同様に、FormItLengthString は、「入力」としてマークされている場合には FormIt [プロパティ]パレットに表示され、名前を変更すると、新しい名前が FormIt に表示されます。
FormItLengthString ノードの各インスタンスは任意の単位タイプで使用できるため、前述のように、単一の Dynamo グラフで単位を組み合わせて使用することができます。
FormIt 2022.1.1 以降では、グラフを FormItLengthString ノードを使用するように切り替える(最初の FormItLengthString ノードをグラフ内に配置する)か、生の数値のみを使用するように切り替える(最後の FormItLengthString を削除する)かで、Dynamo でのグラフ編集中の特定の動作が変化します。
グラフの編集中に SelectFromFormIt ノードを使用する場合、前述のように生の数値と FormItLengthString ノードの間で切り替えるには、各 SelectFromFormItNode のジオメトリを再選択する必要があります。そうすることで、結果は引き続き FormIt で正しくスケールされます。
最初の FormItLengthString ノードをグラフに配置すると、寸法として使用するグラフ内のすべての数値(名前の数値の入力を含む)はメートル(Dynamo 内部のネイティブ単位)を参照します。
SendToFormIt ノードは変更を考慮し、FormIt で生成されたジオメトリが正しいサイズに維持されるようにします。
逆に、グラフからすべての FormItLengthString ノードを削除すると、FormIt の単位設定が何であっても生の数値を参照するように切り替わります(旧来の動作)。
FormItLengthString ノードの数値出力もメートル単位になりますが、FormIt のジオメトリ結果のサイズは変更されません。
Dynamo で「入力」とマークされていると、標準の Dynamo 入力ノードが FormIt の[プロパティ]パネルに表示されます。
Number Slider
Integer Slider
Number
String
Boolean Toggle
入力ノードの名前を変更すると(分かりやすくするために推奨します)、新しい名前が FormIt に表示されます。
Dynamo から FormIt に非ジオメトリの結果を表示する方法はいくつかあります。
「出力」とマークされた Watch ノードは、FormIt 2022 以降の[プロパティ]パネルの[WATCH ノード出力]セクションに表示されます。
FormIt 2022.1 以降では、UI.ShowNotification ノードを使用して、Dynamo グラフから FormIt 側の通知を表示できます。
FormIt 2022.1 以降では、FormIt.ConsoleLog ノードを使用して、追加データのログを FormIt アプリケーション コンソール([スクリプトの出力]ウィンドウ)に直接記録できます。
個々のジオメトリ レベルまたは含まれるグループ レベルで FormIt にデータを送信する方法をコントロールします。
FormIt 2022.1 以降では、FormItGeometryOptions ノードを使用して、個々の Dynamo ジオメトリを FormIt に送信する方法をカスタマイズできます。
生成された Dynamo グループ内の個々のジオメトリのレイヤを指定します。
生成された Dynamo グループ内の個々のジオメトリに対して、文字列属性を指定します。
FormItGeometryOptions ノードは、SendToFormIt ノードの上流工程で使用できます。
FormIt 2022 以降では、SendToFormIt ノードの Dynamo グループを FormIt で生成する方法を FormItGroupOptions ノードを使用してカスタマイズできます。
SendToFormIt ノードがジオメトリをメッシュとオブジェクトのどちらとして FormIt に送信するかを指定します。
SendToFormIt ノードによって作成されたグループのレイヤを指定します。
SendToFormIt ノードによって作成されたグループの文字列属性を指定します。
FormItGroupOptions ノードは、ノードを数珠つなぎにすることによって、任意の組み合わせで順番に使用できます。
FormIt 2022.1 以降では、2 つの新しいノードを介して Dynamo から JavaScript API およびカスタム関数にアクセスできるようになりました。
CallJSAPI ノードを使用すると、Dynamo から FormIt JavaScript API を直接呼び出すことができます。
関数名とパラメータについては、JavaScript に関するドキュメントを参照してください。このドキュメントは、FormIt API と WSM API (モデリング カーネル)の 2 つの部分に分かれています。
CallPluginJS
一方、CallPluginJS ノードを使用すると、ロード済みのプラグインからカスタム関数を呼び出したり、スクリプト エディタ ウィンドウから実行されたスクリプトのスニペットを呼び出すことができます。
FormIt で Dynamo を使用するには、FormIt for Windows v17.0 以降が必要です。
FormIt と Dynamo の統合では、新機能が追加され、修正が定期的に行われるため、最新の更新プログラムが利用可能な場合はダウンロードすることをお勧めします。
Windows 10 も必要です。技術的な理由から、古いバージョンの Windows のサポートは終了しました。
トラブルシューティング
NVIDIA または AMD グラフィックス カード、もしくは複数のカードを搭載したシステムを使用している場合は、必要に応じて FormIt と Dynamo を設定し、高性能な GPU を使用してください。
C:/Program Files/Autodesk/FormIt/FormIt.exe
C:/Program Files/Autodesk/FormIt/DynamoSandbox/FormItDynamoSandbox.exe
NVIDIA カードを使用している場合は、NVIDIA コントロール パネルがインストールされていることを確認してください。
英語以外のロケールを使用している場合、特定の Dynamo ノードの問題を回避するために、Windows 10 の地域設定を英語に設定する必要がある場合があります。
[開始]で「言語」を検索し、「言語設定」を選択します。
[言語]ダイアログの右上で、[管理用の言語の設定]をクリックします。
[システム ロケールの変更...]ボタンをクリックします。
「英語(米国)」を選択します。
小さなジオメトリや数のグラフで FormIt の結果を生成できない場合は、Dynamo のスケーリング設定を[小]に変更してみてください。
[Dynamo メニュー] > [基本設定] > [一般] > [ジオメトリのスケーリング] > [小]
FormIt + Dynamo のヘルプが必要な場合は、フォーラムでお知らせください。
[Dynamo]パネルでフォルダをリンクするボタンをクリックし、[基本設定]ダイアログ ボックスで次の[+]アイコンを再度クリックして、FormIt にリンクするフォルダを選択します: