2015年10月31日土曜日

ファミリ(1)~3D DWGを取り込む(1)

自由なファミリデザインはREVITの最大の魅力

Revitの大きなメリットの一つに、「ファミリ(部品)をユーザーレベルで自由にデザインできる」という点があげられます。今回から、基本的なファミリの仕組みについて理解を深めていきましょう。まずは、既存の3Dデータを取り込んで作るところから始めます。
3D DWGを取り込んだファミリ

DWGデータの活用


既存の三次元DWG/DXFデータを使ってファミリを作成する効果的な手順を考えてみます。今回はTOTOのCOMETで提供されている3次元CADデータをサンプルとして使用します。


このサイトでは、TOTO製品の三次元CADデータが公開されています。この中から、住宅用の大便器を例にして、ダウンロードしたDWG/DXFを使ったファミリの作成法を考えてみます。

3D/2D DWGのダウンロード


今回は下の図の商品をサンプルにしてみます。
様々な衛生器具の3D/2Dデータが公開されているTOTOのサイト
モデルとして3Dデータを、図面表示用として2Dデータをダウンロードします。
3DはDXFデータを使う
平面図は簡単なDWG
立面図として正面図のDWG
側面もDWG

ファミリの作成

まずは「衛生器具(メートル単位).rfa」を使ってファミリを新規に作成します。そして
[挿入]-[CADを読み込む]
で3Dデータを読み込みますが、このとき、いくつか注意が必要です。

(1) 3Dとして取り込むので、「現在のビューのみ」のチェックを外す
(2) エッジを黒にしたいので「白黒」とする
(3) ミリメートルを選ぶ
オプションに注意

です。そして、挿入後適当な位置におきます。次に、読み込んだデータを適切な位置におくのですが、プレビューをきれいに見せるために、下の図のように、上向きにおきます。
上向きに配置する

これがけっこう重要なポイントです。こうしないとプレビューがいつも後ろ向きになってしまいます。

3D表示のコントロール

読み込んだデータはメッシュになっているので、これが平面図に表示されると厄介です。そこでこのモデルは3D以外では表示しないように設定します。よみこんだモデルデータを選択し、プロパティパレットの[表示/グラフィックスの上書き]の編集ボタンをクリックし、下の図のように設定します。
3Dビューでのみ表示

これで、平面図、立面図、断面図にはメッシュが表示されなくなります。

2D表示のコントロール

平面図の2Dデータ(DWG)を平面図に読み込みます。このとき読み込みのオプションは下の図のように設定します。
2Dのオプション
便器の平面図、正面図、側面図は平面図や立面図でしか表示しないのでそれぞれ、「現在のビューのみ」にチェックをいれて

  • 平面図 - 参照レベル    に平面図
  • 立面図 - 背面      に正面図
  • 立面図 - 右                 に左側面図

を挿入します。

次に挿入した2D-DWGを選択し、[読み込みインスタンス]-[分解]-[完全に分解]で分解します。

分解後の線分を選択し、サブカテゴリを「衛生器具」に変更します。
詳細線分のサブカテゴリを「衛生器具」に変更
分解直後の線分のサブカテゴリはAやPVとなっています。これらは読み込んだDWGに含まれるレイヤの名前です。そのままでは、プロジェクトに挿入した後の表示コントロールが面倒なので、ネイティブのサブカテゴリに変更しておきます。

モデル線分からシンボル線分に


分解直後の線分は「モデル線分」になっています。このモデル線分を選択して、[線種を変換]をクリックしてシンボル線分に変換します。シンボル線分は平面図や展開図など、2次元図面にのみ表示されます。
モデル線分を詳細線分に変換する
この時点で、多少線分を整理して、表現を整えておきます。
図面表現を見やすく整える。
これが横からの立面図に表示される
これで、二次元図面上での表現はOKです。

マテリアル

よく「読み込んだCADデータのマテリアルは変更できないの?」と聞かれるのですが、これはちょっといつもとは変わった方法で可能です。

3Dビューに切り替えて、シェーディングにしてみます。すると、下の図のように色がついた状態になります。
3Dビューでシェーディングにする
ここで[管理]-[マテリアル]を表示します。そうすると「レンダリングマテリアル-数字-数字-数字」というマテリアルがいくつか並んでいます。
レンダリングマテリアル
この「レンダリングマテリアル」は、DWG/DXFファイルを読み込むごとに作成されます。これはDWGファイル内のレイヤや要素の「色」を示しています。つまり、

