Rhino Inside Revit, Revit上でRhino/Grasshopperを走らす

最近Rhinoが6から7にバージョンアップされた。Rhino7に標準装備された評判(?)の「Rhino Inside Revit」を使ってみたので紹介する。

そもそもRhinoとは?動物の「サイ」と名付けられた「Rhinoceros 3D」(以下Rhino またはライノ)は、学生からプロまで世界中のデザイナーに愛用されている3D CADソフトである。特に曲面のデザインに優れている。さらにGrasshopperを始めとしてさまざまなプラグインが公開されており、コンピューテーショナルデザイン、パラメトリックデザインの世界共通のツール / 言語となっている。20年ほど前、アメリカ留学中の友人に、ロンドンAAスクール出身でFOAのデザインアーキテクトの一人だった優秀なキプロスの建築家がいた。彼は当時からRhinoを使っており、FOA時代には横浜大さん橋のコンペにデザインチームの一人として参加した。当時(さらに5年程遡るので25年ほど前)は、Rhinoも普及されておらず(日本ではほぼゼロであったろう)、FOAが発表した客船ターミナルの地形のようなサーフェスデザインはまさに衝撃であった。さて本題から脱線し過ぎないうちに、デモを始めよう。

Rhino Inside Revit

「Rhino Inside Revit」はRevitのプラグインである。Rhinoceros 3Dの公式サイトからダウンロードできる。https://www.rhino3d.com/inside/revit/beta/getting-started

ダウンロードするとRevitのアドインリボンにRhinoのお馴染みのサイのアイコンが追加される<図01>。インストールしてから最初にRevitを起動する際に、アドインを追加して良いか聞かれるので、もちろんOKする。(いったんOKすると次回の起動からは常にインストールされる。)またRevitのショートカットとしてRを「Rhino Inside Revit」に勝手に割り当てる。

<図01>Rhino Inside Revitアドイン

Rhino Inside Revitアドインを開けると、以下のようなリボンとなる<図02>。ここからRhinoに入る、Rhino Inside Revitというわけである。Rhino Inside Revitは、単独でRhinoを操作しているのではないので、Revit無しでRhino+Grasshopperを立ちあげてもGrasshopper(以下GH)のRevitのコンポーネントは使用できない※。

※Rhino Inside RevitのGHで作成したドキュメントを、Revitを介さず開くとRevitコンポーネントが読み込めないと警告が出る。警告は無視しドキュメントを開くことは出来るが、Revitコンポーネントは全て真っ白となり、GH単独でRevitコンポーネントは使用できない<図03>。

<図02>Rhino Inside Revitのリボン

<図03>Rhino Inside RevitのGHで作成したRevitコンポーネントはGH単独では機能しない。

それではRhino Inside Revitを開いてみよう。まずRhinoボタンを押してRhinoを立ち上げる<図04>。するとRhinoの画面がポップアップする。繰り返すが、これはRhinoではなくRevitの中のRhinoである。(まるで禅問答。。。)

つぎにGrasshopper(以下GH)ボタンからGHを立ち上げる<図05>。Rhinoを介さず直接GHだけ使用することもできる。これで準備完了。

<図04>Rhino Inside RevitのRhinoの画面(右)

<図05>Rhino Inside RevitのGHの画面(中央)

Grasshopperによるスパイラルタワーのデザイン

GHでシンプルなスパイラルタワーをデザインしてみよう。今やこの造形は世界中の都市で出現しているが、まさにRhino + Grasshopperの産物と言ってよい。GHの操作はネットや書籍でさまざまなチュートリアルや動画があるので、おさらい程度に。(筆者も思い出しながら。)

ステップ1, 楕円のフロア

まずXY平面(1階)に楕円フロアを生成し、それを最上階に移動する<図06>。Ellipse, Move, Unit Z

<図06>Ellipse, Move, Unit Z

ステップ2, 最上階回転

最上階の楕円を回転する<図07>。Rotate ※

※1階と最上階の2平面の場合、回転角度は60度くらいまでが限度、それ以上回すと次のステップでサーフェスが破綻する。さらに回転させたい時は中間階が必要。

