If your goal is for this to be used for engineering rather than just visual presentation, my advice is to support defining the actual system structure as text, and then use the UI to design views of that structure.
Bonus points if it consumes the text via git.