2015年8月23日日曜日

ダイナモ白熱教室(8)-Rhinocerosのデータを読む(1)

ライノのデータを読むには?

ライノセラスのデータの拡張子は.3dmです。このデータをRevitに読み込むには、「読み込めないACISオブジェクトがあります」の回で説明したように2004DWG形式に変換して、読み込む方法が最も簡単です。しかし、ジオメトリとして読み込めるだけで、さらに分析を行うにはダイナモで読み込むと便利です。ここで重要な用語は

  • Rhynamo(ライナモ)
  • アダプティブコンポーネント

の二つです。ライナモとはダイナモのパッケージ(アドオン)です。ダイナモには様々なパッケージが公開されています。まずはダイナモを起動して、パッケージをインストールするところから始めましょう。

ライナモのインストール

ダイナモを起動し、[パッケージ]-[パッケージの検索]を選択

ダイアログボックス上部に「Rhynamo」と入力

Rhynamoの○に↓をクリックし、インストールします。ライブラリの一番下に「Rhynamo」が登場します。

ライナモを使ってみる

それでは、何らかのライノセラスのファイルを用意して、これをダイナモで読み込んでみましょう。ライノのHPではサンプルファイルが落とせますのでこれを利用してもよいでしょう。
まずはファイルを指定します。以下のノードを追加します。

File Path

ファイルパスを指定するノードです。Browseをクリックし、3dmファイルを指定します。

File.FromPath

ファイルパス名からファイルオブジェクトを生成します。これをFile Pathに接続します。
ファイル取得のお決まりのパターン


ライブラリの「Rhynamo」を展開して、ReadRhinoの

OpenRhino3dmModel.Get_RhynoModel

ノードを追加します。
Rhynamo
これを以下のようにつないで、下の□をクリックすると
データのプロパティを取得
データのプロパティの一部を取得できます。右側の一番上の「RihinoModel」から、形状データを取得することができます。

レイヤ情報の取得

まずはこのファイルのレイヤを取得してみましょう。[Rhino Object]の

RhinoObject.Get_RhinolayerNames

を追加し、以下のようにつなげば、どのようなレイヤが含まれているかわかります。
レイヤの取得
レイヤごとにジオメトリを取り出す
ライノのレイヤ別にジオメトリを取り出すことができます。まずは、

Integer Slider
List.GetItemAtIndex

を追加し、さらに[Rihino Object]から

RihinoObject.Get_RihinoObjectsByLayer

を追加し、以下のようにつなぎます。スライダの最大値はレイヤの数に合わせておきます。
Get_RhinoObjectsByLayer
さらにライブラリ一番右の[Rhino ..n To Ds]から、

RhinoTranslationToDS.Rhino_AllGeometryToDS

を追加します。下部の□をクリックし、スライダを動かせば、各レイヤにどのようなジオメトリが含まれているかがわかります。
各レイヤに含まれるオブジェクトタイプがわかる
このリストの見方ですが、
[0] Points
[1] Curves
[2] Breps
[3] Extrusions
[4] Meshes
がそれぞれいくつ含まれているかが表示されています。


次回はこの情報を基に、いよいよライノのデータをダイナモに取り込んでみます。