「AutoCADの色」=「Revitのマテリアル範囲」

となります。試しに元のDXFをAutoCADで開いてみると下の図のようになっています。
AutoCADで開いてみる

読込CADデータのマテリアルを設定したければ、AutoCADなどで、オブジェクトに色を付けておけばいいのです。

次回は、この色ごとのマテリアルを設定します。

2015年10月17日土曜日

地形(4)~国土地理院

基盤地図情報

国土地理院は「基盤地図情報」として、全国の標高の座標データを無償で公開しています。
基盤地図情報では標高の数値データをダウンロードできる

データは10mメッシュと5mメッシュの2種類があり、10mは全国、5mもかなりの地域をカバーしています。今回はこのデータを使って、REVIT上に地形を作成してみます。
国土地理院の数値標高データで作成したRevitの「地形」

全体の手順をあらかじめ申し上げますと

  1. 国土地理院のHPから数値標高データをダウンロード
  2. 基盤地図情報ビューアー(FDGV.exe)で、点座標ファイルを作成
  3. Excelで点座標ファイルを整理
  4. Revitの地形を点ファイルを使って作成
特に基盤地図ビューアという無償のソフトが秀逸で、これを使えば全国の地形を作成することができますのでぜひ使ってみましょう。

基盤地図情報の取得

まずは、国土地理院から地形情報を取得しましょう。以下のアドレスにアクセスしてみてください。

http://www.gsi.go.jp/kiban/index.html

そして「基盤地図情報のダウンロード」をクリックします。
最初に使うときはログインID・PWの設定が必要ですが、無償ですぐに登録できます。

次に、基盤地図情報ビューア―(FGDV.exe)をダウンロードします。この無償ビューアは最初のページの下のほうにさりげなくリンクがありますので、注意して探してみてください。
基盤地図情報

これは非常に優れたビューアで、これを無償で公開している国土地理院には頭が下がります。
インストール不要でFGDV.exeをダブルクリックすれば直接起動できます。
FDGV.exe
次に標高データをダウンロードします。
標高のデータをダウンロード
今回は5mメッシュを選択します。10mメッシュでも十分なのですがより精度の高い情報で実験してみましょう。
5mメッシュを選択
全国の地図が表示されます。拡大するとグリッドに小さなボタンが現れます。このボタンがあるところが現在5mメッシュの情報があるところです。必要な区画のボタンをクリックし、選択完了ボタンを押します。
必要なグリッドのボタンをクリックし「選択完了」をおす。
次に「ダウンロードファイルリスト」のページで、「基盤地図情報(数値標高モデル)」の行にチェックをいれてその行の右端の[ダウンロード]ボタンをクリックし、ZIPファイルをダウンロードします。
チェックを入れてからダウンロード
その他の行は、必要ありません。ZIPファイルがダウンロードされます。このダウンロードしたZIPファイルを、基盤地図情報ビューアーの画面にドラッグドロップします。
読み込まれた標高メッシュデータ
左側の「レイヤーリスト」の一番下の「標高メッシュデータ」だけが、アクティブになっています。ここには一般的な地図情報も読み込めるのですが、それは本論には関係が浅いため割愛させていただきます。

点座標ファイルを作成する


基盤地図情報ビューアで座標(X,Y,Z)を表す点座標ファイルを作成します。ビューアーに読み込んだ地形の必要な部分だけを変換してみましょう。まずその「必要な部分」をビューアー上で画面いっぱいに拡大してください。
画面いっぱいに必要部分を拡大
[エクスポート]-[標高メッシュをシェープファイルに出力]を選択します。
現在表示されている要素のみを出力をチェック
(おおむね)現在表示されている要素のみを出力」をチェックします。次に出力先ファイルの右端のボタンをクリックしてファイル名を指定するのですが、ことのきファイルの種類を「テキスト形式IDXY(*.xyz)」にします。
ファイルの種類「テキスト形式IDXYZ(*.xyz)」を指定

OKを押して点座標ファイルを保存します。

EXCELで点座標ファイルを編集する

出力したファイルの拡張子は「xyz」となっていますが、拡張子を「csv」に手動で変更します。そして、EXCELでこのCSVファイルを開きます。
A列は点のID
地点のXY座標と標高の値が並んでいますが、A列がポイントの番号になっているのでこれを削除します。

