Как установить model.getDocumentNode при загрузке нескольких документов? - PullRequest
0 голосов
/ 10 сентября 2018

Я загружаю несколько моделей из нескольких преобразованных файлов Revit в программе просмотра. В каждой из этих моделей я ставлю точки, связанные с выбранным элементом. Чтобы иметь возможность использовать эти пункты позже, мне нужно:

  1. Из какого документа пересмотра он был взят -> models [x] .myData.urn: ok
  2. Какое представление (модель) из документа revit было взято -> model.getDocumentNode возвращает null (это не тот случай, когда я загружаю одну модель с помощью viewerApp). Это приводит к тому, что node.model.getDocumentNode (). Data.guid, который указывает на представление, будет недоступен. ко
  3. Dbid -> присутствует в событии выбора: ок
  4. Guid -> Я создаю таблицу сопоставления 2 способами (dbid <-> guid), чтобы получить то, что мне нужно: хорошо (открыто для более простых способов, но хорошо)

Основная проблема - 2-ой пункт. Как установить model.getDocumentNode при загрузке нескольких моделей в программе просмотра?

Спасибо,

1 Ответ

0 голосов
/ 12 сентября 2018

Вы можете собрать URN документа и GUID модели в процессе загрузки:

function load(urn) {
    viewerApp.loadDocument(
        'urn:' + urn,
        function onDocumentLoadSuccess(doc) {
            const viewables = viewerApp.bubble.search({ 'type': 'geometry' });
            if (viewables.length > 0) {
                const path = doc.getViewablePath(viewables[0].data);
                const viewer = viewerApp.getCurrentViewer();
                const options = { /* your options */ };
                viewer.loadModel(path, options, function onModelLoadSuccess(model) {
                    model._myURN = urn;
                    model._myGUID = viewables[0].data.guid;
                });
            }
        }
    );
}
...