Я пытался найти элемент, используя функцию поиска в программе просмотра, а затем выполнить 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 одинаковы!Функция выбора также выделяет этот элемент в средстве просмотра.Это нормальное поведение при работе с элементами в связанных файлах?