Zenn
📝

建築データの召喚術!torinome ARでBIMデータ転生させてみた🪄

に公開

こんにちは。ホロラボPlayfulFields所属のGENKIです。

最近、取引先の方がBIMデータをtorinomeに入れたい、という相談を受けるようになってきました。比較的簡単にできる上にtorinome ARでの活用メリットが大きいと感じたので、よく使うフローをまとめて見ました。参考にしていただけるとうれしいです!

はじめに

✏この記事の目的
1. 一般的な意匠+構造+設備BIMデータをGLB化し、ARで現地表示するまでの流れを解説する
2. 1におけるTIPSを共有する(Revit,Rhinoceros,Blender,torinome Web+torinome AR)
3. 活用例の紹介

📖おすすめの読者
・建築土木関係、特に設計・施工に携わっている方
・BIMデータはあるけど、有効活用する方法を探している方
・まだ現実世界にない段階で可視化を検討している方(まちづくりやデベロッパーの方)

🏆️最終成果物
https://youtu.be/VLUUuqsl7yI

以下、本文です。

全体の流れ

今回は国土交通省の「営繕BIMモデル」を元に解説します。
https://www.mlit.go.jp/gobuild/gobuild_tk6_000132.html

こちらのRVTファイルから意匠、構造、設備モデルを選択

  • Rhinoで整理した後.fbxで書き出す
  • Blenderでも見栄えの調整、.glbで書き出し
  • GLBValidatorでデータにエラーが無いか確認
  • torinome Webで任意の場所に配置
  • torinome ARで現地確認

となります。

1.Revit(.rvt→.dwg)

皆さんはお手持ちのBIMモデルのうち、ARで可視化したい箇所のみを選択して.dwgでエクスポートしてください。ここでは詳細を省いていきます。

画面上部 表示>3Dビューをクリックして、モデリング用のビューを使うようにしましょう。

ビュー左下よりレンダーモードをシェーディングに変更して色をつけます。(見やすいため)


このように書き出したいものを選択し、画面左上 ファイル>書き出し>CAD形式>DWGをクリック

出てきた画面の「…」をクリック

ソリッドタブよりACISソリッドが選択されているか確認してから1つ戻り、次へをクリック。その後はよくあるセーブ画面なので、適当な場所に保存してください。

ここでTIPSです。

.fbxファイルデータ(FBX)の書き出し機能はRevitにも内蔵されています。これを使えばよいのでは?となる方も多いかと思われますが、**Revit由来のFBXには各オブジェクトの色情報が抜かれた状態で書き出されます。**従って、Blender上では全てNull(マテリアル情報無しの状態)で表示されます。Blender上で着色するとしても、大量の場合大きな製作コストがかかります。

他方、Rhinocerosは、元はCADデータを扱えるように開発された経緯があるので、継承される情報が比較的多いのが特徴です。今回は、ガラスや植栽のマテリアルカラー、柱・針・基礎・設備ごとに分けられた色情報も継承されています。また、Rhinoから書き出されるFBXも、Rhinoのレイヤーに対応したBlenderのParent情報に対応してまとめてくれているので、調整時に便利です。

まとめると、Revit(元データ)Rhino(データの整理・構造化)Blender(見栄えの調整)という分業制を取っています。

2.Rhino(.dwg→.fbx)

最新のRhino8ではGLBの直接書き出しができますが、2025/03/17現在不安定なので、今回はFBXを用いてBlenderに受け渡します。

基本的にRhinoはAutodesk製品と相性が良いので、ほとんど問題なくインポートできますが、特性としてCAD/BIM側でブロックやファミリー化されている物はRhino上でBlock(名前は似ているが元のブロックとは違うもの)としてインポートされます。また、RhinoはBlock内部とブロックを配置したレイヤーは別に設定できるのでExplodeBlockなどでBlockを解除する時、配置されたレイヤーに移動したり、突然大量のオブジェクトに変換されて動作が重くなる等の処理がかかるので、気をつけてください。

