1

我正在尝试使用可选参数实现 .search() 和限制属性名称,但它总是带回一个空数组。

https://developer.autodesk.com/en/docs/viewer/v2/reference/javascript/viewer3d/

有人可以澄清这个过滤器是如何应用的吗?我期待它查看返回的 property.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
4

1 回答 1

1

请注意Autodesk.Viewing.Viewer3D.search()方法在text参数上不区分大小写,但在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);
}

编辑(2016 年 10 月 24 日)

Viewer 2.11 .getProperties 方法返回属性,可用于 .search attributesNames 参数。

于 2016-10-10T14:15:46.123 回答