0

変換された rvt ファイルに含まれるすべての 2D および 3D モデルのリストを取得しようとしています。

古い例を見る: LmvNavTest彼らはこのようなことをして、「ドキュメント」の rootItem にアクセスします

Autodesk.Viewing.Document.load(fullUrnStr, function(document) {
    _loadedDocument = document; // keep this in a global var so we can reference it in other spots

        // get all the 3D and 2D views (but keep in separate arrays so we can differentiate in the UX)
    _views3D = Autodesk.Viewing.Document.getSubItemsWithProperties(document.getRootItem(), {'type':'geometry', 'role':'3d'}, true);
    _views2D = Autodesk.Viewing.Document.getSubItemsWithProperties(document.getRootItem(), {'type':'geometry', 'role':'2d'}, true);

私の理解から、現在好ましい方法はloadModelを使用することです

oViewer =new Autodesk.Viewing.Private.GuiViewer3D ($("#viewerContainer") [0], {}) ;
oViewer.loadModel (url , [],  onLoadSuccess, onLoadFail) ;

loadModel の方法で行う場合、ドキュメントにアクセスして getSubItemsWithProperties メソッドを呼び出すにはどうすればよいですか

4

1 に答える 1

2

質問の仕方がややこしくて、何をオフラインでロードするかを明確にしないと、ワークフローを理解するのが難しくなります。

私が可能だと思う2つのシナリオは次のとおりです。

1/ URN を使用して Autodesk Cloud からオンラインでモデルをロードします。この場合、最初にAutodesk.Viewing.Document.loadを呼び出す必要があります。この呼び出しは実際にはマニフェスト データを返します。そこから 3D および 2D の表示可能なアイテムを取得できます。あなたが指摘したように、Autodesk.Viewing.Document.getSubItemsWithPropertiesを使用してください。プログラムまたはユーザーの操作によって、ビューアにロードするパスを選択したら、viewer.loadModel(_views2D[idx])を使用します。

2/ モデルのパッケージ全体をローカルにダウンロードしました。その場合、リソースを解析して各ビューを保存するロジックがあるため、既存の 2D ビューと 3D ビューが何であるかを既に知っているはずです。通常、この情報は .json などのファイルに保存する必要があります。

その場合、Autodesk.Viewing.Document.loadを使用する必要はありません。直接viewer.loadModel('path/of/the/view/you want to load on your local disk') を使用できます。

モデルをオフラインにすると、コードでこのデータを含む .json を作成しない限り、既存のビューが何であるかを「知る」方法はありません。

翻訳された Forge モデルに関連付けられたリソースをプログラムで抽出する方法の詳細については、この記事を参照してください: Node.js の Forge SVF Extractor

別のシナリオがある場合は、どのように進めるかを説明してください。

于 2016-09-28T21:40:49.250 に答える