C# AVEVA MARINE 二次开发 读取分段
快速读取和筛选分段元素
[MyAmFunctionAtt(nameof(测试功能), nameof(读取分段))] public void 读取分段(WindowManager wm) { try { foreach (var item in wm.Windows) { if (item is DockedWindow) { var w = item as DockedWindow; if (w.Title.ToLower() == "messages") { if (!w.Visible) { w.Show(); wm.MainForm.Refresh(); } } } } //提取全部分段信息 var flType = new TypeFilter(DbElementTypeInstance.BLOCK);//只筛选分段,添加引用的dll==> C:\AVEVA\Marine\OH12.1.SP4\PDMSFilters.dll var searchStr = "ER*"; var nameLikeStr = new AttributeLikeFilter(DbAttributeInstance.NAMN, searchStr);//根据名称筛选,添加引用 C:\AVEVA\Marine\OH12.1.SP4\Aveva.Pdms.Database.dll var andFl = new AndFilter(flType, nameLikeStr);//两个条件同时满足 var blkeles = FindElements(DbType.Design, andFl); var ui = new MarUi(); //添加引用 C:\AVEVA\Marine\OH12.1.SP4\marAPI.dll if (!blkeles.Any()) { ui.MessageConfirm($"找不到名称类似‘{searchStr}’的分段!");//发送文本到message window窗口 ui.Dispose(); return; } blkeles.ForEach(c => ui.MessageNoConfirm(c.GetAsString(DbAttributeInstance.NAMN))); ui.Dispose(); } catch (System.Exception ex) { Interaction.MsgBox(ex.Message, MsgBoxStyle.Exclamation);// 添加引用C:\Windows\Microsoft.NET\Framework64\v2.0.50727\Microsoft.VisualBasic.dll } } /// <summary> /// /// </summary> /// <param name="dbType">数据类型</param> /// <param name="filter">筛选器</param> /// <param name="condtion">对dbelement需要筛选的条件</param> /// <returns></returns> public static List<DbElement> FindElements(DbType dbType, BaseFilter filter, Func<DbElement, bool> condtion = null) { List<DbElement> resDbElements = new List<DbElement>(); DBElementCollection dbeEleCol = new DBElementCollection(dbType, filter); var res = dbeEleCol.Cast<DbElement>(); if (!res.Any()) return resDbElements; res.ToList().ForEach(c => { if (condtion != null) { if (condtion.Invoke(c)) resDbElements.Add(c); } resDbElements.Add(c); }); return resDbElements; }
测试结果
标签:
AVEVA MARINE C#
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
2020-10-15 AutoCAD 多个布局批量打印
2020-10-15 C# AutoCAD NetApi xclip 删除 边界