Огромное спасибо за ответ! Только наши, русские программисты способны так быстро и находчиво решать проблемы

(особенно понравилось про стрелочки и про "freeze"
А сейчас начну огорчать.
Дело в том, что трассы и трубы всегда прокладываются на основе идентификатора трассы - абстрактного объекта, не имеющего физического представления, в котором хранятся из которого "наследуются" свойства всем элементам, проложенным по этому LineID. Например, если у LineID в соответствующей вкладке (у нас это Piping) у атрибута Nominal size проставлено 2in, то и трубы, и трубная арматура, относящиеся к этому LineID, будут иметь в своих свойствах 2in в атрибуте Nominal size. В нашей сборке два идентификатора трассы:
U1-P101-2in-CS150R-FG и
U8-P801-2in-CS150R-FG.
Говорю всё это для того, чтобы показать, что
идентификатор трассы НЕ является трубой ни в 3D, ни на схеме. И по одному идентификатору трассы вполне могут быть проложены (а в реальности так и происходит) 5 различных трасс (Run'ов), на каждой из которых лежит по трубе. Вот в этот момент возникает неоднозначность.
В схеме по одному LineID протянут пять схемных значков труб (см. приложенный архив). У всех у них в Related objects есть этот
LineID, а LineID, в свою очередь, связан со всеми пятью схемными значками (назовём это множество "набор схемных значков")
После чего в 3D по схемным значкам труб протянуты трассы с физическими трубами. У всех трасс в Related Objects есть
тот же LineID, а у физических труб там дополнительно содержится использованная для прокладки трасса. Таким образом, LineID в 3D связан со всеми его трассами и установленными на них трубами (а это множество назовём "набор проложенных труб").
Проблема в том, что "набор схемных значков" и "набор проложенных труб" никак не связаны друг с другом (точнее, эту связь никак не увидеть). Не совпадают ни имена, ни порядок следования объектов, ни даже их количество. Для расставленного оборудования всё совершенно по-другому, программный код отлажен и работает, но мой вопрос касается именно труб и трасс.
От себя добавлю, что, как мне кажется, получать инфомацию о схемном значке, по которому была проложен труба, с идеологической точки зрения нужно из документа с 3D сборкой. Потому как схема может быть разведена несколько раз в различных сборках. А вот сборке может соответствовать только одна схема. Именно поэтому в схеме не должно быть информации о её 3D-представлении, но в сборке данные о схеме должны быть. Это же подтверждается тем фактом, что как только при разводке трубопровода используется какая-либо схема, её дерево спецификаций копируется в дерево спецификаций сборки в качестве отдельного продукта.
Теперь по программной части. По всем дисциплинам из Equipment & Systems данные по "родительскому" идентификатору трассы, по расстановке оборудования (не труб) и прочие полезные вещи в Automation достаются через PspFramework (PlantShip Interfaces в CAA RADE). Поэтому манипуляции со вкладочками и Alt-Tab не требуются.
Однако, окно
Related Objects отображает для физической трубы не только "родительский" LineID, но и использованную трассу, а это ценная информация. За это отдельное спасибо.
Повторюсь, в приложении лежат документы сборки и схемы, которые наглядно демонстрируют проблему идентификации схемных значков труб по соответствующим им трассам и физическим трубам в 3D.