2016-09-21 581 views
0

我試圖獲取所有與轉換後的rvt文件一起使用的2d和3d模型的列表。Autodesk Forge Viewer:如何獲取文檔

看着老example : 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方法

+0

抱歉沒有更快回答。這是現在解決?它看起來是如此,從你對http://stackoverflow.com/questions/39533258/autodesk-viewer-suggestions-for-2d-view-of-floor-view/39533388的評論來判斷。或者那種情況完全不同? –

+0

不,如果直接加載模型,我仍然對從何處獲取「文檔」感到困惑。請記住,我正在嘗試在離線狀態下執行此操作。所以我想下載我需要的所有文件。特別是在處理2D(f2d)時。我知道清單文件和元數據文件與f2d文件位於同一個文件夾中。但我不知道如何訪問f2d文件中的其他信息,因爲它不是開放格式。我試圖使用getSubItemsWithProperties方法,但我不知道如何獲取文檔,所以我可以傳入rootItem。 –

+0

您是否檢查過新的樣板樣本? https://github.com/Autodesk-Forge/forge-boilers.nodejs第一個示例是1 - 查看器脫機...它可能正在做你想要的開箱即用。 –

回答

2

你問的方式estion有點令人困惑,如果您對離線加載或不加載的內容不太清楚,很難理解您的工作流程。

這裏有2個方案,我認爲是可能的:

1 /你在網上從歐特克雲使用其URN加載模型:在這種情況下,你需要先調用Autodesk.Viewing.Document。負載,這個調用實際上將返回艙單數據,從那裏你指出,你可以使用Autodesk.Viewing.Document.getSubItemsWithProperties檢索3D和2D可視項目。一旦你選擇 - 以編程方式或通過用戶交互 - 要在觀衆加載路徑,您使用viewer.loadModel(_views2D [IDX])

2 /你必須下載本地全包在這種情況下,您應該已經知道現有的2D和3D視圖,因爲您有一些邏輯解析了資源並存儲了每個可見視圖。通常您需要將這些信息存儲在.json或類似的文件中。

您不需要使用Autodesk.Viewing.Document.load在這種情況下,你可以直接使用viewer.loadModel('路徑/的/視圖/ /你想對你的加載本地磁盤')

一旦模型離線,就無法「知道」現有視圖是什麼,除非您的代碼創建了包含此數據的.json。

看看這篇文章,瞭解如何以編程方式提取與翻譯的鍛造模型相關資源的詳細信息:Forge SVF Extractor in Node.js

。希望澄清的事情,如果你有一個不同的情況下,請解釋一下你如何進行。

相關問題