1

メソッドで Forge Viewer を使用して、要素の寸法プロパティをエクスポートしようとしていますgetBulkProperties。Revit ファイルの場合、この方法は問題なく機能しますが、Navisworks ファイルの場合、有用なプロパティを直接取得することはできません。

問題を調査したところ、externalIdNavisworks ファイルのすべてがスラッシュで区切られた整数の形式になっていることがわかりました(例: 1/2/2/1/1)。externalId(この場合は を使用して)から最後の整数を切り取り1/2/2/1、対応する要素のプロパティを取得すると、いくつかの有用な寸法プロパティを取得でき、その値は Navisworks のデスクトップ バージョンで表示される情報と一致します。

externalIdNavisworks のエンコーディングはツリー構造を意味しますか? 1/2/2/1(この場合は が の親であると想定してい1/2/2/1/1ます)。最後の整数を切り捨てるだけで必要な情報を取得できるという問題を説明するにはどうすればよいでしょうか? これは寸法プロパティを取得するための信頼できる方法ですか?

これを Chrome コンソールで再現する小さな実験:

selected = AutodeskViewer.getSelection()[0]

AutodeskViewer.getProperties(selected, console.log)
/* {dbId: Array(1), properties: Array(0), externalId: "12/6/0/0/0/0"} */
/* We don't have any useful properties here */

// Get External ID mapping
map = {}; AutodeskViewer.model.getExternalIdMapping(ext_map => {map = ext_map})

// Chopoff the last integer, and run getProperties again
AutodeskViewer.getProperties(map['12/6/0/0/0'], console.log)
/* {dbId: 78085, properties: Array(151), externalId: "12/6/0/0/0", name: "Floor"} */
/* We get useful dimensional properties */
4

0 に答える 0