2015年8月30日日曜日

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

RhinoからDynamoへ

それではライノセラスのデータをRhynamoを使ってダイナモのデザインスクリプト(DS)に変換して読み込んでみます。今回は下の図のような簡素なライノデータを読んでみます。簡素といっても3つのNurbsCurveを基にロフトで作成したけっこう複雑な曲面です。
ロフトで作成したサーフェイス
まず前回同様の手順で、どのような要素が含まれているかを調べます。このデータは「デフォルト」レイヤに3つのNurbCurveを、レイヤ4にサーフェイスを作成しましたので、スライダを動かして、レイヤ4を選択します。
前回のグラフで、ファイルを選択しなおす。
レイヤ4にはBrepとしてPolySurfaceがある。
したがって、Brepをデザインスクリプトに変換するノードを追加します。検索バーに「Brep」と入力し、「Rhino_BrepToDS」を追加し、次のように接続します。接続先を間違えないでください。
ライノのデータを読み込んだところ
GeometryとしてPolySurfaceが取り込まれている。
これでダイナモのジオメトリとしてライノのデータを取り込むことができました。さらにRevitに取り込むことも簡単にできます。

ImportInstance.ByGeometry/ByGeometries

一番安直なのは、作成されたジオメトリを単純に「塊」としてRevitに取り込む方法です。
ImportInstance.ByGeometryまたはByGeometriesを下の図のように接続します。
ByGeometries
Revitに取り込まれたジオメトリ

ByGeometryとByGeometriesの違いは、複数のジオメトリがあった場合、そのジオメトリごとバラバラに取り込むか、塊として取り込むかの違いです。

しかしながら、この方法では、単にDWGやSATファイルとして取り込んだ場合と、大きな違いはありませんね。

例えば、サーフェイス面を分割して、下の図のような形状を作ってからRevitに取り込むことも可能です。
ダイナモで面を均等割りして、円のプロファイルで籠状にしてみたところ
次回は、上図のようなサーフェイスの加工について、手順を説明します。


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
がそれぞれいくつ含まれているかが表示されています。


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



2015年8月2日日曜日

地形(1)

Revitでは数少ないサーフェイスメッシュ要素である地形ですが、敷地を正確に作成することは計画をするうえで重要です。今回は下の図のような簡単なのり面を含む地形を例にして、上手な敷地の作り方を考えてみます。
坂に囲まれた敷地

等高線と三角形の分割エッジを表示する

地形はメッシュ構造で作成するので、ポリゴン(三角形)をいかに作るかを意識する必要があります。地形を作成するときは以下の設定をお勧めします。

等高線のピッチを設定する
(1) [マス&外構]-[外構を作成]パネルの矢印をクリック
外構の設定
(2) 地形の高さにもよりますが、この例ではピッチを100に設定します。
等高線のピッチを変更
(3) 地形を作成する平面ビュー(建築テンプレートならば、設計GLのビューなど配置図のビュー)を開き、[表示]-[表示グラフィックス]で、地形のサブカテゴリをONにします。
地形のサブカテゴリをON
(4) 地形が設計GL(Z=0)よりも低い位置にある場合は、ビューの奥行きをZ=0以下まで伸ばす必要があります。ビューのプロパティから、[ビュー範囲]をクリックし、ビューの奥行を[無制限]とします。
ビューの奥行を無制限に

三角形を意識しながら地形をつくろう

地形はポリゴン(三角形)の集合で構成されるので、地形を作成するときも事前に三角形に分割してみるとやりやすくなります。まったくの長方形でも二つの三角形に分割されます。今回の敷地だと次のように分割して考えます。
ポリゴンに分割して考える

実際の敷地はもっと複雑ですが、基本は同じです。三角形が多ければ正確な形状に近づきますが、パフォーマンスを考えるとある程度の抽象化が必要です。まず、周辺の4点をそれぞれの高さで作成してみます。
敷地が2枚の三角形で表されています。
地形は二つのポリゴンに分割され、1枚は傾いています。さらに道路の底面部を作成してみます。
道路の4点(-1500)を追加

道路の底面部(左下隅)は平たんになりましたが、敷地が未完成です。敷地の4点の±0の点を追加します。
敷地の3点(±0)を追加
地形は点を打つごとに、最寄りの点と三角形(ポリゴン)を作ります。この三角形ができていく様子と、等高線の状況を確認しながら地形作成を進めることが大事です。
三角形と等高線に注意しながら地形を作成する
これは3Dビューでも同じビュー設定で確認できます。
3Dで等高線と三角形を分割
あとはサブ領域を作成して、マテリアルを設定し、等高線や分割エッジをOFFにします。
サブ領域
舗装に頼らなくても、きれいな坂道を作ることができます。三角形と等高線を意識しながら地形を作成してみてください。