#autodesk-forge #autodesk-viewer
#autodesk-forge #autodesk-viewer
Вопрос:
Я пытаюсь реализовать .search() и ограничить имена атрибутов с помощью необязательного параметра, но он всегда возвращает пустой массив.
https://developer.autodesk.com/en/docs/viewer/v2/reference/javascript/viewer3d/
Может кто-нибудь пояснить, как применяется этот фильтр? Я ожидал, что он посмотрит на возвращаемое свойство.DisplayName, но, видимо, это не так.
Пример:
viewer.search('13-097', function (ids) {
console.log(ids);
var id = ids[0];
viewer.getProperties(id, function (obj) {
console.log(obj.properties);
});
}, function (e) { });
viewer.search('13-097', function (ids) {
console.log(ids);
}, function (e) { }, ['ADDRESS']);
Результат:
первый поиск:
[8095]
второй поиск:
[]
из объекта 8095 свойства:
10:Object
displayCategory:"DWF - Construction"
displayName:"ADDRESS"
displayValue:"13-097"
hidden:false
type:20
units:null
Ответ №1:
Пожалуйста, обратите внимание на Autodesk.Viewing.Метод Viewer3D.search() НЕ учитывает регистр в текстовом параметре, но он чувствителен к регистру в параметре attributeNames, и вам необходимо использовать полное имя атрибута.
Если для сопоставления свойств используется DisplayName, обратите внимание, что viewer.GetProperties() в настоящее время возвращает DisplayName. Если DisplayName отсутствует, тогда (и только тогда) возвращается имя атрибута.
Ниже приведен пример, который я пробовал ранее (с учетом вашего набора данных):
function search() {
viewer.clearSelection(); // remove previously highlighted searches
var searchStr = '13-097';
var searchPropList = new Array('ADDRESS');
viewer.search(searchStr, searchCallback, searchErrorCallback, searchPropList);
}
function searchCallback(ids) {
alert(ids.length);
}
function searchErrorCallback(error) {
console.log(error);
}
РЕДАКТИРОВАТЬ (24 октября 2016 г.)
Метод Viewer 2.11 .GetProperties возвращает атрибуты, которые можно использовать в параметре .search attributesNames .
Комментарии:
1. Похоже, это все еще не работает, или я просто не понимаю, как / если я могу использовать поиск таким образом. Я добавил пример к своему первому сообщению.
2. @JOfford пожалуйста, проверьте ответ еще раз, добавлен пример кода.
3. Используя ваш код, я получил то же самое: 1 найдено при исключении «searchPropList» и 0 при его включении.
4. спасибо за тестирование, позвольте мне разобраться немного подробнее. Какую версию Viewer вы используете?
5. То же, что и в учебном пособии forge viewer. developer.autodesk.com/en/docs/viewer/v2/tutorials/basic-viewer