Dynamo(ダイナモ)は、処理を表す「ノード」を線でつないでプログラムを組む、ビジュアルプログラミングの環境です。Revitと連携するDynamo for Revitでは、モデルの要素や属性を読み取り、条件に沿って整理・更新する処理を作れます。
設備設計では、機器情報の入力、命名ルールの確認、一覧表との照合など、繰り返す作業が出発点になります。この記事では、最初のノード構成から、実務で使う範囲を広げる順序を解説します。
Dynamoでできることと、Revitとの関係
Dynamo単体の環境で扱えるデータや形状に加え、Dynamo for RevitではRevitの要素を操作するノードを利用できます。Revit上の機器を選び、その情報を取り出すといった処理は、Revitとの連携環境が前提です。Dynamoを使えば設計条件の判断まで自動で済むわけではなく、設計者が処理の条件と結果を確認します。
Autodeskの公式ヘルプでは、Dynamo for RevitはRevitとともにインストールされ、「管理」タブの「ビジュアルプログラミング」から起動する流れが示されています。利用するRevit・Dynamoの版や画面表示は、自分の環境で確認してください。
最初に覚える4つの言葉
- ノード:要素を選ぶ、値を読む、文字を組み合わせるなど、個々の処理を行う部品。
- ポートとワイヤ:ノードの入力・出力と、それらを結ぶ線。どの値をどの入力へ渡すかを指定する。
- リスト:複数の要素や値をまとめたデータ。機器の一覧と、その機器に設定する値の対応を保つことが重要。
- グラフ:ノードとワイヤで組んだ処理全体。.dynファイルとして保存し、再利用できる。
たとえば「機器を選ぶ→機器番号を読む→一覧にする」という流れを、ノードで表します。まず1個の要素と1個の値で仕組みを理解してから、リストへ広げると問題を切り分けやすくなります。
RevitでDynamoを始める準備
- 確認用のRevitプロジェクトを用意し、設備機器を1個配置する。
- その機器に、書き込み可能な文字列のインスタンスパラメータがあるか確認する。練習では「コメント」など、設計条件に影響しない項目を使う。
- RevitからDynamoを開いて新規グラフを作り、実行モードをManual(手動)にする。
- Revit・Dynamoのバージョンを記録し、最初は追加パッケージを使わず標準ノードで組む。
以下は公式ノードの仕様に基づく学習用の構成例です。実機での動作確認済みサンプルとして配布するものではありません。ノードの表示名や対象パラメータを利用環境に合わせ、複製したモデルで確認してください。
構成例1:機器1台のパラメータを読み取る
使うノードは、Select Model Element、String、Element.GetParameterValueByName、Watchです。ここでは、選択した機器の「コメント」を読む例を考えます。
- Select Model Elementで、Revit上の設備機器を1台選ぶ。
- Stringに、Revitのプロパティに表示される項目名を正確に入力する。日本語環境で項目名が「コメント」なら「コメント」と入力する。
- 選択ノードの出力をElement.GetParameterValueByNameのelementへ、Stringの出力をparameterNameへつなぐ。
- 取得した値の出力をWatchにつなぎ、手動実行する。
- Watchの値とRevit側の同じ項目を照合する。
読み取りノードは、Autodeskのパラメータ値を取得・転記する解説でも紹介されています。流れは「選択した機器+項目名→Element.GetParameterValueByName→Watch」です。確認用機器のコメントに「確認前」と入っていれば、期待する表示は「確認前」です。空欄の項目と、存在しない項目によるnullや警告を混同しないようにします。
要素選択の考え方と、カテゴリ・ファミリ・タイプ・インスタンスの違いは、Dynamo PrimerのSelectingで確認できます。
構成例2:同じ機器の文字列を1件だけ変更する
次に、書き込み用のElement.SetParameterByNameと、設定値を入れるStringを使います。このノードは既存パラメータの値を変更するもので、パラメータの定義を新しく追加する操作とは異なります。
- 新しいStringに、練習用の値として「検証用」と入力する。
- Select Model Elementの出力をElement.SetParameterByNameのelementへつなぐ。
- 項目名のStringをparameterNameへ、「検証用」のStringをvalueへつなぐ。
- 対象が確認用の1台であることを確認し、手動実行する。
- Revitのプロパティで「コメント」が「検証用」に変わったか、同じタイプの別の機器まで変わっていないかを確認する。
期待する変化は、選択した1台の対象項目だけが「確認前」から「検証用」になることです。グラフがエラーなく終わったという表示だけでなく、Revit側の値も確認します。パラメータ更新の基本は、公式PrimerのEditingを参照してください。
複数の機器へ広げる前に、対応関係を確認する
1台で読み書きできたら、対象要素を複数選ぶ方法や、CategoriesとAll Elements of Categoryでカテゴリの要素を取得する方法へ進みます。カテゴリ全体を選ぶ場合は、作業対象外の階やフェーズが混ざらないように条件で絞ります。
例として3台の機器に「AHU-01・AHU-02・AHU-03」を設定するなら、3台の並びと3つの値の並びが一致している必要があります。取得順を機器番号順や配置順だと決めつけず、要素IDなどの対応表を作って確認します。CSVと照合する場合も、行番号だけで結びつけず、一意に識別できるキーを用意します。
リストが入れ子になると、要素数が同じでも対応がずれることがあります。List.CountやWatchで件数と構造を確認し、null・重複キー・未一致の行を処理対象から分けてから書き込みます。
設備設計で応用しやすい作業
- 機器情報の一括入力:機器番号をキーに一覧表と照合し、既存の属性を更新する。未一致と重複は別に報告する。
- 図面枠の情報更新:対象シートを絞り、名称などの定型項目を更新する。タイプ共通の項目を誤って変えないようにする。
- 入力漏れの抽出:必要な機器番号や系統名が空の要素を拾い、確認対象の一覧を作る。
- 数量の照合:モデルから対象要素を抽出し、既存の機器表やチェック表と比較する。
- 配置や接続の補助:座標・ホスト・向きが決まった機器配置や、未接続箇所の候補抽出へ発展させる。接続確認などはパッケージやAPIによる追加処理が必要になる場合がある。
一覧表の整備には、ファミリ側の属性をそろえることも必要です。Revitファミリの入手・自作ガイドで、部品の接続・属性の確認点を整理しています。
エラーが出たときに調べる順序
- 入力:要素が選ばれているか、期待する件数か、nullが混ざっていないか。
- 項目名:言語、空白、表記が一致しているか。同名の項目を取り違えていないか。
- 編集対象:インスタンス項目かタイプ項目か、書き込み可能か。タイプの変更は同じタイプを使う複数の要素に影響する。
- 値:文字列・数値などの型と、長さ・流量などの単位が合っているか。
- 環境:Revit・Dynamo・追加パッケージの対応版、編集権限、リンクモデルの扱いなどに問題がないか。
最初の小さなグラフで原因を切り分け、直った部分から組み直します。警告を残したまま対象数だけ増やすと、どの要素にどの処理が成功したのか追いにくくなります。
自動化する作業の選び方と社内共有
候補は「繰り返しが多い」「判断ルールが明確」「結果を照合できる」作業です。自動化の効果は、手作業の時間から、実行・確認・修正の時間を引いて考えます。さらに作成と保守の時間がかかるため、一度きりの作業では手動の方が早い場合もあります。
共有する.dynには、目的、入力、変更される要素、期待する出力、対応バージョン、必要なパッケージ、担当者と更新履歴を添えます。まず読み取り専用のチェックを共通化し、その後に値の更新を広げると、チームで結果を確認しやすくなります。追加の学習にはDynamo Primerを活用してください。
よくある質問
PythonやRevit APIを学ばないと使えませんか?
要素の選択や基本的なパラメータ操作は、標準ノードから始められます。複雑な条件や標準ノードで扱えない操作が必要になった段階で、PythonやAPIを検討します。
パッケージは最初から入れた方がよいですか?
最初は標準ノードだけで入出力を理解し、必要な処理が明確になってから追加すると、バージョン違いや依存関係による問題を減らせます。
参照情報の確認日:2026年9月21日。構成例は学習の出発点として示しており、適用前に利用環境で結果を確認してください。
監修者
長谷川一夫
機械設備設計部
パラダイム部長