また、Revitで地形を作成するときに同じ値の座標があるとエラーになるので、念のために
[データ]-[データツール]-[重複の削除]
を使って同じ座標を削除します。(この作業はほとんど必要ないはずです。)

次に地形がREVIT上の中心付近に作成されるように、全ての点のXYの値を点の位置を相対的にプロジェクトの中心に移動します。全ての座標から先頭座標の値を引きます。

詳しい説明は避けますが、「=A1-$A$1」「=B1-$B$1」「=C1-$C$1」などのEXCEL式を使ってください。
相対的に座標を移動

重要なポイントとして、このA列とB列は一般的な感覚のYXの順番になっているという点です。そこで、A列とB列の値を入れ替える必要があります。
A列とB列を入れ替える

Revitで地形を作成する

いよいよRevitで地形を作成します。

手順

(1) [マス&外構]-[地形面]
(2) [修正|地形面を編集]-[ツール]-[読み込みから作成]-[点ファイルを指定]
(3) 前の手順で作成した作成したCSVファイルを選択
(4) [修正|地形面を編集]-[サーフェス]-[✔]


点の数によっては、時間がかかりますが、正確な地形を作成することができます。
REVITの「地形」で作成さた地形
5mメッシュでは点の数が非常に多くなり、その後の扱いが面倒なので、大きな範囲を取り込みたい場合は10mメッシュで十分です。

また、「地形面を簡略化」を使って精度を下げることも可能です。

広域を取り込む場合は点の数に注意が必要ですが、このように簡単な手続きで日本全国の任意の地形をRevit上に再現できることは、非常に価値があると思います。
地形面を簡略化で精度を10にした場合

2015年10月11日日曜日

ダイナモ白熱教室(10)-スイープ

前回はライノセラスで作成したサーフェイスをスライスするところまででした。
前回の終了時とはカットプレーンの位置が異なりますので、どうすればこうなるか考えてみてください。

今回はこのスライスで作成されたポリカーブ(切断線)に沿って、円をスイープしてみます。

List.Create


前回の最後でのノードGeometry.IntersectAllから作成された切断カーブのリストを一つに統合します。List.Createノードのプラスをクリックし、下の図のようにつなぐと、二つのリストが一つのリストにまとまります。これをFlattenにつないで、NuebsCurveの1次元のリストを作成します。
切断カーブのリストをまとめる

PlaneAtParameter


次に各NurbsCurveの始点にプロファイルとなる円を描く平面を作成します。始点なので、パラメーターは0です。
切断カーブの始点の平面を取得

この平面は切断カーブに対して垂直であることに注意してください。

Circle.ByPlaneRadius
NumberSlider

作成した平面上に任意の半径をもつ円を作成します。
プロファイルの円を作成

Surface.BySweep

この円を各カーブに沿ってスイープします。
切断カーブに沿ってスイープ
Plofileには作成した円のリストを、pathには切断カーブのリストをつなぎます。二つのリストは並び方が同じなので、レーシングを最短に設定することで、適切な関係を築くことができます。
レーシングは「最短」

Importinstance.ByGeometries
Importinstance.ByGeometry

次は作成されたジオメトリをRevitに取り込みます。Revitはプロジェクトでもファミリでも構いません。ここまでで作成されたジオメトリは次のように複数のサーフェイスです。

複数のSurfaceでできている。

これらを別々のジオメトリとして取り込む場合は「Importinstance.ByGeometry」を使い、ひとかたまりのジオメトリとして取り込む場合は「Importinstance.ByGeometries」を用います。なんだか反対のような感じのネーミングなので注意してください。
Revitに取り込む
Revitに取り込まれたジオメトリ
スライダを動かして、分割数や、プロファイルの半径を変更すると、Revitに取り込まれたジオメトリも同時に変化します。
分割数を10、半径を1.5にしてみる
Revitに取り込んで検討

Dynamoを利用すると、様々なパターンの検討を短時間に行うことができます。

2015年10月3日土曜日

地形(3)+フェーズ(2)=切土・盛土

切土と盛土の計算

フェーズを分けて地形を作成すると、直前のフェーズに作成された地形面との差分(切土・盛土)を計算することができます。ヘルプには次のように書かれています。

  • Revit では、1 つのフェーズのサーフェスと、その後のフェーズの別のサーフェス(前の方のサーフェス内に境界があるもの)を比較することで、値をレポートします。
  • たとえば、Revit ではフェーズ 1 で作成した地形面と、フェーズ 1 の地形面の境界内に含まれている、フェーズ 2 で作成した地形面とを比較できます。
