forge Viewer - 如何以编程方式选择 dbId,因为它会自动取消选择其他选择
Posted
技术标签:
【中文标题】forge Viewer - 如何以编程方式选择 dbId,因为它会自动取消选择其他选择【英文标题】:forge Viewer - How can you select dbId programmatically as it deselects the other selection automatically 【发布时间】:2020-06-10 23:37:55 【问题描述】:在我的查看器中,我希望能够选择多个 dbid 并保存到数据库,但是通过 control-shift 我可以进行选择,但是稍后在检索时我可以使用 select([dbid array]) 进行显示,应该可以正常工作。但是,如果我想选择一个新的 dbid,每次都使用控件来选择新的 dbid 很痛苦,另一件事是我的事件处理程序(AGGREGATE_SELECTION_CHANGED_EVENT)我需要编写额外的代码来确定我选择的最新 dbid 是什么? 有什么建议可以轻松解决这个问题吗?
【问题讨论】:
【参考方案1】:如果您想在以编程方式选择额外节点的同时保留当前选择,请尝试将当前选择的 dbid 与新节点连接起来:
const currentSelection = NOP_VIEWER.getSelection()
currentSelection.push(dbid)
NOP_VIEWER.select(currentSelection)
我需要编写额外的代码来识别我选择的最新 dbid 以及全部?
是的,查看器不会跟踪您选择的顺序/时间戳,因此您需要自己管理。
control-shift 我可以进行选择
您可能还想了解点击行为设置以更改对象点击的默认行为:
const config =
"click":
"onObject": ["selectOnly"],
"offObject": ["deselectAll"]
,
"clickAlt":
"onObject": ["setCOI"],
"offObject": ["setCOI"]
,
"clickCtrl":
"onObject": ["selectToggle"]
// don't deselect if user has control key down https://jira.autodesk.com/browse/LMV-1852
//"offObject": ["deselectAll"]
,
"clickShift":
"onObject": ["selectToggle"]
// don't deselect if user has shift key down https://jira.autodesk.com/browse/LMV-1852
//"offObject": ["deselectAll"]
,
NOP_VIEWER.setCanvasClickBehavior(config)
【讨论】:
好的,这很棒。我喜欢这个例子中的想法forge-digital-twin.autodesk.io/#,这里我们不是“选择/突出显示”保存的 dbid,而是我们给出带有一些标签的箭头。同样在这里我观察到你不能做多选对象,因为看起来他们已经禁用了它。希望它是你上面解释的方式。这是真的吗?如果那怎么办? “你不能做多选对象,因为看起来他们已经禁用了它”由用户或以编程方式?两者都是可能的...从用户端查看选择窗口示例here @BryanHuang 我们如何以编程方式从多个模型中选择 dbId?以上是关于forge Viewer - 如何以编程方式选择 dbId,因为它会自动取消选择其他选择的主要内容,如果未能解决你的问题,请参考以下文章
如何获取 forge-viewer onClick 事件的 xyz 坐标?
如何使用Forge Viewer在revit文件中显示项目?