「デジケン」管理人のpannaです。 前回は Excelファイルからデータを取り込んでプロジェクト内の情報を更新する方法を紹介しました。今回の記事では、Grasshopperで情報を作成してDynamo経由でRevitで活用するワークフローを紹介します。
▽前回の記事はこちら▽
Grasshopperで作成した情報からRevitモデルを作る:その1
今回から、実際にデータ連携の仕組みを作成します。データの連携を進められるようになると一気にRevitの価値を高めることができます。
「その1」では、「データ連携ワークフロー」と「データをどのように連携させるか」について解説します。ワークフローを紹介しながら、データ連携におけるデータ管理の考え方について解説します。
こんなフレームモデルを作成できるワークフローが実現します。

データ連携ワークフローの解説
ワークフローはシンプルですが次の通りです。

【RhinocerosとGrasshopperを使用して作成したデータをDynamoを経由させてRevitモデルで使用する】というワークフローです。
Rhinocerosからですと、Rhino Inside Revitという「RevitからRhinocerosを起動させてデータ連携を行うケースもあります。いずれこちらについても解説を行います。
データをどのように連携させるか
Dynamoでデータ連携をする際にはデータの整理が必要です。
今回はフレームモデルをRevit内に作成することを想定しており、GrasshopperからDynamoへデータを渡してRevitフレームモデルを作成するために必要な情報を紹介します。
用意するデータ形式について
このワークフローでは、下図のようなExcel形式でデータを用意しています。

フレームモデルは線分で構成されているので、線分を作るための始点と終点を用意してあげる必要があります。詳細はあとでお伝えしますが、Revitモデル内に点を作成するわけではないので、座標が同じ点があっても問題ありません。
始点と終点を用意するのですが、下図のように柱・梁・ブレースごとにExcelのシートを分けて作成してください。

もちろん、始点と終点座標に加えて部材種別の項目を追加してもよいです。しかし、どのみちDynamo内でデータを分けてあげる必要があるので、あわかじめ分けてシートごとに読み込んであげるほうがDynamoスクリプトを簡単にできます。
ではなぜ部材種別を区別する必要があるのでしょうか。
部材種別を区別して読み込む理由について
柱・梁・ブレースというように種類を分けてデータを用意する理由は、一つはDynamoスクリプトを簡単にできるからでした。(実際にDynamoスクリプトの解説で理解できますので、今はそうなんだと思って下さい。)
そもそもなぜ分ける必要があるのでしょうか。ここで、Revitにはカテゴリなどのデータ構造があることを思い出してみましょう。
カテゴリなどを動物に例えると次のイメージ
- Revitプロジェクト:地球
- カテゴリ:生物などの地球を構成するモノの区分
- ファミリ: 生物カテゴリには「犬、猫、魚」などの区分がある
- タイプ:犬ファミリの場合→「土佐犬、ドーベルマン」などの犬種がある
- インスタンス:panna家の土佐犬の様な個体を表す
建築で考えてみる
- Revitプロジェクト:建築プロジェクト
- カテゴリ:柱や梁や家具などプロジェクト全体を構成するモノの区分
- ファミリ:柱カテゴリには「鉄骨の鋼管柱やRCの角柱」などの区分がある
- タイプ:RCの角柱タイプの場合→「C1:400×400やC2:500×500」などの断面がある
- インスタンス:1階のX1/Y1の柱C1の様な個体を表す (同じインスタンスは存在しない)
Revit特有のデータ構造によりデータをしっかりと管理するためには、柱は柱カテゴリ、梁は梁カテゴリのように正しく区分けしてあげる必要があります。そうしなければデータ管理ができておらずBIMの概念から外れます。
今回作成するフレームモデルを構成する柱・梁・ブレースに話を戻すと、次の表のように区分されます。
部材 | Revitカテゴリ名 | 部材を作成するための Dynamoノード | Dynamoノードに入力するデータ |
![]() | Structural Columns | ![]() 「ColumnByCurve」 | ・curve:参照線分 ・level ・StructuralColumnType |
![]() | Structural Framing | ![]() 「BeamByCurve」 | ・curve :参照線分 ・level ・StructuralFramingType |
![]() | Structural Framing | ![]() 「BraceByCurve」 | ・curve :参照線分 ・level ・StructuralFraingType |
DynamoにはRevitのデータ構成に合わせてデータを連携させるためのノードが用意されています。実際、上の表に書かれている3つのノードはデフォルトで用意されているものです。フレームモデルを作成するためには、これらのノードの3つの入力データが重要です。
- curve:参照線分を示し、始点終点データからDynamoで作成できる線分を入力
- level:モデル化後に参照RevitさせたいRevit内のレベルを入力
- Structural〇〇Type:各部材作成ノードに合わせたTypeを入力(柱ならColumn Typeなど)
梁とブレースは共にStructural Framingカテゴリですが、作成するノードが違う。
同じカテゴリでも梁とブレースは違う挙動をするようにルール付けされている。
Revitのデータ構成に合わせたデータを用意することで、Dynamoからスムーズにデータ連携を進めることができます。そのため、入力データをどのように整理するかという点は非常に重要です。
ワークフローとデータ連携のまとめ
次回から解説するデータ連携ワークフローを例にとって、データ連携におけるデータ管理の考え方について解説しました。
- Revitのデータ構成を理解して、データを効率的に活かすワークフローを考えることが重要
次回はDynamoスクリプトの解説に移ります。
次ページ:初心者のためのチュートリアルC01|Grasshopperの情報からDynamoでRevitモデルを作る:その2
コメント