如题,知道命名组的名称,我用如下代码选中无效果,是什么原因呢?
SelectionSetManager.EmptyAll(); string groupName = (string)e.Node.Tag;// NamedGroup Name NamedGroupCollection groupCollection = new NamedGroupCollection(Session.Instance.GetActiveDgnModel()); NamedGroup group = groupCollection.FindByName(groupName); Element element = group.GetElement(); SelectionSetManager.AddElement(element, element.DgnModelRef);
命名组本身确实是一个元素,但它是一个控制元素而非图形元素。你需要获取命令组中的图形元素,将这些图形元素添加到选择集中才能达到你的目的。
嗯,将组里的无素加入选择集后可以高亮了,然后我如何获取这个组的外包盒,我想在视图中自动定位到这个元素
lingwei liu said:我如何获取这个组的外包盒
你需要获得组中每一个元素的Range,然后再将这些Range做并集就是整个组的外包盒。
lingwei liu said:我想在视图中自动定位到这个元素
定位元素有很多方法的。可否描述一下您的整个工作流程,最终想要实现什么功能?
如图,我将我的所有元素放到一个树控件中了,当我用鼠标双击某个元素时,我希望高亮显示,并自动缩放到该元素。
哦,那就是获得元素或多个元素的Range后调用视图的相关函数即可。但要注意视图矩阵的变换,因为当前视图的方向和Range的方向可能是不一致的。