Dynamo入門
Revit に付属するビジュアルプログラミング環境。コードを書かずにノードを繋いで反復作業を自動化する考え方と、Revit API への橋渡しまでを解説します。
この記事の要点
- Dynamo は Revit に付属するビジュアルプログラミング環境で、コードを書かずにノードを繋いで自動化を実現する
- ノード(処理ブロック)をワイヤ(配線)で接続し、左から右へデータを流すデータフロー型の考え方
- Revit 要素を一括取得・編集できるため、繰り返し作業やパラメータの一括設定に強い
- 標準ノードで足りない処理はPython ノードでスクリプトを書いて拡張できる
- 完成したスクリプトはDynamo Playerから、グラフを開かずワンクリックで実行できる
本記事は Revit カテゴリの一部です。Dynamo は Revit に同梱されるビジュアルプログラミング環境です。プログラミング未経験の設計者でも、ノードを繋ぐだけで反復作業を自動化できます。その考え方と、より本格的な開発である Revit API への橋渡しを解説します。
1ビジュアルプログラミングの考え方
Dynamo は「データフロー型」のプログラミングです。処理の単位である「ノード」を、データの流れを表す「ワイヤ」で繋ぎ、左から右へ値を加工していきます。テキストでコードを書く代わりに、画面上で部品を配線していく感覚です。
たとえば「すべての壁を取得」ノードの出力を「パラメータ値を取得」ノードの入力に繋ぐと、全壁のパラメータ値が一覧で得られます。変数・関数・繰り返しといったプログラミングの基本概念を、視覚的に学べる教材としても優れています。
2ノードとワイヤ
Dynamo の画面は、主に 3 つの概念で成り立っています。
1 つの処理を表すブロック。入力ポート(左)と出力ポート(右)を持つ。Revit 要素を操作する専用ノードが多数用意されている。
ノードの出力ポートと別ノードの入力ポートを繋ぐ配線。データの流れを表す。
値の集合(リスト)を一括で扱うのが得意。1 本のワイヤに複数要素が流れ、各ノードがまとめて処理する。
リストの階層(ネスト)の扱いと「レーシング(最長/最短/外積)」の理解が、Dynamo を使いこなす最初の壁です。
3Revit 要素の一括処理
Dynamo の最大の利点は、多数の Revit 要素を一度に処理できる点です。手作業では時間がかかる定型処理を、グラフ 1 本で再現可能にできます。代表的な用途を挙げます。
- 全部屋の面積を集計してパラメータに書き戻す。
- 図面枠のタイトルブロックに、図面番号を連番で一括入力する。
- 外部 Excel から読み込んだ仕様値を、対応するファミリインスタンスへ一括反映する。
- 勾配・座標などの計算結果に基づき、要素を自動配置する。
1 つ目の用途は、前章で扱った集計表(スケジュール表)に近い処理を、書き戻しまで含めて自動化する例です。
4Python ノードと API への橋渡し
標準ノードだけでは表現しにくい複雑な条件分岐やループは、「Python ノード」にスクリプトを書いて補えます。Python ノードの内部からは、Dynamo が提供する RevitServices(現在のドキュメント取得などのブリッジ)経由で Revit API(Autodesk.Revit.DB)を直接呼び出せるため、Dynamo は本格的な開発への入り口にもなります。
「Dynamo でできることの限界」に達したとき、次のステップが Revit API による C# アドイン開発です。ノードで概念を掴んでから API に進むと、要素取得やトランザクションといった考え方がスムーズに理解できます。詳しくは Revit API 概要 を参照してください。
5Dynamo Player による実行
完成したグラフ(.dyn)は「Dynamo Player」から実行できます。Player は Revit のリボンから起動でき、グラフエディタを開かずに一覧から選んでワンクリックで走らせられます。入力値(対象ビューや数値)を Player 上で指定できるよう設計しておけば、作者以外のメンバーも安全に自動化を使えます。社内で再利用するツールは Player 前提で作るのが定石です。
6パッケージとノードライブラリ
Dynamo には標準ノードのほかに、コミュニティが公開する「パッケージ」をインストールして機能を拡張できる仕組みがあります。代表的なものに、要素操作を大幅に補強する汎用パッケージや、データ加工・形状処理に特化したものがあります。パッケージマネージャから検索してインストールすると、専用ノードがライブラリに追加されます。
パッケージはバージョンや Revit の世代に依存することがあり、共有グラフが他 PC で動かない原因になりがちです。社内で配布するグラフは、依存パッケージとそのバージョンを明記し、できれば標準ノード中心で組むと保守が楽になります。
7つまずきやすいポイント
Dynamo を学び始めた人が陥りやすい点を押さえておくと、習得が早まります。
- リストの階層:データがリストの中のリスト(ネスト)になると、ノードがどの階層に作用するかで結果が変わる。階層を意識し、必要に応じて「Flatten」や「List.Map」で整える。
- レーシング:2 本の入力リストを組み合わせる際の対応規則(最短/最長/外積)を理解しないと、件数が想定外になる。
- 変更はトランザクション扱い:Dynamo が Revit モデルを変更する処理は、内部的にトランザクションとして実行され Undo の対象になる。意図しない一括変更を流すと大量の要素が一度に書き換わるため、対象を限定してから実行する。
- 実行前のバックアップ:破壊的な処理を流す前は、モデルを保存しておくと安全。
「データを流して加工する」という発想に慣れる
Dynamo のデータフロー型の考え方は、入力されたデータを次々と変換しながら出力へつなげていく、一連の加工パイプラインのイメージです。「全部の壁を取り出す → 必要なものだけ絞り込む → 値を計算する → 書き戻す」という流れは、リストを段階的に処理していく発想そのものです。この感覚に慣れると、リストの階層やレーシングといった最初の壁も「データの単位が合っているか」という観点で整理しやすくなります。ここで掴んだ感覚は、そのまま C# によるアドイン開発へ活きます。
ノードで概念を掴んだ次の一歩として、本格的なプログラムによる拡張は Revit API 概要 で扱います。
→次に読む
Python で拡張する場合はpyRevit の導入と簡単なアプリケーションの作成も合わせて読むと選びやすくなります。
子ページはありません
- Revitとは
- ファミリ(システム/ロード/インプレイス)
- カテゴリ・タイプ・インスタンス
- パラメータ(プロジェクト/共有/グローバル/ファミリ)
- レベルと通り芯
- ビューとビューテンプレート
- シートと図面化
- スケジュール表(集計表)
- ワークシェアリングと中心ファイル
- フェーズとデザインオプション
- リンクと座標連携
- Dynamo入門
- 開発環境構築(Visual Studio + .addin マニフェスト)
- Revit API 概要
- Revit API:要素の取得とフィルタ
- Revit API:トランザクションと要素編集
- Revit API:外部コマンド/アプリ
- 共有パラメータの作り方と使い方
- ファミリの作り方(ロード可能ファミリ入門)
- パラメータの種類と分類(総まとめ)
- Revit 総合ガイド
- Revit API
人気ページ
- 1 【Revit API】アドインの作成サンプル(外部ツール編)
- 2 Revit の要素(Category / Family / Type / Instance)4 階層モデルとは
- 3 【Revit API】要素の取得とID、名前、タイプの情報表示
- 4 【PythonでRevit API】pyRevitの導入と簡単なアプリケーションの作成
- 5 ArchiCAD 階段と手摺りの作成手順|階段ツール / 設定画面 / 手摺り追加
- 6 【Revit API】アドインの作成サンプル(外部アプリケーション編)
- 7 【Revit API】FamilySymbol(タイプ)の取得とパラメータの変更
- 8 RevitAPI.dll と RevitAPIUI.dll の参照
- 9 【Revit API】特定の要素のパラメータ一覧の取得
- 10 【Revit API】マニフェストファイルの書き方/作成方法
最近更新/作成されたページ
- Revit のエラーとトラブル対処|起動失敗・ライセンス・ファイル破損 2026-10-03 22:22:57
- GSG_01_Getting_Started_Template.rte の入手先(Revit) 2026-10-03 22:22:34
- Revit「Please run MaterialLibrary2021.msi first」の原因と対処 2026-10-03 22:22:34
- Archicadの参照線の配置・移動・削除|1本ずつ消す方法と全削除 2026-10-03 22:20:48
- Archicadで交点にカーソルを合わせる方法|スナップガイド・グリッド 2026-10-03 22:20:48
- Archicadで3D表示する方法|F3・Ctrl+F5と平行投影/パースの切替 2026-10-03 22:20:48
- ARCHICAD Column ツールで柱を配置する手順(断面・高さ・3D 確認) 2026-10-03 22:12:07
- Revitでプロジェクト基準点を表示する方法|測量点との違いと表示設定 2026-10-03 22:11:05
- Revit レベル (Level) 追加・修正完全ガイド(立面ビュー / Plan View 自動作成) 2026-10-03 22:11:05
- Revit プロジェクトの作成手順|テンプレート選択・保存・単位設定 2026-10-03 22:11:05
- Revit 完全ガイド|機能・ファイル形式・料金・システム要件とよくある質問 2026-10-03 22:11:05
- ARCHICAD で床(スラブ)を作る方法|ポリゴン入力と複合構造 2026-10-03 22:11:05
- ARCHICAD 窓の作成完全ガイド 2026-10-03 22:11:05
- ARCHICAD ドア (Door) の作成完全ガイド 2026-10-03 22:11:05
- ARCHICAD 壁の作成方法完全ガイド 2026-10-03 22:11:05