// 通过 filePosition 获取 Element // 采用 COM 接口获取 filePosition 对应的 ElementId // 然后通过 elementId 获取.NET下的 Element private Element GetElementByFilePosition (uint filePosition) { var app = Utilities.ComApp; var elemCache = app.ActiveModelReference.GraphicalElementCache; var index = elemCache.IndexFromFilePosition((int)filePosition); if (elemCache.IsElementValid(index)) { var elem = elemCache.GetElement(index); var longId = elem.ID; return Session.Instance.GetActiveDgnModel().FindElementById((ElementId)eleId); }
returnnull; }
程序使用了 COM 接口,所以需要的引入
Bentley.MicroStation.dll,COM接口位于
Bentley.MstnPlatformNET.InteropServices 命名空间中。