Yes, rooms are really meant to enclose the whole subcircuit—and nothing else, ideally. It does make it a pain to deal with situations where those subcircuits end up packed tightly together, or where you need to have unrelated tracks pass through a room. It would be nice if rooms worked more like blocks in AutoCAD, where you have to explicitly open it for editing before you can add, edit, or remove any constituent objects. (Incidentally, that’s also how Altium’s unions should work, instead of the half-assed bullshit they are now.)
Here’s the workflow that I’ve found works best for rooms in multichannel projects:
- get the placement and layout of one room as close to finalized as possible
- once it’s there, pull the room boundaries in to tightly enclose the entire subcircuit, including routing
- copy the room shape ONLY to its sibling rooms. Move all of the other components somewhere out of the way, or even delete them for the time being
- fit the rooms onto the PCB, adjusting the outlines if necessary so they fit together as needed
- if necessary, adjust the placement, layout, and outline of the first room, and again replicate ONLY the shape to the other rooms
- repeat the above until satisfied with the way all of the rooms lay out
- at this point, you can go back to the rest of the board. The rooms will reserve the space needed for the other channels, and if you find that you need to adjust the rooms to make everything work it’s still fairly easy to do that
- when ready to commit to the channel layout, temporarily remove any objects that are enclosed or touched by the first room that should not be replicated to the others
- NOW replicate the placement and routing of the first room to all of the others
- replace any temporarily removed objects, make external connections to the channels, etc
One exception to the “only lay out one room” part of the above is when you want to try a couple of different layouts for the subcircuits to see what works best. You can replicate the first room to a second and tweak from there, or just start from scratch in a second room, and copy the outline from one or the other to the rest of the rooms to try it out.