При использовании функции поиска Autodesk Forge Viewer для элементов в связанных моделях возвращенный dbId не может выполнить fitToView, но dbId + 1 работает? - PullRequest
0 голосов
/ 15 мая 2019

Я пытался найти элемент, используя функцию поиска в программе просмотра, а затем выполнить fitToView для элемента.Функция вернула dbId, но fitToView не работает с ним.После некоторых исследований и некоторой помощи по этому вопросу: Autodesk Forge Viewer - Получение различных значений dbId из "viewer.model.search" и "viewer.getSelection ()" , я добавил 1 к возвращенному dbIdи тогда работал fitToView!

Элемент, который я пытался найти, находится в связанной модели - я загрузил ZIP-файл моделей Revit - элемента нет в основной модели.Это известное поведение со связанными моделями?Могу ли я безопасно добавить 1 ко всем dbIds, возвращаемым из поиска, чтобы получить правильный элемент?Или есть ли какой-нибудь способ получить правильный dbId?

Я скачал model.sdb и понял, что правильный dbId содержит атрибут с именем instanceof_objid, значением которого является dbId, возвращаемый функцией поиска.Есть ли какая-либо функция из Viewer API для доступа к этому атрибуту?

Надеюсь, это понятно, как грязь ... Заранее спасибо за любую помощь!

ОБНОВЛЕНИЯ: Используя простую модель, я искал элемент в связанном файле -

            thisViewer.search('testing', function(c)
            {
                thisViewer.utilities.fitToView(c);
                thisViewer.select(c);
                console.log(c);
            })

Возвращенный dbId равен 6388, и fitToView фактически увеличивает масштаб всей модели, а не масштабирует этот элемент.Выбор также не выделил элемент.Когда я выбираю элемент в средстве просмотра и выполняю getProperties:

            var ids = thisViewer.getSelection();
            for (let id of ids) {
                thisViewer.getProperties(id, retrieveProps, retrievePropsError);
            }
            function retrieveProps(data) {
                console.log(data.name);
                console.log("dbId = " + data.dbId);}

dbId этого элемента - 6389. Это +1 от dbId, возвращенного функцией поиска.

Затем я попытался запустить тот же код для элемента в главном файле (не в связанном файле), возвращенные dbIds одинаковы!Функция выбора также выделяет этот элемент в средстве просмотра.Это нормальное поведение при работе с элементами в связанных файлах?

1 Ответ

0 голосов
/ 16 мая 2019

Вот, пожалуйста, отлично работает поиск AutodeskForge в связанной модели Revit с Viewer v6.

search/fitToView

viewer.search('AutodeskForge', function(e)
{
   viewer.utilities.fitToView(e);
   viewer.select(e);
   console.log(e);
})
...