显示集设置(元素临时隐藏与显示)


显示集(Display Set)是Mstn中一种临时隐藏元素的方式,如果我们想隐藏视图中的某些元素时,我们需要先通过选择集工具选中需要隐藏的元素以外的其他所有元素。然后在视图中长按鼠标右键,在弹出的菜单中选择如下图所示的菜单项“Display Set”就可以只显示选中的元素了。

当我们需要把隐藏的元素再重新显示出来时,在视图中再长按鼠标右键选择“Display Clear”菜单项就可以了。

当然正如前文所述,元素通过这种方式隐藏时,只是临时隐藏起来了,隐藏状态并不会保存在Dgn文件中。当我们退出Dgn文件再重新打开时,隐藏起来的元素会重新显示出来(如果需要把这种隐藏状态保存在Dgn文件中,我们可以通过其他方式来实现。本文主要讨论显示集这种方式,其他方式我们后续在其他Wiki中介绍)。如下一段代码演示了如何通过选择集方式隐藏选中的元素:

        [DllImport("stdmdlbltin.dll")]
        public extern static void mdlDisplaySet_addSelectionSet(bool clearExisting);

        public static void HideElementsByDisplaySet()
        {
            mdlDisplaySet_addSelectionSet(false);
            Bentley.Interop.MicroStationDGN.Application MsApp = Bentley.MstnPlatformNET.InteropServices.Utilities.ComApp;
            var eles = MsApp.ActiveModelReference.GetSelectedElements().BuildArrayFromContents();
            foreach(var curEle in eles)
            {
                curEle.InDisplaySet = false;
            }
            MsApp.ActiveModelReference.UnselectAllElements();
            MsApp.ActiveDesignFile.Views[Session.GetActiveViewport().ViewNumber + 1].Redraw();
        }