<図07>Rotate

ステップ3, Loft

そして1階と回転した最上階の楕円をつなげる/スィープする。ここでRhinoのもっともポピュラーで強力なコマンドLoftの出番<図08>。このようにねじれた楕円のシームレスな押し出しサーフェスをインスタントに生成できるのである。このコマンドは世界中の建物のデザインを変えてしまった。

<図08>Loft

このロフトのモデルはRevitにも同期されている<図09>。つまりRevitの中で直接GHが使えるようになったということ!「Rhino Inside Revit」以前は、GHをRevitにプッシュさせるには特別なツールを必要としていた。ザハ事務所はそのスペシャルツールを駆使しているとのこと。

<図09>RevitとGHの同期

ステップ4, パネリング

ここから先はエンベロップの作成。まずはロフトサーフェスをUVグリッドに分割する<図10>。Isotrim(Sub Surface), Divide Domain 2

<図10>Sub Surface

さらにパネルを面(Face)、エッジ線(Edge)、頂点(Vertice)に分解する。Deconstruct Brep

ステップ4, 三角パネル

ここでは三角パネルを割り付ける。無数の四角のリストから、3点の頂点のセットを抽出するには、Cull(摘み取る)というコンポーネントCull Patternを使うと便利<図11>

<図11>Cull Pattern

パネルのパターンを確認するためにPoly Lineを使う。ポリラインはCloseすることを忘れずに(Closeしないとせっかく3点抽出しても三角形にならない)。Patternの端子に3つのBoolean Toogleボタンを接続し、ボタンのON、OFFで摘み取りのパターンを確認する。True, True, Trueだと4点のまま<図12>。True, True, Falseだと1点が摘み取られ3点が抽出される<図13>。

<図12>Cull Pattern : True, True, True

<図13>Cull Pattern : True, True, False

筆者も含めなんだか訳が分からないが、Boolean Toogleボタンを複数付け、ON-OFFを適当に組み合わると、パターンが切り替わるので実験するべし。

ステップ5, Revit Familyの読み込み

最後に割り付けるパネルは、RevitのAdaptive Component Family で作成する<図14>。マリオンの太さは後で調整できるようにパラメーターとして設定。これをプロジェクトの中にロードする。

※アダプティブファミリーの作成は最初は少々とっつき難いので、YouTubeにアップしました。↓

<図14>三角形のパネル、Adaptive Component Family(解説動画)

次にGHでこの三角形パネルファミリーを読み込む。Model Categories Picker, Element Type Picker でプロジェクトにロードしたAdaptive Componentを読み込むことができる<図15><図16>。ちなみにRevitを使用しているので、最後はRevitのファミリをロードしてこないと、Revitを使っている意味が無いのである。

<図15>Model Categories Picker

<図16>Element Type Picker

最後にAdd Component (Adaptive)に先にCullで抽出した3点セットのリストと接続すると、パネルが割付られる<図17>。パネル数が多くなると、割り付けられるまで少し時間がかかるが、じっと我慢。計算している間に下手に触るとフリーズのもと。

<図17>Add Component (Adaptive)

もちろんRevitのモデルも更新される!<図18>

<図18>GHのコードからRevitのファミリを呼び出す

最後に、先に設定した三角パネルのマリオンの太さのパラメーター(mullion width)をGHの中で調整できるようにする。Revitのタイププロパティで変更すれば同じことだが<図19>、せっかくここまでGHで生成したので100%GHのスクリプトで実行しようということである。

<図19>Revitのファミリパラメーターの設定画面

Set Element Parameter を使う<図20>これでマリオン太さをGHの中で調整できるようになった。GHの中でこのタワーの形状を決定するすべてのパラメーター「楕円平面の半径」「タワーの高さ」「パネリンググリッドの数(UV)」「回転角度」「マリオンの太さ」を設定調整し、直接Revitに反映できるようになっている。パネリングの計算は高負荷なので、筆者のパソコンのような「普通の」スペックのPCの場合は、いったんAdd Component (Adaptive)Disableにしてから、ポリラインで成果を確認・検討するのが良い。繰り返すが、計算中はむやみにキーボードやマウスをいじらない。我慢しない筆者は何度フリーズしたことか。。「Revit上でRhino/Grasshopperを走らす」と銘打ったが、結局「走る」じゃなくて「歩く」って感じでした。そんなことに気をつけながら、RevitでGrasshoppingしてみてください!

