2016-08-22 5 views
1

Я следил за этим Search demo и пытаюсь расширить его, чтобы искать только по указанным именам атрибутов.Поиск модели зрителя по именам атрибутов

Он работает без имени атрибута и возвращает массив соответствующих идентификаторов. Но если я поставлю что-либо для имени атрибута, тогда поиск возвращает пустой массив. Я предполагаю, что мне нужно какое-то волшебное формирование для имени атрибута.

Так в настоящее время у меня есть:

function search() { 
    var txtArea = document.getElementById("TextAreaResult"); 
    var searchStr = document.getElementById("SearchString").value; 
    var searchProperties = document.getElementById("SearchProperties").value; 

    if (searchStr.length == 0) { 
     txtArea.value = "no search string."; 
     return; 
    } 

    var viewer = viewerApp.getCurrentViewer(); 
    viewer.clearSelection(); 

    if (searchProperties.length == 0) 
     viewer.search(searchStr, searchCallback, searchErrorCallback); 
    else { 
     var searchPropList = searchProperties.split(','); 
     viewer.search(searchStr, searchCallback, searchErrorCallback, searchPropList); 
    } 
} 

где searchProperties является пользовательский ввод, например, «Имя», и searchPropList становится единым массивом элементов.

Этот же пример также охватывает getProperties(), который возвращает displayName и displayCategory для каждого свойства, но я не вижу отдельного внутреннего имени.

Я пропустил что-то очевидное from here или мне нужно каким-то образом преобразовать «Имя».

Или у кого-то есть пример, который будет отображать истинное имя, а не displayName?

+0

Я изучаю это, но кажется, что параметр «attributeNames» чувствителен к регистру, вы можете попробовать на своем конце? –

+0

Таким образом, поиск работает с searchProperties = 'name', я все равно не могу подобрать пользовательские свойства. Поиск «Нет», «нет» или «nO» без имени атрибута выбирает множество идентификаторов и выделяет «Скрытые» и «Обязательные» на панели свойств. Но добавление «Скрытых», «скрытых», «Обязательных» или «обязательных» в качестве атрибута возвращает каждый из них. –

+0

Итак, если «имя» работает, а «Имя» - нет, но свойство displayName «Имя», есть ли внутреннее «имя», которое получает сообщение «Имя»? –

ответ

0

Autodesk.Viewing.Viewer3D.search() метод не чувствителен к регистру на текста параметра, но он чувствителен к регистру на attributeNames параметра, и вы должны использовать полное имя атрибута.

Мы сейчас (25 августа 2016 г.) обновили документацию.

+0

Есть ли пример, чтобы получить полное имя свойства из [getProperties] (https://developer.autodesk.com/en/docs/viewer/v2/reference/javascript/model/#getproperties-dbid-onsuccesscallback-onerrorcallback) или похожие? Или должно ли полное имя соответствовать возвращенному displayName? –

+0

Простите, я пропустил это: viewer.getProperties() в настоящее время возвращает displayName. Когда нет displayName, возвращается имя атрибута (и только тогда). –

Смежные вопросы