首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Autodesk Forge Viewer,搜索

Autodesk Forge Viewer,搜索
EN

Stack Overflow用户
提问于 2020-07-03 10:57:10
回答 2查看 481关注 0票数 0

我正在使用Autodesk Forge Viewer。

代码语言:javascript
复制
viewer.search('"' + keyword +'"', function(e)
{
    viewer.select(e);
    viewer.fitToView(e);
}

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

我该怎么做呢?帮助!

EN

回答 2

Stack Overflow用户

发布于 2020-07-04 00:33:23

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

代码语言:javascript
复制
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']);
票数 0
EN

Stack Overflow用户

发布于 2020-07-11 00:26:40

我同意Augusto的建议,即您需要将搜索范围限制到特定的属性,以避免部分匹配。根据search函数的描述,如果您在名为'attributeNames‘的第四个参数中提供属性名列表,就应该这样做。不幸的是,根据我的经验,这不起作用,因此您需要使用getBulkProperties函数进行第二级过滤,该函数将搜索中的dbIds列表减少到仅定义了特定属性的列表。请注意,search方法属于viewer对象,而getBulkProperties方法属于viewer.model对象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62707835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档