[英]Autodesk Forge Viewer : how to get document
我正在嘗試獲取與轉換后的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方法
您提出問題的方式有些混亂,如果您對脫機加載或加載的內容不太明確,則很難理解您的工作流程。
這是我認為可能的兩種情況:
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('要在本地磁盤上加載的路徑/的//視圖/'
脫機模型后,將無法“知道”現有視圖,除非您的代碼創建了一個包含此數據的.json。
請參閱本文,以獲取有關如何以編程方式提取與翻譯后的Forge模型關聯的資源的更多詳細信息: Node.js中的Forge SVF Extractor
希望可以澄清問題,如果您有其他情況,請說明如何進行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.