<図20>Set Element Parameter

追記:上の楕円のスパイラルタワーをRevitで作成するとこうなります。↓

2021.03.13 HN

Revitはアメリカ人, インチとメートル

インチ系とメートル系

アメリカでは長さの単位はメートル系でなく、フィート-インチ系(feet-inch)である。1 inchは  25.4 mmで、1 feet = 12 inch = 304.8mm である。ご承知のように、日本を含め現在では世界中のほとんどでメートルを使用しているので、初めてアメリカの設計事務所で仕事をやり始めた頃は、慣れない12進法の単位と縮尺のシステムに苦戦したものである。

フィート-インチ系 表記法 メートル系
1 inch 1” 25.4 mm
1 feet = 12 inch 1’ – 0” 304.8 mm

メートルは10進法なので、縮尺はシンプルに1/50、1/100、1/200などと分かりやすいが、インチ系での縮尺は以下のように十進法に変換すると端数が出てくるので、メートル系の物差しやサンスケ(三角スケール)は使えない。ただし1/8” = 1’ – 0”などは1/100のスケールで代用できたりする。

インチ系縮尺例 スケールファクター デシマル
1/32” = 1’ – 0” 1 / 384 0.0026041666
1/16” = 1’ – 0” 1 / 192 0.0520833333
3/32” = 1’ – 0” 3 / 384 0.078125
1/8” = 1’ – 0” 1 / 96 0.0104166666
1/4” = 1’ – 0” 1 / 48 0.0208333333

始めは手すりの高さ3′-6″は1,066mmなどと、いちいちメートル換算して理解していた。まるで英語を使うのに、いったん日本語で考えてから英語に翻訳する(ぼくのような)典型的な日本人のようである。慣れてくると、インチ系の建物の方が3’、6’、12’、15’などとシンプルかつ身体スケールに即した寸法体系を持っていることを認識できる。例えば背の高いアメリカの男性の平均身長は6’、歩道の幅は12’などと分かり易い。逆に「チリ3mm(約1/8″)」などと言うとそんなに微細な寸法はアメリカの建設現場では無意味(制御不能)とボスに笑われてしまう。メートル系はサイエンティフィックでメカニカルであり、インチ系はヒューマンである。日本でも尺が使われていたが、人間的な寸法体系であることは言うまでもない。一間(6尺)は1.81818mなので、6フィート(1.8288m)とほぼ同じ寸法ある。

補足:日本の場合、畳や襖のモジュールは柱や梁の内法でとるので、畳の大きさは、地域によるが、6尺ない。江戸間の大きさは、5 尺8 寸(176cm)×2 尺9 寸(88cm)。

AutoCADの単位(Unit)の仕組み

さて、話を戻す。アイフォンもまだ世に出ていない20年以上前は、もちろんBIMなどなくAutoCADで設計していた。AutoCADの単位(Unit)は、インチ系とメートル系の互換性が無い。分かり易く例えると、米国のAutoCADの図面と、日本で使うAutoCADの図面はまさしく世界が異なる。以下にAutoCADでの実際の操作によって説明する。AutoCADにはインチ系のテンプレート「Tutorial-iArch.dwt」などが入っているので、それを使うと便利。[図1]のように27フィート角の平面を作図する。27’は8,229.6mmである。

[図1]インチ単位系でのCAD図

次にそのインチ単位のデータをコピーし、メートル単位のモデルスペースにペーストすると、27′-0″の寸法が、324となる。すなわち27 x 12 = 324 で、27′-0″角の平面が、324mm角の平面に縮小されてしまったということ。これをメートルの世界に変換するためには、1 inch = 25.4 mm なので25.4倍する必要がある。

