在Autodesk Forge Viewer中,当查找具有单个字符值的属性时,搜索功能不起作用

问题描述

我想找到一个2D文件的组件,其属性“ TAG”等于“ F”。为此,我尝试使用viewer.search函数。更具体地说,我正在打电话:

this.viewer.search('F',searchCallback,searchCallbackErr,'TAG');

当然,这是一个测试,所以我确定这个对象确实存在,并且具有确切的属性,如您所见。 this screenshot

尽管,当调用成功回调函数时,id数组为空。我注意到在涉及单个字符值的所有其他搜索过程中都会发生这种情况。我还注意到,当我执行这样的搜索时,在这种情况下,包含“ F”的每个值都会在查看器的属性窗口中突出显示(您也可以在上一个屏幕截图中注意到)。 请注意,当我寻找与“ L1”相同的其他属性“ DESC3”时,对同一组件的搜索将起作用。

我想念什么?预先感谢您的帮助!我已经在这里待了很长时间了。

解决方法

如果我观看了您的屏幕截图,它说的是TAG1,而不是TAG,那可能是您的问题吗? 无论如何,一种验证方法是选择具有您的属性的对象,然后在调试器中运行此代码

NOP_VIEWER.model.getBulkProperties(NOP_VIEWER.getSelection(),null,console.log)

仔细看一下属性数组,注意有一个displayName和一个attributeName-搜索使用的是attributeName,但是界面将使用displayName。 一旦确定了要搜索的attributeName,就运行此代码。为了测试,我正在使用this example

NOP_VIEWER.model.search("Yes",console.log,console.error,["Show Title"])

对于最后一个参数,请注意它可以是字符串或字符串数​​组。 还有一个未记录的参数(第5个参数),用于告诉您是否要搜索隐藏参数(默认为false)。

NOP_VIEWER.model.search("Yes",["Show Title"],{ searchHidden: true })

是的,搜索需要多个字符。例如

NOP_VIEWER.model.search("1",console.error)
returns []
NOP_VIEWER.model.search("4",console.error)
returns []

but
NOP_VIEWER.model.search("4'",console.error)
returns a list of objects