2016-10-10 6 views
1

Я пытаюсь реализовать .search() и ограничивать имена атрибутов с помощью необязательного параметра, но он всегда возвращает пустой массив.Autodesk Forge Viewer3d search using attributeNames

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); 
} 

EDIT (Октябрь 24, 2016)

Метод Viewer 2.11 .getProperties возвращает атрибуты, которые могут быть использованы в параметре .search attributesNames.

+0

Он по-прежнему не работает, или я просто не понимаю, как/если я могу использовать поиск таким образом. Я добавил пример к моему первому сообщению. –

+0

@JOfford снова проверьте ответ, добавьте образец кода. –

+0

Используя ваш код, я получил то же самое: 1 нашел, когда вы исключили «searchPropList» и 0, когда вы его включили. –