繁体   English   中英

Autodesk Forge 查看器,搜索

[英]Autodesk Forge Viewer, Search

我正在使用 Autodesk Forge 查看器。

viewer.search('"' + keyword +'"', function(e)
{
    viewer.select(e);
    viewer.fitToView(e);
}

我是这样搜索的。 问题是它同时搜索“SG-100”和“SSG-100”。 我只想搜索 SG-100。

我怎样才能做到这一点? 帮助!

我的建议是在搜索中做第二个过滤器:

viewer.search(keyword, (dbIds) => {
   // success
   viewer.getBulkProperties(dbIds, ['AttributeName'], (elements) => {
      let dbIdsToSelect = [];
      for(var i=0; i<elements.length; i++){
         if (elements[i].properties[0].displayValue===keyword)
            dbIdsToSelect.push(elements[i].dbId;
      }

      viewer.select(dbIdsToSelect);
      viewer.fitToView(dbIdsToSelect);
   }
}, (e) => {
   // error, handle here...
}, ['AttributeName']);

我同意 Augusto 的建议,即您需要将搜索 scope 限制为特定属性,以避免部分匹配。 根据search function 描述,如果您在名为“ attributeNames ”的第四个参数中提供属性名称列表,则应该这样做。 不幸的是,根据我的经验,这不起作用,因此您需要使用getBulkProperties function 进行二级过滤,这会将搜索中的 dbId 列表减少到仅定义了特定属性的那些。 请注意, search方法属于viewer object,但getBulkProperties方法属于查看器viewer.model object。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM