Rhino Inside Revit in 2025, RevitでGrasshopperを走らすPart 2

Rhino Inside Revit アップデート

Rhino8にアップデートしてから、Rhino.Inside.Revitをインストールしておらず、久しく使ってなかった。先日Rhino.Inside.Revitをセットアップしたところ、だいぶ様変わりしていた【01】。使い方を思い出そうと、「RevitでGrasshopperを走らす」と題したずいぶん前のブログ(2021年3月)を引っ張りだしたのだが、コンポーネントも変わっていて悪戦苦闘した。とりあえず目的は達成したので、せっかくなのでその成果を共有したいしたいと思う。筆者のワークステーションの性能も格段に上がったので題名通りRevitでGrasshopperを走らせよう!
【01】最新バージョンのリボン

Geodesic Domeジオデザイックドームの作成

ジオデザイックドームを作る方法はいろいろあるのだが、今回は、Grasshopper (GH) の2つのプラグイン ① RhinoPolyhedra と ② Weaverbird を使った方法を紹介。Rhino8からは、Food4Rhinoのサイトを介さず、RhinoからPackageManagerで直接インストールできるようになっている。PackageManagerで見つからないプラグインはいつも通り、Food4Rhinoなどからインストールしてください。

① RhinoPolyhedra
ジオデザイックドームを生成するツールがネイティブのMeshツールの中にインストールされる。また親のRhinoの中にもジオデザイックドームを作成するモデリングツールがインストールされる。
【02】RhinoPolyhedra、GHのMeshにネスト

②Weaverbird (Wb)
ポリゴンメッシュでのパネリングなどの加工が得意なプラグイン。メッシュから窓パネル(Mesh Window)や窓枠(Mesh Frame)をつくるコンポーネントが便利。
【03】Weaverbird (Wb)

Polyhedra / Icospher ジオデザイック多面体のコンポーネント

それでは準備が出来たので、ジオデザイックドームのモデリング。
Mesh / Polyhedra / Icospher
でジオデザイックドームを一発で作成【04】。Scaleは半径を示す。Densityは分割数。ここでは3に設定。Density は上げ過ぎると動かなくなるので注意。0の場合は正20面体【05】。

【04】ジオデザイックドーム Scale = 3000  Density = 3

【05】Density = 0 では正20面体

半球ドームにしたいので、XY平面で上下でスプリットする【06】。
Mesh /Utility /Mesh Split Plane
【06】Mesh Split Plane

Weaverbird ガラスパネル&枠の作成

【06】は単なるメッシュのドーム。ここから窓ガラス(パネル)をつくるのは、
Weaverbird / Transform / Weaverbird’s Mesh Window
窓枠(マリオン)をつくるのは、
Weaverbird / Transform / Weaverbird’s Picrure Frame
先のドームのメッシュデータからワイヤをつなげるとインスタントに生成【07】。
【07】Weaverbird’s Mesh Window & Picrure Frame

この窓枠は平面なので見込み60を与える【08】。
Weaverbird / Transform / Weaverbird’s Mesh Thicken
【08】Weaverbird’s Mesh Thicken

ガラスは枠(マリオン)見込みの中央に配置したいので、見込60を2等分した30移動(オフセット)する【09】。
Weaverbird / Transform / Weaverbird’s Offset Mesh
※パネルが一枚だけうまくオフセットされないので、いったんMeshツールのDisjoint Meshを介して移動している

【09】ガラスをマリオンの中央に移動、Weaverbird’s Offset Mesh

最後にガラスに厚み10を与える【10】。
Weaverbird / Transform / Weaverbird’s Mesh Thicken
【10】ガラスをに厚みを与える

これをGHのコンポーネントを選択して、RevitでBakeするとプロジェクトの中にドームが読み込まれる【11】。
【11】RevitでBakeして読み込まれたが…

これで完成と行きたいところだが、この状態だとRevit上でマテリアルがアサインできないことに気づく。それを解決する一つの方法は、RevitでBakeする前に、Rhino上でBakeしてそのRhinoモデルにガラスと窓枠のマテリアルをアサインし、その3DMモデルをRevitにインポートするやり方がある。しかし、どうせならGHでマテリアルをアサインしてRevitに取り込みたい。ここからがクライマックス。

Add DirectShape