この記事では、Importで読み込んだ後、ある程度レイヤーやBlockを整理した状態から解説します。

こちらが作業後のシェーダービューによる画面です。

Layerも意匠、構造、設備ごとにまとめておきました。ここで、1つに注目すると

青い四角と赤いものがあります。これらはそれぞれレイヤーの色とマテリアルの色を表しています。

現在は両者一致していません。これはRhino上では黄土色で見えるが、マテリアルはあてがわれていない事を意味し、書き出された時にはDefaultMaterialになってしまうので注意してください。

今回は、既に色分けされているLayerがあるので、Layer色をそのままマテリアルに反映させたいと思うのですが、Rhinoのコマンドにはそのようなものがありません。そこで、今回はChatGPTに選択したオブジェクトのLayerカラーをMaterialカラーに適用してもらうコードを書いてもらいました。



コードをコピーしたら画面上にあるTools>Script>Editをクリック

ScriptEditorが出てくるのでコピペして再生ボタンをクリック。エラーが出たらそのままコピペしてGPTにデバッグしてもらえればOKです。

するとこのように、レイヤーカラーがマテリアルに適応されました。壁が真っ黒になっているのは、Rhinoのデフォルトレイヤーカラーが黒なので、黒いマテリアルが適用されたからです。これはRhino上でも修正できますが、今回はBlender上でやってしまいます。

今回のBIMデータには、レイヤーカラーではなくディスプレイカラーで振り分けられていた場合もありますが、同様にGPTにリクエストしてみてください。書いてくれると思います。

マテリアルが適応されたところで、意匠、構造、設備のレイヤーをそれぞれ単独でExport>FBXで書き出してください。スケール等の調節はRevit上での単位がmmになっていればそのまま継承されます。

Blender(.fbx→.glb)


Blenderの画面を開いたら、File>Import>FBXより、3つをインポート。

Blenderで行うのは

  1. オブジェクトのジョイン(単一化)
  2. マテリアルの調整
  3. ポリゴン数の調整(リダクション)

の3つです。順を追って説明します。

オブジェクトのジョイン

Rhino上でJoinコマンドを使わなかった場合は、それぞれ個別のオブジェクトとして書き出されるので、このまま使ってしまうと処理が重くなる原因になります。同じマテリアル(色味)のものは1つにまとめて軽量化しましょう。

まとめたいオブジェクトを選択>Shift+L>Materialで、同一マテリアルを使用しているオブジェクトを選択します。その後ctrl+Jでジョインしてください。

マテリアルの調整


画面上Shadingタブから、画面下マテリアルノード無いの色を調節または、既に持っているマテリアルを選んで、色味を調節してください。

ポリゴン数の調整(リダクション)

ポリゴン数は少なければそれだけ処理が軽くなるので、なるべく減らすように心がけてください。特に、小さくて目立たない部品に全体の十%も消費していた、なんてこともあるので、おじゃま虫モデルを削除するor軽量化するのがコツです。


例えば今回のこちらのビルのモデル、まず画面右上のレンダーモードをポリゴンモードにすると、細かったり小さいのにも関わらず、色が濃い箇所がいくつかあります。こういった箇所を拡大すると…


画面のように梯子に大量のポリゴンが使われていました。今回の主役はあくまで建物なので、リダクションしましょう。



リダクションしたいオブジェクトを選択したら、画面右にある🔧(スパナ)のタブ(モディファイアタブ)をクリック。Add Modifierをクリックした後、虫眼鏡マークをクリックしてdecimateとタイプしてください。


Ratioの値を調節して、どれくらい削減するか決めてください。1.00が100%、0が%残す、を意味しています。このハシゴの場合0.02が良さそうです。処理に時間がかかり、数分待つこともあります。


書き出したいものを選択して、File>Export>gltfで書き出してください。

最終チェック(glTF-Validator)

.glbファイルが正しく書き出されているか、必ずチェックしましょう、今回はテクスチャを使用していませんが、モデルの複雑さとエラーの頻度は比例します。
glTFValidator


