В примере с цепочкой я бы наверное делал бы иначе - один примитив, похожий на полилинию. При необходимости можно добавлять/удалять сегменты (вершины). В противном случае тебе придётся хранить коллекцию AcDbObjectId's ссылок друг на друга или, как ты предлагаешь, на "коннекторы". Тут реакторами ты не отделаешься. Обработку связанных примитивов придётся добавлять в кучу методов классов "воздуховодов". Потом ты пишешь по два порта у элемента. А если это разветвитель у которого может быть и три и четыре (теоретически и больше) порта? Тут всё очень не просто.
Потом нужно будет разобраться с операциями копирования/переноса, добавления/удаления. Понадобится много и разных реакторов. Наверняка, beginDeepClone, endDeepClone. Сразу всё не опишешь. Так что давай "впрягайся" (т.е. начинай программировать), а потом будешь задавать конкретные вопросы, типа: "как отследить копирование", или "как отследить копирование в буфер обмена", или "как перенести все связанные объекты".