とりあえず、とにもかくにも、GHでつくったジオメトリーをRevitに読み込みたい時は、RevitリボンのAdd DirectShape (Geometry)【12】。
【12】 Revit / DirectShape / Add DirectShape (Geometry)

たとえばRevitのLoftでつくったフォームなど、とりあえずなんでもRevitに取り込める【13】。
【13】 Loftで作成したサーフェスをGeometoryとして即席インポート

このDirect ShapeにはMaterialの入力端子があるので、ここにパラメーターを入力できるはず。

Add Material

【14】 Add Material

まずAdd Materialでマテリアルの名前を定義しておく。次にColour RGB でマテリアルに色を与え、最終的にRevitのマテリアルアセットに持って行くために、以下のようにMaterial GraphicsReplace Material’s Assetとつなぐ【15】。
【15】色の設定、その他マテリアルパラメーターの設定

最後に先のDirect ShapeのMaterial端子につなげる【16】。

【16】DirectShapeのMaterial端子に接続

すると、マテリアルがRevit内でアサインされた【17】!

【17】GHで定義したマリオンの黄色とガラスの水色が無事に読み込まれる

Revitのマテリアルブラウザを確認すると、GH上で定義した枠とガラスのマテリアル『*Aluminum』と『*Glass』がちゃんと読み込まれていることが分かる【18】。

【18】Revitのマテリアルブラウザ

ここまでできれば、Lumionでもマテリアルをアサインできる【19】。
【19】RevitからLumionにインポートしてマテリアルをアサイン

Adaptive Panel

これで終わりにはできない。先ほどのブログのようにパネルはRevitのファミリー、前回ブログで作成した『Adaptive三角パネル』を割り付けたいところ。意外にシンプルな以下の手順。Adaptiveコンポーネントは、Meshは認識しないので、まずMeshの境界を抽出する。
Mesh / Analysis / Face Boundaries
を使うのがポイント。これはBrepとしてまとまっているので、Deconstruct Brep で分解し、それぞれの三角Brepのエッジを抽出し、
Revit / Component / Add Component (Adaptive)
につなげるとRevitにうまく読み込まれる【20】。

それと、肝心なことをすっかり忘れていだが、Revitのアダプティブコンポーネントを取り込むために、Built-in Categoriesでファミリーのカテゴリー (✓Cutain Panels)を、 Element Type Picker でコンポーネント(✓アダプティブパネル_三角)を指定している。 (この辺のコンポーネントが前回と違う。)
【20】Add Component (Adaptive)

うまく割り付けられてない大きなパネルが2枚があるが、ピン固定を解除しDeleteすると【21】、
【21】うまく割付られないパネル(地面リングの微小なフラグメント)をDelete

無事に Adaptive Panelの割付が完了。とくにおおきく欠損しているところは無いようだ。Adaptive Panelには枠とガラスのマテリアルをアサインしているのでRevitでレンダリングすると以下のようなレンダリング結果となる【22】。
【22】Adaptive三角パネルの割付

結果オーライとして、この辺で打ち止めとしましょう。

250908  HN

最新グラボRTXの威力

NVIDIA GeForce RTX

先日ノートパソコンを購入した。8年選手のノートパソコン(以下M君)はまだまだ元気なのだが、最近ノートPCを持ち歩く機会が多くなったことや、モバイルPCでもBIMやVRソフトをバリバリ動かすことの出来るグラボを搭載した高スペックノートを見つけて思わずポチっとしまった。そろそろOSのアップデートも考えなければならないタイミングでもある。最初に結論を言うと、良い買い物ができたと思う。


[写真1]MSI Prestige-14 (P君)
3DCGがサクサク動く。難点は、計算をがんばり出すと少々うるさいこと。こればかりは構造上どうしようもない。出先でファンが回り出したら「グラボが一所懸命計算しているところです」とエクスキューズする必要有るかも。メールやweb程度の通常作業なら基本的に回らないのであまり心配せずに。

 

