Data Visualization:リファレンス アプリで独自モデルを表示

デジタルツインを実現する Data Visualization エクステンションが 2021年5月3日(米国太平洋標準時)に正式にリリースされました。

3Dモデルの空間に温度および湿度のセンサーデータを表示するUIインターフェース

Data Visualization :リファレンス アプリのローカル実行 の記事では、Data Visualization エクステンションを使ったリファレンス アプリの GitHub リポジトリの内容を、Windows のローカル環境で実行する手順をご紹介しました。

リファレンス アプリが表示する 3D モデルには、あらかじめ用意・変換された rme_advanced_sample_project.rvt が使用されています。ただし、独自モデルも表示させることが出来ます。その手順 は Replacing the Default Model に記載されていますが、やはり、ドキュメントが Mac 環境の「ターミナル」での操作を前提に記述されているので、今回も git for Windows に含まれる Git Bash を使って、Windows のローカル環境での手順をご紹介しておきたいと思います。


準備

Data Visualization :リファレンス アプリのローカル実行 でご紹介した内容が実行出来るようになっていることを前提とします。まだ環境を用意されていない場合には、まず、同記事の内容をご用意ください。

ご注意:リファレンス アプリでは、英語版 Revit で保存した英語の要素カテゴリ名を持つ Revit プロジェクト ファイルの使用を前提にしています。日本版 Revit で保存した Revit プロジェクト ファイルでは、「レベル」や「部屋」を正しく認識しないため、手早く Data Visualization エクステンションの機能をお試しいただく目的で、Autodesk Knowledge Network 記事 Revit を他の言語で使用する をもとに、ユーザ インタフェースを英語に切り替えた Revit で、 日本版 Revit で作成した Revit プロジェクトを開き、上書き保存(または、別名で保存)することをお勧めします。

Revit 2022のアプリケーションプロパティウィンドウを表示し、リンク先に言語設定のオプションが示されている画像。

手順

  1. Git Bash を起動して cd コマンドで、現在のフォルダを forge-dataviz-iot-reference-app フォルダに移動します。C:\Users\<user name>\Documents\GitHub\forge-dataviz-iot-reference-app フォルダの場合、cd C:/Users/<user name>/Documents/GitHub/forge-dataviz-iot-reference-app と入力します。
  2. cp server/env_template server/.env と入力して、リファレンス アプリのローカル環境用テンプレートから  .env ファイルを作成します。
  3. server フォルダ(C:\Users\<user name>\Documents\GitHub\forge-dataviz-iot-reference-app\server)の .envファイルをテキストエディタで開いて、次の箇所を修正して上書き保存します。各値に文字列を表すダブルクォーテーションは不要です。シングルクォーテーションも同様です。
    ・FORGE_CLIENT_ID の値に使用する Client Id を記入
    ・FORGE_CLIENT_SECRET の値に使用する Client_Secretを記入
    ・FORGE_BUCKET の値に使用する Bucket 名を記入
  4. Git Bash 上の現在のフォルダが forge-dataviz-iot-reference-app フォルダであることを確認して、ENV=local npm run dev と入力して Node.js を起動、待機状態にします。
  5. Web ブラウザを起動して、URL に localhost:9000/upload と入力します。
  6. [ファイルを選択] ボタンをクリックして、英語版 Revit で保存した Revit プロジェクト ファイルを選択します。アップロードが終了すると自動的に変換処理に移行します。この時、「Enable SVF2 Upload」チェックボックスにチェックすることで、SVF2 での変換を実行出来ますが、ここではチェックはせずに SVF 変換で処理を進めることにします。
  7. 変換処理が終了すると、Web ブラウザの URL が  localhost:9000 にリダイレクトされて、アップロードした 3D モデルが表示されます。左上に表示されるボタンからレベル表示を切り替えることが出来ます。 

ダミーセンサーの追加

リファレンス アプリには、合成データと呼んでいるランダムに生成された実データのようなダミーデータが用意されています。この合成データを独自のデータに置き換えるためには、独自のデータ・アダプタを作成する必要があります。

具体的な実装方法は、Creating a Data-Adapter に譲りますが、取り急ぎ、リファレンス アプリ上の独自モデルでセンサー情報の扱いを確認するには、サーバー側のデータベースから “GET DEVICES “インターフェースを介して保存される JSON ファイル(forge-dataviz-iot-reference-app\server\gateways\synthetic-data\devices.json)のセンサー リストに、独自モデル上のセンサーを追加することで実現することが出来ます。

例)


    [
        {
            "deviceModelId": "d370a293-4bd5-4bdb-a3df-376dc131d44c",
            "deviceInfo": [
                {
                    "id": "Custom-11",
                    "name": "1階エントランス",
                    "position": {
                        "x": " -15",
                        "y": " 10",
                        "z": " -50"
                    },
                    "lastActivityTime": "2020-10-15T02:43:14.8786418Z"
                },
                {
                    "id": "Custom-21",
                    "name": "2階南",
                    "position": {
                        "x": " 20",
                        "y": " -5",
                                              :

元になった Revit プロジェクト ファイルのに「部屋」が作成されていて、センサー位置(カンバス座標)が部屋の内側に位置していれば、レベル別にセンサーリストにセンサー名が表示されてヒートマップを確認することが可能なはずです。

3Dモデルの表示とセンサーリストがあるWebアプリケーションのインターフェース。ビルの外観とセンサーの位置が示されています。

ご参考まで、リファレンス アプリが使用する「部屋」の Revit での作成は 部屋を作成する を、「部屋」を Forge Viewer で表現するための変換方法はブログ記事、Model Derivative API での RVT ファイル変換について を、レベルの切り替え表示を実現する  Autodesk.AEC.LevelsExtension  エクステンションについてはブログ記事 Forge Viewer:レベル別の表示 をそれぞれ確認してみてください。

Data Visualization エクステンションでは、上記に加えて、部屋や部屋の平面を使ったヒートマップ表現も実現している点を確認することが出来るはずです。

By Toshiaki Isezaki

Discover more from Autodesk Developer Blog

Subscribe now to keep reading and get access to the full archive.

Continue reading