各位老师 我给元素附上了自定义的EC属性 现在想要在模型的一堆元素中扫描查找带有该EC属性的元素
有什么方法可以筛选这类元素吗?
提前感谢!
请参考如下代码:
public static void TestECInstanceToElement() { string SchemaName = "TunnelAttributes"; string ClassName = "TunnelCode"; FindInstancesScope scope = FindInstancesScope.CreateScope(Session.Instance.GetActiveDgnModel(), new FindInstancesScopeOption(DgnECHostType.Element)); FindInstancesScope scopeTemp = FindInstancesScope.CreateScope(Session.Instance.GetActiveDgnFile(), new FindInstancesScopeOption()); int verMaj = 01, verMin = 0; IECSchema ecschema = DgnECManager.Manager.LocateSchemaInScope(scopeTemp, SchemaName, verMaj, verMin, SchemaMatchType.Latest); scopeTemp = FindInstancesScope.CreateScope(Session.Instance.GetActiveDgnFile(), new FindInstancesScopeOption()); ecschema = DgnECManager.Manager.LocateSchemaInScope(scopeTemp, SchemaName, verMaj, verMin, SchemaMatchType.Latest); IECClass ecClass = ecschema.GetClass(ClassName); IECClass[] ecClassArr = new IECClass[1]; ecClassArr[0] = ecClass; ECQuery ecQuery = new ECQuery(ecClassArr); DgnECInstanceCollection dgnECInsCol = DgnECManager.Manager.FindInstances(scope, ecQuery); foreach(var curVar in dgnECInsCol) { MessageCenter.Instance.ShowInfoMessage(curVar.Element.ElementId.ToString(), "", false); } }
Answer Verified By: mkt
谢谢郭工!~