Dynamoでシートとビューの複製、配置を自動化

皆様こんにちは。
AMDlabの秋山です。

大きなプロジェクトでは、Revitで多くのシートを作成するケースが少なくないと思います。
困ったことに、Revitではビューのようにシートを複製できません。

ビューの場合、ビューの複製が可能です。

しかし、シートの場合、複製する項目がなく、新規作成になってしまいます。数枚であれば新規作成で良いですが、大量に作成する場合はとても面倒です。

そこで今回は、DynamoとExcelを使ってシートを複製し、シートごとに指定したビューを配置してみます。

まず、Excel上で下記5列を作成します。
A列:シートの番号
B列:シートの名前
C列:ビューテンプレート
D列:ビューの名前
E列:レベル
シートの名前は平面図としておきます。

次にDynamoを起動します。
今回作成するグラフは以下です。

あらかじめ、以下のDynamoパッケージをダウンロードしてください。


こちらのarchilabパッケージにはビュー、シートを作成するカスタムノードが含まれています。

エクセル読み込み


先ほど作成したエクセルファイルを読み込み、入力したデータを抽出します。
今回、エクセルのC列:ビューテンプレートには値を入れていないので、List.Dropitemsでリスト削除しておきます。
リストの番号は0から始まるのでリスト2は、3列目=C列を表しています。

ビュー作成


Select.getLevelByNameは平面ビューとレベルを紐づけてくれるarchilabパッケージのカスタムノードです。
FloorPlanView.ByLevelは指定したレベルに平面ビューを作成してくれます。

シート作成


Make Sheetsはfor文を使ったPython Scriptノードです。
input0:A列シート番号
input1:B列シートの名前
input2:シートに配置する図面枠ファミリ
out:シート作成
シート番号がA1101のとき、1階_平面図のシートを作成し、シート番号A1110まで繰り返し作成するようにしています。

シートにビュー配置


ビューとシートを作成したので、ビューをシートに配置します。
Put View On Sheet
もfor文を用いたPython Scriptノードです。
input0:シート
input1:ビュー
input2:シートに配置するビューのX座標
input3:シートに配置するビューのY座標
out:シートにビュー配置
シートが1階_平面図の時、1FL_平面図ビューをx=0、y=0の位置に配置し、10層分繰り返し作成します。

実行をクリックし、Revitのプロジェクトブラウザを確認すると、複数のビューとシートがRevit上に反映されています。
シートの中にも対応されたビューがそれぞれ配置されています。

プロジェクト内にモデルデータが入っている状態で複製すると時間がかかりますので、プロジェクト開始時の空の状態で先にビューと、シートを作成しておくとスムーズです。

BIM
Dynamo
ARTICLES