追記:初めてインチ系の環境でCADを使う時のよくある間違いは、モデルスペースでインチユニットで作図し、ペーパースペースで印刷するときに、インチ系の図面をA3(420mm x 297 mm) などのメートル系のペーパースペースにレイアウトするとスケールが合わない。A3(420mm x 297 mm) は A3(16.5354″ x 11.6929″)であることを忘れているのである。

[図2] 左のインチ単位系のCADデータを、右のメートル単位系にコピーしたもの

Revitの単位(Unit)の仕組み

一方、Revitの場合は異なるシステムを持つ。当然日本語版のRevitは初期設定では単位はメートル系である。しかし、AutoCADと違ってメートルとインチのデータの長さは絶対寸法を持っている。

上のAutoCADと同様の操作で理解してみよう。日本語版のRevitの基本テンプレートはメートル単位だが、インストール時のライブラリにインチ単位のものも入っている。「Default_I_ENU.rte」 [図3] を使う。IはImperialのI。インチシステムの日本語の名称は「帝国単位」と少々威圧的である。

[図3] インチ系のテンプレート「Default_I_ENU.rte」

このテンプレートで、27’角の箱をつくる。フィート単位のプロジェクトの中にいるので、27と入力すれば自動的に27’となる。寸法を入れて確認する。[図4]

[図4] インチ系テンプレートでの作図

次に通常のメートル系のテンプレートを開き、[図4]のモデルをコピーしてメートル系の白紙のモデルにペーストする。するとこの場合は、寸法は8230となっている[図5]。すなわち27’角の箱が8,229.6mm(27 x 12 x 25.4)角の箱としてコピーされたということを示す。

[図5] 左:インチのモデル 右:メートルテンプレートにコピペしたもの

Revitはアメリカ人

ここからが本題である。すなわち、RevitのUnitは絶対的な長さのプロパティを持っているということである。「Revitはアメリカ人」とは、ファミリだのプロファイルだのインプレイスなど訳の分からないカタカナ満載の日本語版Revitのインターフェースを指しているいるのではなく(そういう皮肉もこめているが)、ここでは「メートル系のテンプレートの中でインチ入力できる」ということである。

インチ寸法の作成

まずインチ対応の寸法タイプを作成する。寸法スタイルの一つをコピーして名前をフィートなどの名前を付けて別タイプとする。単位書式がmmになっているので、この単位を変更する[図6]。

[図6] 長さ寸法のプロパティ画面

すると以下のような設定画面となる。ここで「プロジェクト設定を使用」のチェックをオフにすると、単位をフィートインチ変更できる。「フィートと分数表記インチ」とする。[図7]。すなわち、デフォルトではプロジェクトの単位系はmmということ。

[図7] 寸法単位の変更

これで準備完了。この寸法タイプで先ほどの箱を測ると、27′-0″の寸法を記入できる。[図8]

[図8] インチ寸法の入力

インチ入力での通り芯の作成

さらにメートルのユニットの世界で、インチ入力で通り芯を作成する。まず27’を三等分し9′-0″の通り芯を入力する。プロジェクトの単位設定がメートルなので通り芯をコピーしようとすると、2000などのようにmmの青い作図寸法が出てくるが[図9]、無視し、「9’」と数値入力をする[図10] 。フィートの記号「’」は「シングルクォーテーション」という。すると9′-0″のスパンで通り芯を入力できるのである。長年そのことに気が付かなかった筆者は、これを知った時は、「なるほどRevitはアメリカ生まれなんだ」と感慨深く(?)妙に納得したものである。

[図9] コピーによる通り芯入力

[図10] フィートの数値入力「9’」

インチは「”」「ダブルクオーテーション」を付ければ良い。たとえば4′-6″「4’6″」と入力する。この場合6″はちょうど半分なので「4.5’」でも良い。このようにRevitではメートルの世界でも、バイリンガルにインチの世界が使えるようになっているのである。ちなみにAutoCADのメートル単位系の中で「4’6″」と入力しても単位として認識することはできないので試してみてください。

[図11] Revitではメートルもインチもバイリンガルに入力できる。

HN 2021.01

 

 

 

 

 

 

 

 

 