グラボ、グラフィックボード、グラフィックカード、グラフィックス、GPU(Graphics Processing Unit)と様々な呼び方があるが、グラボと言えば、ゲームの世界の高スペックなパソコンが第一に思い浮かぶ。キャラクターがかくかく動いているようでは、ボスキャラに太刀打ちできないというわけ。もちろん、我々の建築の分野を含め、ゲームや映画制作や様々なクリエーターの為の3DCGソフトや、昨今では金融の世界のAIソフトなど、多岐に及んだ領域で、高性能なGPUの画像処理性能が不可欠になってきている。システムは良く分からないが、CPUだけの性能に頼るのではなく、両者のタッグによって全体的な演算能力が向上するということらしい。筆者が所有する10年選手のB社のデスクトップワークステーション(以下D君)にGeForce GTX 750 Ti 2GBを据え付けた。当時はネットで2~3万円程度で購入できた。最新のGeForce RTXシリーズは最低でも7万円くらい。性能の向上以上に、需要過多による供給不足の為の価格の高止まりと考えられる。メタバースでますますグラボ獲得競争だ。

 

一方、D君の少し年下のノートパソコンM君も、モバイルワークステーションと呼ばれるラップトップで、Core™ i7-5600U、AMD FirePro M4150、PCIe-SSD と悪く無い。例えばREVITの標準的作業には基本OK。けれどもSSDの容量が256GBしか無いのが悩みの種であった。当時はPCIeのSSDなど高嶺の花。またストレージに余裕があったとしても、GPUの性能を考えるとLUMIONをインストールするのはちょっと無理がある。


[写真2] M君、8年選手。PCIe-SSDストレージのモバイルワークステーション

 

そこで今回の買い替えの目的は2つ。『①ノートPCでRTXグラボ』、『②ポータブルな14インチゲーマーの使うモバイルWSはデカいのが多いが(15インチ以上が標準的)、M君と同じ14インチに絞る。これ以上小さい画面だと、BIM/CAD作業が困難。もちろんRTX内蔵のノートPCは価格が跳ね上がる。M君を22~23万で買ったので、可能ならば同程度の金額で購入したい。円安の状況で難しいかなと思いながらも、RTXを載せたノートPCの品ぞろえが豊富でさらにコストパフォーマンスの良いMSIを見つける。MSIはゲーミングPCを得意とした台湾のメーカー。今や台湾は半導体の巨大生産拠点。他社の製品も色々迷ったが、探していた「RTX」「14インチ」「Windows 11 pro」 の条件が揃ったMSI Prestige-14に軍配が上がった。P君と命名。


MSI公式オンラインショップの製品写真より
[写真2] MSI Prestige-14
ゲーマー&クリエーター向けの製品を主体としたMSIのラインアップの中でも、ビジネス用途をうたったコンパクトなハイスペックモバイル。スペック的にはゲーマー&クリエーター向けの製品と変わらない。公式ページから直接購入可。

< M君> 8年選手 < P君> ルーキー
ディスプレイ 14インチ 14インチ
寸法 339 × 237 × 21mm 319×219×15.9mm
重量 約1.7kg 1.29kg
CPU Core™ i7-5600U Core i7-1280P
SSD 256GB 1TB
RAM 8GB 32GB

[表1] モバイルワークステーション新旧比較

 

ということで、M君とP君の能力の差は説明するまでも無い。ただしこの薄さと軽さのトレードオフはどこにあるかというと、拡張/接続性にある。旧世代のM君には親切にUSBやディスプレイなどの拡張端子が豊富に装備されていた。一方、P君にはThunderbolt 4 Type-Cというオジサンには見慣れない小さな端子が2つ、USB端子は1つしかない。なのでM君の使い方と同じように、拡張ディスプレイやLANに接続するためには、専用の変換ハブが必要となる。MacBook やSurfaceなどの今日日のスタイリッシュなラップトップを買うと、ドッキングステーションという様々な変換ハブを購入する羽目になるというわけ。筆者はLANとDVIをつなぐためのDST-C10というエレコムの製品を5000円で購入。ドッキングステーションも機能を欲張り過ぎると、軽く1万を超えてしまう。箱を開けてLANや外部モニタが接続できるかドキドキだったが、問題なく機能。最新のThunderbolt 4は互換性が高く、速度も極めて高いとのこと。Thunderbolt 4端子の外付SSDなどは非常に高速な転送能力があるらしい。ちなみにバッテリーの接続もThunderbolt 4端子が担う。なんでも接続できるので「万能端子」と呼ぶらしい。


[写真3] ドッキングステーション(エレコム、DST-C10BK)

GPUの新旧対決、GTX vs RTX

