【问题标题】:Autodesk Forge Viewer3d search using attributeNamesAutodesk Forge Viewer3d 使用属性名称搜索
【发布时间】:2017-02-18 23:28:40
【问题描述】:

我正在尝试实现 .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

【问题讨论】:

    标签: autodesk-forge autodesk-viewer


    【解决方案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 参数上使用。

    【讨论】:

    • 它似乎仍然不起作用,或者我只是不清楚如何/是否可以以这种方式使用搜索。我在第一篇文章中添加了一个示例。
    • @JOfford 请再次检查答案,添加代码示例。
    • 使用你的代码我得到了同样的结果:当你排除“searchPropList”时找到1,当你包含它时找到0。
    • 感谢测试,让我再调查一下。您使用的查看器版本是什么?
    猜你喜欢
    • 1970-01-01
    • 2020-10-23
    • 2019-04-05
    • 2020-02-20
    • 2019-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多