RevitからLumionへ

昨年Lumionを購入した。それまではプレゼン用のレンダリングも含めRevit内ですべて作業していたが、重宝していたMental rayが使えなくなり、Vrayを入れたりしたが、ようやくLumionに行き着いた。BIMを始めた時点で早々にLumionを導入していれば良かったというのが率直な感想である。国内外を問わず、建築設計事務所での採用率が高いのもうなずける。

Lumion

Lumionは「リアルタイムレンダリング」と言って、ゲーム開発やVRコンテンツなどの作成のプラットフォームとして使用されるUnityやUNREALなどと同様のシステムのソフトである。リアルタイムというくらいなのでレンダリング時間がとても早く、したがって動画も手軽に作成できる。一昔前は、建築の世界ではほぼレイトレーシングレンダリングだけに頼っており、アーキテクトは施主やプロポーザル等へのプレゼンでリアルな勝負パースを作成したいときは、「CG家さん」に外注せざるを得なかった。フォトリアルなレンダリングを作成することができるソフトの代表格に3dsMaxがあるが、アーキテクトが直観的に使えるような簡単なソフトではなく、たとえマスターしたとしても入力に時間がとられるので、建築家が設計をしながら3dsMaxで絵を描くのはなかなかハードルが高い。また、3dsMaxのレイトレーシングはとてもきれいだが(映画などCGのプロが使うソフト)、その分レンダリングに時間がかかる。筆者が20年程前働いていたNYのヴィニョーリ事務所では、Maxを使いこなすインハウスの若いレンダリングチームがいて、コンペの前になると、事務所中の40~50台のコンピューターを稼働させネットワークレンダリングをかけて動画を作成していた。もはやBIMやVRが標準になった若い世代には想像つかない話である。さて今日のBIM時代のアーキテクトは、最初からリアルタイムレンダリングを使えば、プレゼン作業がかなり効率化できる。特にLumionは建築用のレンダリングや動画作成のみに特化してる。基本的にモデリング機能は付加せずに、Revit、ArchiCAD、Sketchup、Rhinocerosなどアーキテクトに広く使用されているBIMや3DCADとのすべてのソフトとの互換性の高さで勝負しているソフトである。もちろんVRソフトなのでゲームコントローラーやヘッドマウントディスプレイでヴァーチャル内覧会ができるわけである。

[Fig01] Lumionと同期させるRevitのモデル

Revit Lumion LiveSync

さて、そんなLumionを買っては見たものの、最初のうちはデータのやり取りのやり方が分からず、半年くらいは「宝の持ち腐れ」だった。もったいないのでネットで勉強した所、データのやり取りはとても簡易で、その互換性もほぼ完璧であり、RevitとLumionを「インタラクティブ」に使用できるということが分かった。えらく前置きが長くなってしまったが、ここで「インタラクティブ」であるとことをさっそくデモしたい。

[Fig02] Lumion LiveSyncのアドインの画面

まず、RevitとLumionを連携させるためには、Revitに「Lumion LiveSync」というアドインをインストールする[Fig02]。アドインはAutodeskのAppStoreから無料でダウンロードできる。軽いのですぐダウンロードでき簡単に組み込める。

[Fig03] Lumion とRevitの画面

次にLumionを開く。上のようにダブルスクリーンで左右で表示させると便利である[Fig03]。

[Fig04] Lumion LiveSyncの同期操作

RevitのLiveSyncの操作は極めてシンプルである。[Fig04] ライブシンクというくらいなので、Revitの3DビューとLumionを同期させることができる。再生ボタンを押すと、LiveSyncがON(緑色)になる。すると、Lumionの中にRevitモデルが表れる

[Fig05] Lumion に何も出てこない!

はずなのだが、何も出てこない![Fig05]  よく見ると地面が暗くなっている。実はRevitで地面の高さを標高通りに作成しているため、Lumion上で約100Mの高さにモデルが浮いており、大きな影が落ちているのである。※特に何も設定しなければRevitの基準点(0,0,0)がLumionの基準点(0,0,0)に対応している