事務所に鎮座する10年選手のWS、D君と比べても、今回購入したP君は最新グラボGeForce RTX 3050の威力で、BIMやVRソフトを動かす性能が格段に向上した。


[写真4] 10年選手D君。机の下で埃を被っているが、Core-i7の搭載のデスクトップワークステーション。GeForce GTX 750 Ti 2GBを実装したおかげで電源ユニットも交換する羽目になった。

 

調子に乗って家具ファミリを入れ過ぎてしまい、コンペ提出前に急に動きが悪くなり苦戦したBIMモデル。ルーキーP君で開くとサクサク動く。試しに7680×4320のポスターサイズでD君(デスクトップ)とP君でレンダリング速度を比較してみると、以下のような結果となった。


[写真5] レンダリング時間比較、解像度7680×4320

< D君>10年選手WS < P君>ルーキーモバイルWS
CPU Core(TM) i7-4770 CPU @ 3.40GHz 第4世代 Core i7-1280P @ 4.80 GHz 第12世代
SSD SATA SSD 500GB PCIe SSD 1TB
RAM 16GB 32GB
GPU GeForce GTX 750 Ti 2GB Geforce RTX 3050 Laptop 4GB
レンダリング時間 10分35秒 36秒

[表2] レンダリング速度、新旧比較

 

ということで、P君の圧倒的な勝利。ネットのベンチマークの情報によれば、Core-i7のCPUは第4世代も第12世代もそれほど大差は無さそうで、D君のRAMやビデオメモリの不足の問題や、SATA-SSDとPCIe-SSDの転送速度の差も少なくないが、このレンダリング時間の差の最も大きな要因は、グラボの演算能力の差と予想する。BIMやVRソフトだけでなく、2D-CADの描画能力の高さも極めて良い。外部参照を使いまくる筆者には、CADの作業性の大幅向上にも大満足。もう”デスクトップ”ワークステーションは要らなくなる?

建築デザイナーの皆さん、PCの買い替えには、ぜひグラボの良いものを選んでくださいね。

★追記 230412
最近、Lumion 9 から、永久ライセンスの最終版のLumion 12にバージョンアップしたのですが、< P君>のLumion 12のベンチマークは37%まで大きく下がってしまいました。GPU“Geforce RTX 3050 Laptop 4GB”が“最小”評価の為です。特にGPUメモリは6GB以上が要求されています。高解像度の4Kなどで、バリバリにVRソフトを動かしたい“強者”は、GPUをもう一段性能の良いWSを検討ください。

HN

時間のある方は以下動画もご覧ください。2分21秒↓

 

 

LumionからVRコンテンツをつくりWebで見る

せっかくLumionを持っていたら、ぜひVRコンテンツを作成したい。もちろんGearVRやOculusなどの本格的なコンテンツも作成できるが、ゴーグル(ヘッドマウントディスプレイ)を持って無くても見ることのできる便利なメディアが 、

Google VR View

Google VR View である。java scriptを埋め込むだけで、Lumionで作成した360°パノラマイメージをwebページ上で体験することができる。

SketchUpからLumionへ

それではLumionからコンテンツを作ってみよう。今回は下のSketchUpモデルを使う[Fig01]。

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

LumionではSketchUpのファイル.skpをネイティブに開くことができるようになっている。前回のRevitからLumionへと同様、SketchUpでもLiveSyncを使うこともできるが、今回はLumionに.skpファイルを直接開く(インポートする)やり方でデモ。直接取り込むのとLiveSyncを使用して取り込むのも何も変わらない。(結局の所、筆者の遅いPCではLiveSyncを付けたまま作業できないし。。)取り込みには緑のインポートボタンを押す。

[Fig02] IMPORT

インポートはSketchUpのレイヤや表示などの設定がそのまま反映される。すなわち、SketchUpで例えば「レイヤ1」を非表示の状態でインポートするとLumionに「レイヤ1」は取り込まれない。Revit+LiveSyncと同様、SketchUpのマテリアルはLumionでそのまま有効。ガラスが不透明でインポートされるかもしれないが、その場合はLumionでまとめてアサインできるので問題ない(Revit+LiveSyncの時と同じ)。SketchUpの場合は、面で作成した木や人の要素や、ガラス以外のマテリアルやからマッピングテクスチャもすべてSketchUpと同じように取り込まれる[Fig03]。「ネイティブ」なので。

