如题,我通过交互工具选择了指定的管线,然后想获取管线上的支吊架进行标注,不知道如何获取,请帮忙。
private static string Relationship = "DEVICE_HAS_SUPPORT"; public static void Run() { // pipe Element element = Utils.Utils.GetASelectedElement(); if (element == null) { return; } var instances = DgnECManager.Manager.GetElementProperties(element, ECQueryProcessFlags.SearchAllClasses); var instance = instances.ElementAt(1);//pipeInstance List<IECRelationshipInstance> relationships = DgnUtilities.GetAllRelationshipInstances(instance).Where(e => e.ClassDefinition.Name == Relationship).ToList(); foreach (var relationship in relationships) { IECInstance support = relationship.Target; var id = (support as IDgnECInstance).Element.ElementId; } }
谢谢,我去试一下
我去实验了一下,好像没有取到,我得到的RelationshipInstances是以下这些,没有DEVICE_HAS_SUPPORT,不知道哪里的问题
有没有可能,您选的那根管道上,他就没有support呢?
有是肯定有,我用ScanCriteria这个类然后用选中的管道的Range扫描到所有对象,然后取得对象的所有的IECInstance, 然后再查找这些的BaseClasses,找到父类是 [ "PipingSupport", "PIPE_SUPPORT" ]的,取到3个,然后我看图上也是三个,但是这个方法感觉很绕的感觉
我从模型观察也是这个情况,应该是对的