Просмотр чертежей Revit с помощью API Forge - PullRequest
0 голосов
/ 24 июня 2019

Представляется возможным просматривать и перемещаться по графикам Revit Drafting View (s) с помощью API Forge на основе того, как интерфейс веб-браузера BIM 360 Document Management делает это с нашей собственной моделью Revit (.rvt), опубликовавшей Drafting Views, где в нем перечислены 2D чертежные виды (миниатюры) на левой панели и фактические детали выбранного чертежного вида в правом окне просмотра. У нас есть один из последних примеров настройки и работы с Forge API Viewer, и мы попытались изменить часть его кода, но, похоже, он предназначен для работы только с компонентами Models (.rvt) на левой панели, и неясно, где и какой код необходимо изменить, чтобы изменить его на список 2D листов / видов, как это делает Document Manager. У нас возникают трудности с поиском примера API Forge, который показывает, как это сделать с помощью API Forge, и мы хотим получить рабочий пример, который иллюстрирует, как это сделать с помощью API Forge? *

Попытка изменить файл ViewingApplication.bubble.search для включения представления типа 2d роли

function onDocumentLoadSuccess(doc) {
// We could still make use of Document.getSubItemsWithProperties()
// However, when using a ViewingApplication, we have access to the 

* пузырь ** атрибут, // который ссылается на корневой узел графа, который оборачивает каждый объект из манифеста JSON. // var viewables = viewerApp.bubble.search ({'type': 'geometry'}); var viewables = viewerApp.bubble.search ({'role': '2d', 'type': 'view'}); if (viewables.length === 0) { console.error ('Документ не содержит видимых элементов.'); вернуть; }

1 Ответ

0 голосов
/ 27 июня 2019

Чертежный вид является разновидностью геометрии 2-й роли, поэтому вы можете загрузить ее таким же образом для 2D-вида.

const rootItem = doc.getRoot();
const filter = { type: 'geometry', role: '2d' };
const viewables = rootItem.search( filter );

if( viewables.length === 0 ) {
    return onLoadModelError( 'Document contains no viewables.' );
}

// Take the first viewable out as the loading target
const initialViewable = viewables[0];

const loadOptions = {
    sharedPropertyDbPath: doc.getPropertyDbPath()
};

viewer.loadDocumentNode(doc, initialViewable.data, modelOptions).then(onItemLoadSuccess).catch(onItemLoadFail); 

Чтобы показать список видов, таких как документы BIM360, вы можете загрузить расширение Autodesk.DocumentBrowser. Он покажет видимые элементы на нем, и просто нажмите на него, чтобы переключиться. Смотрите ниже снимок:

enter image description here

...