[Fig03] LumionではSketchUpモデル(.skpファイル)を直接インポートすることができる。

木や人はLumionで新たに入れ直し、SketchUpの不必要なレイヤは消して、.skpファイルを同期し直す。先の緑のIMPORTボタンを押すと、もう一つ同じモデルがインポートされてしまう。同期するには以下の手順で行う。まずモデルを選択すると、下のモデルの情報パネルが出てくるので[Fig04]、

[Fig04] インポートモデルの情報パネル

左の同期ボタンを押す[Fig05]。 モデルが大きいと同期に少し時間がかかる。少し待つとSketchUpの平面の木や人が消える。同期なのでLumionでアサインしたガラスなどの設定は変わらないので安心ください。これでモデルの準備が完了です。

[Fig05] 同期ボタン

Lumion 360°パノラマビュー

いよいよVRコンテンツの書き出し。360°パノラマビューを使う。設定は、カメラや動画と同じ。

[Fig06] 360°パノラマビュー

[Fig07] パノラマビューモード

モノラルモード

レンダリングボタンを押すと、保存するファイル形式の設定画面となる。Target DeviceはGeneric(汎用デバイス)。Stereo(立体的)はOn/Offの設定があるが、まずはOffでレンダリングすると

[Fig08] レンダリング設定画面、モノラルモード(立体的オフ)

モノラルモードでは以下のようなレンダリング結果。

[Fig09] 360°パノラマビュー、モノラルモードでのレンダリング

ステレオモード

一方、ステレオモード(立体的)オンでレンダリングすると

[Fig10] レンダリング設定画面、ステレオモード(立体的オン)

左目と右目用の画像が上下にレンダリングさる。

[Fig11] 360°パノラマビュー、ステレオモードでのレンダリング

モノでもステレオでもどちらのレンダリングでもGoogleVRで見ることができるが、もちろんより臨調感のあるVRコンテンツはステレオです。これでコンテンツを書き出し完了。静止画(jpg)ですが、360°パノラマ画像はレンダリングに非常に時間がかかる。ちなみに著者の遅いPCでは上のレンダリングで半日かかる。おそらく5分程度の動画なら2~3時間でレンダリングできるはずです。

htmlの設定

ここからはサーバーにアップするためのhtmlのページの設定。以下の手順はGoogleVRの公式ページの通り。まずは、VRViewのjavaコードの埋め込み。htmlの中にGoogleのサーバのリンクを貼る。

<script src="https://storage.googleapis.com/vrview/2.0/build/vrview.min.js"></script>

次にBodyの中にvrviewを貼る。

<div id='vrview'></div>

最後にVRコンテンツのロード。

window.addEventListener('load', onVrViewLoad);

function onVrViewLoad() {
  // Selector '#vrview' finds element with id 'vrview'.
  var vrView = new VRView.Player('#vrview', {
    video: '/url/to/video.mp4',
    is_stereo: true
  });
}

上の例ではvideo:を読み込むことなになっているが、上のデモのような静止画(jpg)の場合は、「video: ‘/url/to/video.mp4’, 」の部分を 「image: ‘ファイル名.jpg’,」

に変えるだけ。以下はhtmlの例。幅と高さは適宜設定してください。

==============================================

<html>

<HTML>
<HEAD>
<TITLE>タイトル</TITLE>

<script src=”https://storage.googleapis.com/vrview/2.0/build/vrview.min.js”></script>

<script>
window.addEventListener(‘load’, onVrViewLoad);

function onVrViewLoad() {
var vrView = new VRView.Player(‘#vrview’, {
image: ‘ファイル名.jpg’,
is_stereo: true,
width: ‘100%’,
height: 500
});
}
</script>
</head>

<body>
<div id=”vrview”></div>
</body>

</html>

==============================================

サーバへのアップロード

htmlファイルをPC上で直接開くが、読み込むことがでない[Fig12]。

[Fig12] PC上(ローカル環境)ではGoogleVRが読み込めません。

PCのローカル環境ではGoogleVRが読み込めないようです。筆者はここでつまずく。サーバにアップして確認する。

[Fig13] GoogleVR

サーバにアップロードしたら無事に見れるようになりました。

簡単でしょ。試してみてください。

2020.11.22 HN

※動画(3分:1,280 x 720)のレンダリング時間は、360°パノラマイメージ(4,096 x 4,096)の半分。