FIRST_OBJECT模式下ModelBuilder创建元素选择返回DBID=-1000000000的求助
在FIRST_OBJECT模式下获取自定义几何的正确DBID
可以拿到自定义几何的正确DBID,解决思路如下:
- 自定义几何创建时提前绑定ID:创建自定义几何时,给对应的Mesh对象添加自定义属性,比如
customDbId,赋值为你预先规划的有效ID(注意避免和原生模型DBID冲突)。 - 在选择事件中精准定位:监听
AGGREGATE_SELECTION_CHANGED_EVENT时,若返回的dbId为-1000000000,调用viewer.impl.hitTest方法获取当前鼠标拾取的精确位置,从返回结果中拿到对应的自定义Mesh对象,进而读取你之前绑定的customDbId属性,这就是你需要的正确ID。 - 原因补充:FIRST_OBJECT模式下返回
-1000000000是因为自定义几何默认没有父聚合节点,Viewer用这个特殊ID作为占位符。通过拾取测试直接获取几何对象的自定义属性,就能绕过这个占位符问题,同时保留FIRST_OBJECT模式的使用。
内容的提问来源于stack exchange,提问作者Adrian
相关产品推荐
相关产品推荐

