普段のRevitでの作業では座標を意識することは全くないのですが、解析にデータを回したりする場合、特定のファミリの挿入点をCSVやエクセルに出力する必要があります。
今回はダイナモを使って、プロジェクト内部にあるファミリの挿入点をエクセルに出力してみます。
ダイナモの最新バージョンは1.1.0で、こちらからダウンロードできます。
ダイナモの起動
Revitでサンプルプロジェクトを立ち上げ、ダイナモをスタートします。
(1) [R]-[開く]-[サンプルファイル]で「rac_advanced_sample_project.rvt」を開く。[表示]-[3Dビュー]でアクソメ表示にしておきます。
(2) 2016までは[アドイン]から、2017では[管理]からダイナモを起動し[新規作成]を選択します。
要素をカテゴリで選択する
「家具」のカテゴリにある要素(Element)をすべて選択します。
(1) [Revit]-[Selection]-[Categories]ノードを追加し、「家具」を選択。
(2) [Revit]-[Selection]-[All Elements of Category]ノードを追加して、図のようにつなぐ。
すべての家具を選択 |
取得した家具を確認する |
ファミリの挿入点を取得する
次に取得した家具ファミリインスタンスの挿入点を取得します。
(1) [Revit]-[Elements]-[Familyinstance]-[Location]ノードを追加
(2) 図のように接続し、Watchノードをつなぎ変えて、座標の状況を確認する。
座標が取得できた! |
Excelに書き出す
座標が取得できたので、書き出すためのExcelブックを準備します。Excelを立ち上げて、適切な場所に空のブックを保存します。ここではMyDocumentに座標出力.xlsxという名前で保存して閉じます。
(1) [Office]-[WriteToFile]ノードを追加
(2) <filepath>を指定するために、[Core]-[Input]-[File Path]ノードを追加し、[参照]ボタンをおして、上記で作成したExcelブックを指定。
(3) <sheetName>を指定するため、[Core]-[Input]-[String]を追加し、「Sheet1」とする。
(4) <startRow><startCol.を指定するため、[Core]-[Input]-[Number]を追加し、「0」とする。
(5) <overwrite>を指定するため、[Core]-[Input]-[Boolean]を追加し、「True」を選択。
(6) 図のように接続すると、座標がエクセルに書き出されます。
Excelに座標を出力 |
A列のセルに座標が出力されてた |
座標XYZを別々のセルに取り込む
そのためにはまず、X,Y,Zの数字のリストを作る必要があります。上の図の1行目を例にとれば、-7985.799,29089.041,0.000
というような、数字だけのリストです。
数字だけのリストをつくるには
(1) [Geometry]-[Point]-[X]、[Y]、[Z]ノードを追加し、下の図のようにつなぎます。X,Y,Zノード |
List.createノード |
[0]ListはXの、[1]ListはYの、[2]ListはZの値になっている。 |
1行目はX、2行目はY、3行目はZ |
ですが、こうではなく、やはりA列にX、B列にY、C列にZの値を出力したいところです。
(4) [Core]-[List]-[Transpose]ノードを追加し、図のようにつなぐ。
すると、下の図のようにExcelに出力されます。
出力された座標 |