ファイルをD&Dすると、エラーが無いかどうかチェックしてくれます。Invalidと出てしまった場合は、そのまま使うと表示に何らかの問題がでてしまう可能性があります。Blenderに戻って原因を確かめてみましょう。非エンジニアの方はエラーをコピペしてGPTに聞いてみるのがおすすめです。

toriome Web(.glb)

ここからは弊社製品のtorinomeを使っていきます。iPadで現地に重畳表現する為に、まずはtorinome Webにある地球上に今回作ったGLBを配置していきます。今回は地元の公園を仮想の敷地にしました。


torinomeのプロジェクトを開くと、この様な皇居周辺の地図から始まります。まずは公園に移動します。



移動したので配置したい箇所を右クリック>新規追加をクリックすると、画面右に登録画面が出てきます。


タイトル、グループ名を記入し、リソース>ファイルを選択をクリックして、作成したGLBを選択してください。


今回はHolo_Techblog_HibiyaというグループにArchitecure、Mechanical、Strucureそれぞれを配置しています。


Architecure(最初のモデル)を配置したら、項目右にある三(ハンバーガーマーク)より「参照して新規作成」をクリックすると、Architecureに登録された緯度経度高さ+回転情報を継承することができます。Blenderで座標が共有されていれば、ズレなく配置できるので便利です。


これで全く同じ位置に意匠、構造、設備モデルを配置することができました!

toriome AR

torinome Webで位置の登録が済んだので、torinome ARで確認します、
本記事では、アプリのセッティングや操作方法については割愛します。

まずは、全体のキャプチャ動画を御覧ください。
https://youtu.be/VLUUuqsl7yI

少し地面から浮いているように見えていますが、これは基礎を見せるために1m程上げて配置しているためです。
以下、各場面の解説です。


アプリを起動して、画面右にあるグループ一覧から、表示したいものをタップします。
位置はGPS+VPSが自動で補正してくれるので、あたりの建物を軽く見渡すだけでOKです。画面左上の数値が時点における精度を表しています。


建物が現れました!



Architectureを非表示にすることで、内部構造設備だけを観ることができます。
せっかくなので、建物の真下まで移動してみましょう。


各モデルは寸法情報が含まれている状態で見えています。施工前に簡単な材の取り合いが確認できます。

Revitを元データにすることで、干渉のチェックも可能、配管屋さん、ダクト屋さんのデータを統合してから持ってくる、といった数年前ならかなり高度な統合性が求められることもtorinomeなら簡単にできます。

注意点としては、DBとしてリアルタイム同期が行われているわけではないので、インポートされた日付を確認する事が必要ですが、モデル名に日付を入れたり、日付ごとにレイヤーを分ければ差分の確認も可能です!

活用例

エンタメ、コンテンツ用の3Dモデルと違い、BIM/CADには寸法情報が含まれています。単位さえ正しければ、設計時の寸法を正しく表現できるので、道路や建物に合わせた現実世界との比較検討に有効です。極端な例で言えば、高さや全長が数キロといったものも簡単に表現できます。

また、torinomeはglbアニメーションにも対応しています。ドローン、自動運転カー等の現実で実演するにはコストが掛かりがちな対象も簡単に表現できます。

まとめ

後半にご紹介したように、BIM・CAD等の建築データを実際の敷地にマウスクリックで配置するだけで簡単に現地AR召喚することができます。

BIMデータの活用にご関心の方は、ぜひホロラボのtorinomeの導入をご検討ください。
https://hololab.co.jp/torinome/

普段からBIMを扱う方にとって、リアル模型を使わない手軽な表現手段になれることを期待しています!

使ったアプリケーション

Revit 2022 (日本語)*1色分け不要ならFBXで書き出し
Rhinoceros 8 (英語)*2色分け不要ならRhinoは不要
Blender 4.3.2 (英語)*3色分け不要なら1のFBXを直接インポート
ChatGPT o3-high-mini
torionme Web
torinome AR

ホロラボのテックブログ

Discussion

ログインするとコメントできます