[Fig06] ようやく宙に浮いているモデルが表れた!

実はそのことに気づくまで相当時間がかかったのだが、我慢強く視点を後ろにグーっと引いていき、宙に浮いているモデルをようやく発見することができた[Fig06] 。宙に浮いたまま作業するのも気持ち悪いので、Lumionの地面の近くに移動させると、Lumionの地面にRevitのモデルが表れる。※Lumionで数値入力で移動させると手っ取り早い[Fig07]

[Fig07] Lumionの地盤面近くにモデルを移動

Revitのモデルと比較すると、下図[Fig08] のような結果となる。Revitの木や人は同期してない。(そもそも木や人などの点景はLumionに良いライブラリーが揃っているので必要ない。)Revitのテクスチャーは基本的にすべて入る。ここではガラスも透明な状態で入っているし、水もしっかり表現されている。ガラスなどがうまく入っていない時は、Lumion上でRevitのマテリアルごとにテクスチャーを一括で変更できるようになっているので、ガラスを透明度や反射度を上げたり、色をつけたり、すりガラスにしたりなどインスタントに入力できる。Lumionで一度マテリアルなどを変更すると、その設定は保存される。※注意点を後に示す

[Fig08] 同期結果(Revitの木と人は同期されない)

さて屋根が真っ白だが、Revitのテクスチャーマップを外部参照していたりすると、こういう事態が発生する。Revitに戻ってテクスチャーイメージを再設定するとLumionにすぐに同期する。このようにRevitで作業するとLumionに自動的に同期されるのである。もちろん、テクスチャーだけでなくRevitで窓を大きくしたりすれば、Lumionに不整合なく反映される。繰り返すと、RevitとLumionで「インタラクティブ」に設計できるということである。

※PCのスペックが低いとLiveSyncをかけたままでRevitとLumionを同時作業すると、動作が非常に遅くなるので、そういう場合はRevitでの最新の状態を確認したいとき以外はLiveSyncを切っておくと良い。

[Fig09] Revitでマテリアルを割り当てると、その修正が自動的にLumionに同期する

ここで注意したいのは、Revitのすべての3Dモデルと同期するので、例えば[Fig10] のような断面パースのビューがアクティブな時に、意図的にせよそうでないにせよ、LiveSyncの再生ボタンを押すと、Lumionに断面パースのビューが同期するということである。Lumionの中で表示させたくないRevitの家具や車などはRevitの3Dビュー内で非表示にして同期させるのだが、同期させる3Dビューを間違えるとその設定がすべて元に戻ってしまうので注意ということである。この点も最初のうちは、知らずに作業し何度と失敗したことか。。

[Fig10] Revitモデルとの同期はすべての3Dビュー対して有効

[Fig11] Lumionで3Dの木と人を入れたもの

上はLumionで3Dの木と人を入れたもの。さまざまなアセットが用意されているので、選ぶのも大変である。地面の芝なども3Dの草むらの表現ができるのだが、筆者のPCでは重たくなりすぎるのであきらめている。この画面はあくまでLumionの基本画面で、ここからレンダリングをかけるとよりリアリティのあるレンダリングが出力できる。事務所のミドルスペックのPCでも、2Dのパースは大きいものでも1分程度(レイトレーシングでは2~3時間)で、Youtubeにアップロードするような1,280 x 720ピクセル3分程度の動画なら1.5時間くらいで出力できる。おかげで夜中にレンダリングを始め、朝にミスに気付いて提出に間に合わなくなるなんて悪夢から解放された。リアルタイムレンダリングさまさまである。

2020.10.21 HN

レイトレーシング系のレンダリングエンジンはもう不要ということではありません。例えばVrayはRevitのエクステンションとして直接組み込むことができ、さらにVray Nextにバージョンアップされたので、Revitの中でさらにきれいな絵が出力できるようになってきている。3dsMax, Vrayなどのレイトレーシング系のソフトで、とことんフォトリアルなレンダリングを追及するか、Lumionのようなリアルタイムレンダラーで手早く効率的なプレゼンを追及するか、プレゼンのオプションが増えたということです。

2020.11.11 HN