さっぱりわからん!と思われる方も多いでしょうが、通訳しますと、
  1. まずフェーズを作成する。
  2. フェーズごとに地形を作成する。
  3. それぞれの地形の境界(外周)は同じにしましょう。
ということです。「整地」コマンドはこの一連の作業を行ってくれますが、「整地」コマンドを使わなくても、上記3か条を守れば、手動でも切土・盛土は計算できます。

フェーズの作成


ここでは、「平たんな土地を4区画に分けて穴を掘る」という想定で切土盛土を計算してみます。まず既存以外に4つのフェーズを作成します。
(1) [管理]-[フェーズ]
(2) [挿入]と[結合]を使って、以下のように複数のフェーズを作成。
フェーズを作成する

既存地形の作成


既存フェーズに平たんな地形を作成します。ここでは矩形の地形を、絶対高さ0に作成してみます。3Dビューを開き、ビューのプロパティ[フェーズ]を既存にします。
ビューのフェーズを「既存」に
これで、このビューで作成する要素は「既存」の要素になります。[マス&外構]の[地形面]で以下の図のような矩形の地形を作成します。
既存の地形

整地



次に、[マス&外構]-[整地]を選択します。すると次のダイアログボックスが現れます。
整地で現れるダイアログボックス
さっぱりわからん!・・・・・ここでも通訳が必要です。地形を構成する点群は
  • 周囲の点
  • 内部の点
に分けられます。周囲の点とは地形の境界(外周)を構成する点で、それ以外を内部の点といいます。この例では、周囲の点しかありませんが、地形(2)で作成したような複雑な地形は多くの内部の点が存在します。

これから、次のフェーズ(この場合は既存フェーズの次なのでフェーズ1)の地形を作成するので、既存フェーズの地形をコピーして変更を加えたい場合は上を、周囲(境界)の点だけをコピーしてまったく新しく始めたい場合は下を選択します。

これは、最初に掲げた3条件の3の項目(それぞれの地形の境界(外周)は同じにしましょう)を守るためです。

それでは上のオプションを選択し、既存の地形を選択します。すると・・・
警告が!!
なに!傾斜だど!誰が傾斜を付けるといった!わけわからんことをぬかすな!

お怒りはごもっともです。しかし、怒りを鎮めて冷静になりましょう。現在開いているビューのフェーズは最初で設定したように「既存」になっています。ですから、通訳しますと、

ご主人さま、整地コマンドで選択した地形の複製を「既存フェーズ」にコピーしようとしていますがよろしゅうございますか?このままでは同じフェーズに二つの同じ地形ができてしまいます。

と言っているわけです。なるほど、そうか。それはよろしくないな、というわけで、一旦[修正|地形面を編集]で×をクリックして編集を終わります。
そして、ビューのプロパティでフェーズを「フェーズ1」にします。
フェーズを変更
そして、改めて[整地]を同じ手順で繰り返します。今度は警告は表示されません。フェーズ1に既存と同じ地形がコピーされ編集画面になりまので、フェーズ1での地形を作成します。

フェーズ1での地形
フェーズ1の地形を選択して、プロパティを見てみると、次のように切土と盛土の量が表示されます。
切土盛土

集計表で表示する


以下のような地形を作成し、この切土盛土の集計表を作成してみます。
フェーズ1
フェーズ2
フェーズ3
フェーズ4
それぞれの地形に名前をつけておきます。地形を選択して、プロパティの「名前」に設定します。
地形に名前をつける

集計表の設定

[表示]-[集計表]で地形を選びます。
集計表の設定
フィールドとして「名前」「切土」「盛土」「正味切土/盛土」を選びます。
名前と切土、盛土、正味切土盛土をフィールドに選択
そして、集計表のフェーズフィルタを「なし」として、フェーズによるフィルタリングを除去します。
フェーズフィルタを「なし」
これで以下のような集計表が作成されます。
作成された集計表

この、表からわかるようにRevitの切土・盛土は直前のフェーズとの比較として計算されます。またヘルプには

Revit で計算される切土と盛土の容積は概算であり、一般的な精度は +/- 1%~ 2% です。


と、書かれています。