Working with Rooms on a PCB in Altium Designer

Now reading version 23. For the latest, read: Working with Rooms on a PCB in Altium Designer for version 25
 

Parent page: Pre-layout Stage

A Room objectA Room object

Summary

A room is a primitive design object. It is a region that assists in the placement of components. Rectangular or polygon-type rooms can be placed on either the top or bottom layer of the board and can either be placed empty (associating components at a later stage) or placed around components in the design (automatically associating them to the room). Alternatively, orthogonal, non-orthogonal, and rectangular-shaped rooms may be created automatically based on selected components in the design space.

Availability

Rooms are available for placement/creation in the PCB Editor only. You can place them directly or create them from selected components. Use one of the following methods to access the placement commands:

  • Select the required command from the Design » Rooms submenu.
  • Select the type of room desired from the Place Room drop-down () on the Utilities toolbar.
  • Create a new room object by adding a new Room Definition design rule.

Automatically Created Rooms

A room can also be automatically generated for each schematic sheet in the design using the options in the Class Generation tab of the Project Options dialog. Automatically generated rooms are created during sch-to-PCB design transfer as a simple rectangle enclosing the class of components from each schematic sheet.

Disable the Generate Rooms checkbox(es) in the Project Options dialog if automatically generated rooms are not required. Learn more about automatically generating Rooms, Component Classes and Net Classes from the schematic project.

Placement

The procedure used to create a room on the PCB document depends on whether you are placing or creating the room and which particular method of placement/creation you have chosen to use.

Placement Using Menu or Toolbar Command

Rectangular or polygonal-shaped rooms can be placed on the top or bottom layers of the design.

Rectangular Room

After launching the Design » Rooms » Place Rectangular Room command, the cursor will change to a crosshair and you will enter room placement mode. Placement is made by performing the following sequence of actions:

  1. Click or press Enter to anchor the first corner of the room.
  2. Move the cursor to adjust the size of the room then click or press Enter to anchor the diagonally-opposite corner and complete placement of the room.
  3. Continue placing further rooms or right-click or press Esc to exit placement mode.
Press the Tab key during placement to access the Edit Room Definition dialog, from where you can change properties for the room's associated Room Definition Rule on-the-fly.

Polygonal Room

After launching the Design » Rooms » Place Polygonal Room command, the cursor will change to a crosshair and you will enter room placement mode. Placement is made by performing the following sequence of actions:

  1. Position the cursor then click to anchor the starting point for the room.
  2. Position the cursor then click to anchor a series of vertex points that define the polygonal shape of the room.
  3. After placing the final vertex point, right-click or press Esc to complete placement of the room. There is no need to close the polygon since the software will automatically complete the shape by connecting the start point to the final point placed.
  4. Continue placing further polygonal rooms or right-click or press Esc to exit placement mode.

While defining the region shape, use Shift+Spacebar to cycle through various corner modes. Arcs can be increased or decreased in radius using Shift+. (period) or Shift+, (comma), respectively. Use the Spacebar to toggle the direction of the corner. Use the Backspace key while in placement mode to remove the last placed vertex point. Repeatedly use the Backspace key to 'unwind' the outline for the polygon back to the initial starting point.

Press the Tab key during placement to access the Edit Room Definition dialog, from where you can change properties for the room's associated Room Definition Rule on-the-fly.

Associating the Components with a Room

When an empty room is placed in the design, components required to be placed in the room should be grouped together by the use of a specific component class. A Room Definition rule will automatically be created and assigned to the room with a Where the Object Matches scope (Full Query) of False. Edit this design rule to target the required set of objects - for example, component class. The components can then be moved to the room by the use of the Tools » Component Placement » Arrange Within Room command.

Automatic Room Creation

Non-orthogonal, orthogonal, and rectangular-shaped rooms can be created automatically using one of the three Create xxx Room from selected components commands, based on the components currently selected in the design space. In each case, the method of creation is the same:

  1. First, ensure that all components for which you want to create the room are selected in the design space.
  2. Launch the relevant creation command (Design » Rooms » Create xxx Room from selected components); a component class is automatically created to include the selected components, unless there is already a component class defined for those selected components.
  3. The chosen room type is then created, with that room's Room Definition design rule automatically associated with the created component class.
  4. The room will be sized accordingly in order to fit all components in the selection as defined by the limits of their selection rectangles.
  5. If you click and drag to move that room, all of the components in the associated component class will also move. 

If you place a polygonal room around one or more components so that they fall completely within the room boundaries, the components are automatically associated with the room. The scope, or query created for the room's definition rule depends on whether all of those components are part of an existing component class or not. If they are, then this component class will be used. If not, a new component class is created with these components as its members. It is, therefore, possible to have multiple rooms, each with a scope that targets a particular component class and has one or more mutual component members between those classes.

Creation by Adding a Room Definition Design Rule

For each room that is placed or created, an associated Room Definition design rule is also created. You may add a new rule of this type and a corresponding room object will appear in the design space. To add a new Room Definition rule, right-click on the Room Definition entry, which can be found under the Placement category in the PCB Rules and Constraints Editor dialog, then select New Rule from the subsequent pop-up menu. The new rule will be added to the folder tree on the left-hand side of the dialog and will appear in the summary list for that rule type in the main editing window of the dialog.

Click on the entry for the newly-created rule in the folder-tree pane (or double-click on the rule entry in the summary list) to edit/define the scope and constraint attributes for the rule. Use the Define button to access the design space and determine the location, shape, and size of the required room, either polygonal or rectangular. After defining the boundaries of the room, you will be returned to the dialog.

  

After defining all constraints for the rule as required, click OK to exit the dialog. The corresponding room object will appear in the design space in accordance with the definition of the rule.

Double-click on a placed room to open the Edit Room Definition dialog in order to edit its rule properties.

As well as being a design rule in its own right (Room Definition), a room can also be used as an object when defining the scope of another rule, such as Clearance or Height. Since the room is to be used as an object rather than a rule, you can disable the rule. The following two queries can be used when using a room object in another rules' scope definition:

This can be used, for example, to route a net at different widths as the routing travels across the board. Refer to Automatically Changing the Routing Width As You Route to learn more.

Automatically Generated Rooms

The Class Generation tab of the Project Options dialog includes options to generate Rooms for each sheet in the design. If the Generate Rooms option is checked, a Room for each sheet will be created and all components within that sheet will be associated with the corresponding Room when a Design » Update command is run.

In the PCB, each room is defined as a design rule, which will be created with the scope of InComponentClass('<SheetSymbolDesignator>'). A room will not be created if the sheet does not contain any components. When the schematic is initially transferred to the PCB, the components in each component class are arranged in a row, and then a room is created around that component class, as shown below.

The PCB after initial design synchronization - a room has been created for each sheet, and that room has that sheet's component class assigned to it.
The PCB after initial design synchronization - a room has been created for each sheet, and that room has that sheet's component class assigned to it.

To learn more about design synchronization, refer to the Keeping the Schematics & PCB Synchronized page.

Creating a Room from a Set of Tracks

A room object can be defined using a closed boundary made up of selected track and/or arc objects. To do this, select all constituent track and arc primitives of the closed boundary in the design space and choose the Tools » Convert » Create Room from Selected Primitives command from the main menus.

After launching the command, the Edit Room Definition dialog will open. Use this dialog to define the room's associated Room Definition design rule, including which components (or class of components) are targeted by (associated with) the room and related constraints. After clicking OK, a room will be created from the closed boundary formed by the track primitives. The room's boundary follows the center line of the bounding track objects and it is not selected. Select and move the room to its required location in the workspace. Double-click on it to access the Edit Room Definition dialog, from where you can further change scope and/or constraints for the associated room definition rule as required.

Note that:

  • The room will be created on the layer specified in the associated rule's constraints, not the layer that the selected tracks are on. This means you can define the shape on a mechanical Layer, then create the room on the required signal layer.
  • The selected tracks will still exist after the room has been created and will remain selected.
For Altium Designer to be able to perform a track to room conversion, the outline must be correctly defined. That means the outline must form a closed shape, with the ends of touching track segments correctly meeting (starting/ending in the same X, Y location).

Graphical Editing

This method of editing allows you to select a placed room object directly in the design space and graphically change its size, shape, location, or orientation.

Changing Room Size and Location

When a room object is selected, the following editing handles are available regardless of whether it is was originally placed as a rectangular or polygonal room:

   

Dragging corner handles (A) will scale the room horizontally and vertically simultaneously. Dragging an edge handle (B) scales the object in that direction (either horizontally or vertically). The room can be rotated or flipped while dragging by using the following:

  • Press the Spacebar to rotate the object counterclockwise or Shift+Spacebar for clockwise rotation. Rotation is in accordance with the value for the Rotation Step defined on the PCB Editor - General page of the Preferences dialog.
  • Press the X or Y keys to flip the object along the X-axis or Y-axis.
  • Press the L key to flip the object to the other side of the board. If the room has associated components, those components will be flipped along with the room.

A room object can also be moved using the Design » Rooms » Move Room command from the main menus or the Room Actions » Move Room command from the room's context menu. After launching the command, the cursor will change to a cross-hair and you will enter room movement mode. Movement is made by performing the following sequence of actions:

  1. Position the cursor over the room in the design that you want to move then click or press Enter.
  2. If the room contains any no-net objects and/or locked objects, the Room containing No Net/Locked Objects dialog will open. Use this dialog to determine whether these objects should be moved with the room or not then click OK.

    For this dialog to appear, the Ask when moving rooms containing No Net/Locked Objects option must be enabled on the PCB Editor - General page of the Preferences dialog.

    The Room containing No Net / Locked Objects dialog
    The Room containing No Net / Locked Objects dialog

    • No Net Objects - enable to move objects with no nets with the room.
    • Locked Objects - enable to move locked objects with the room.
    • Don't ask me about moving room's locked/no net objects until next PCB session (use currently selected settings) - enable this option to save the selected settings and continue using them for the rest of your PCB session. The dialog will not open again unless a new session is started.
  3. The room will attach to the cursor. Move the room to the required position then click or press Enter to effect placement.
  4. Continue moving further rooms or right-click or press Esc to exit.

When the room being moved involves one or more components, dynamic alignment guides (green indicator lines that appear when pressing the Ctrl or Shift key in relation to the boundaries or pads of components in the room and nearby components) can be used while the selection is still floating on the cursor.

  • Since the movement of a room involves the room as well as any components and additional design objects, it is considered a complex selection. In this case, the only component push mode available is Ignore. Connection display is also disabled.
  • A room can also be locked to prevent accidentally moving it. To lock a room, double-click on it and enable the Room Locked option in the Edit Room Definition dialog.
  • Any nets associated to an object within the room will remain connected and the connection lines follow the object when the room is moved. Any routed track connected to the object that is outside the room will not be moved.
  • Once component(s) have been assigned to a room, they move when the room is moved. To move a room without moving the components, temporarily disable the associated Room Definition Rule in the PCB Rules and Constraints Editor dialog.
  • When a room is mirrored along the X or Y axes, the Designator and Comment of each associated component will become mirrored.

Changing Room Shape

To graphically modify the boundary shape of a room, you will need to launch the Design » Rooms » Edit Polygonal Room Vertices command from the main menus (shortcut: D, M, E) or the Room Actions » Edit Polygonal Room Vertices command from the room's right-click menu. Although the command name suggests it is for use with polygonal rooms only, it is, in fact, for use with all rooms since a rectangular room is itself a polygon. After launching the command, click inside the room to be modified. The boundary track editing handles for the room's polygonal boundary shape will be displayed.

  • Click A then move the cursor to move the vertex. Click again at the new location to position the vertex.
  • Click B or click over an object edge (in between handles) then move the cursor to slide that edge. The Shift+Spacebar hotkeys can be used to cycle through modes (sliding edge, breaking edge, incurvating edge).
  • Ctrl+Click B or Ctrl+Click along an object edge then move the cursor to add more vertices to that edge as well as move the vertex. Click again at the new location to position the vertex. In effect, the new vertex becomes an A vertex, and new B vertices are added between it and the original A vertices.
  • Continue modifying the shape of the room as required or right-click or press Esc to stop. The display of the room will update in accordance with the new boundary shape.

This command can be used regardless of whether or not the target room is locked.

Slicing Rooms

Commands are available that allow you to graphically 'slice' a placed room object into two or more separate rooms. These commands offer two levels of 'slice' and are summarized as follows:

Standard Slice

This allows you to slice an existing room object into multiple rooms. If the original room was associated with and contained components that were members of a component class, a newly-generated room that inherits one or more of these components will NOT have a new component class created and assigned to it. Therefore, the components in the new room will still be members of the original component class. To perform this level of slice:

  • Select Design » Rooms » Slice Room from the main menus.
  • Click  on the Place Room drop-down () of the Utilities toolbar.
  • Right-click a room object then select Room Actions » Slice Room from the context menu.
When using the Design » Rooms » Slice Room command, note that the slicer will only work provided the current layer is the layer on which the room to be sliced resides. Therefore, first ensure that the correct layer is made the current layer.

Smart Slice

The Smart Slice allows you to slice an existing room object into multiple rooms. If the members of the original room are part of a component class and slicing results in members residing in the newly-generated rooms, then each new room WILL have a component class created and associated with it. The component class membership will be updated accordingly so that each component in a new room will be added to the class for that room and removed from the original room class. Any room that is created that does not inherit a member component of the original room will have no component class created and assigned to it. To perform this level of slice, right-click over a room object then choose Room Actions » Slice and Create Classes from the context menu.

The Slicing Process

After launching either command, filtering will be applied to the document resulting in all room objects remaining visible and all other objects becoming dimmed. The cursor will change to a crosshair and you will be prompted to select a start point for the slice. Move the cursor to the required point with respect to the room you want to slice then click or press Enter. You are now in slice mode (which is essentially line placement mode). Move the cursor then click or press Enter to anchor a series of vertex points that define the shape of the slice.

  • Position the cursor then click to anchor the starting point for the slice.
  • Position the cursor then click to anchor a series of vertex points that define the shape of the slice.

  • After placing the final vertex point, right-click or press Esc to complete placement of the slice.
  • When you have finished defining the slice, right-click or press Esc.
  • Continue defining further slices or right-click or press Esc to exit slice mode. A confirmation dialog will open, which states how many rooms the original room will contain. Click Yes to commit the slice(s) you have made or No to discard. The resulting new room object(s) will be updated accordingly and the relevant Room Definition rule created and associated.
  • While defining the splice shape, use Shift+Spacebar to cycle through various corner modes. Use the Spacebar to toggle the direction of the corner. Each placement mode (except any angle) requires a start and end point.
  • When in either of the arc corner modes, hold the ',' or '.' keys to shrink or grow the arc. Hold the Shift key as you press to accelerate arc resizing.
  • Press the 1 shortcut key to toggle between placing one segment per click (the first five images below), or two segments per click (the last image in the set below). In the first mode, the hollow track segment is referred to as the look-ahead segment.
  • Use the Backspace key while in slice mode to remove the last placed slice segment.

Room Wrapping

The following Design » Rooms sub-menu commands are available that allow you to quickly change the shape of existing room objects within a design:

  • Wrap Non-Orthogonal Room Around Components
  • Wrap Orthogonal Room Around Components
  • Wrap Rectangular Room Around Components
The above commands also can be accessed from the Room Actions sub-menu when right-clicking over a room in the design space.

In each case, after launching the command the cursor will change to a crosshair and you will be prompted to select a room to modify. Position the cursor over the required room then click or press Enter. The room will change to the required shape (if not already) and will resize in order to fit its member components as defined by the limits of their bounding rectangles. Continue modifying further rooms or right-click or press Esc to exit.

When using any of the Wrap commands, if the current room is already the shape that you are trying to change it to and was created based on its member components, it will already be optimally sized (wrapped) around the components, and using the command will have no effect.
If attempting to graphically modify an object that has its Locked property enabled, a dialog will appear asking for confirmation to proceed with the edit. If the Protect Locked Objects option is enabled on the PCB Editor – General page of the Preferences dialog and the Locked option for that design object is enabled as well, then that object cannot be selected or graphically edited. Click the locked object to select it then disable the Locked property in the List panel or disable the Protect Locked Objects option to graphically edit the object.

Non-Graphical Editing

The following methods of non-graphical editing are available.

Editing via the Edit Room Definition Dialog or Properties Panel

Panel page: Room Properties

This method of editing uses the Edit Room Definition dialog and Properties panel to modify the properties of a Room object.

The Edit Room Definition dialog and the Room mode of the Properties panel    The Edit Room Definition dialog and the Room mode of the Properties panel

During placement, the dialog can be accessed by pressing the Tab key. After placement, the dialog can be accessed in the following ways:

  • Double-click on the placed room object.
  • Right-click the room object then select Properties from the pop-up menu.
You can change the units of measurement currently used in the dialog with the shortcut Ctrl+Q. The current unit of measurement is displayed in the dialog title area.
The constraints for a Room Definition rule can also be edited directly in the PCB Rules and Constraints Editor dialog (Design » Rules).

The Room mode of the Properties panel can be accessed after object placement in one of the following ways:

  • If the Properties panel is already active, by selecting the Room object.
  • After selecting the Room object, select the Properties panel from the Panels button at the bottom right of the design space, or by selecting View » Panels » Properties from the main menu.

The properties displayed in the panel reflect the settings that were used to create the selected room.

Editing via the PCB List Panel

Panel page: PCB List

The PCB List panel allows you to display design objects from one or more documents in tabular format, enabling quick inspection and modification of object attributes. Used in conjunction with appropriate filtering, it enables the display of just those objects falling under the scope of the active filter – allowing you to target and edit multiple design objects with greater accuracy and efficiency.

In the PCB List panel, the selected room object will appear as the Object Kind: Confinement Constraint Rule.

Arranging Rooms

To arrange selected rooms within the design space, the Design » Rooms » Arrange Rooms command can be used. After launching the command, the Arrange Rooms dialog will open. Use this dialog to specify how you want the rooms arranged and in what order they are to be placed. You can also specify positioning for the start point of the placement - either textually in the dialog or graphically in the workspace - as well as spacing values between adjacent rooms. After clicking OK, the selected rooms will be moved into place accordingly.

The Arrange Rooms dialog
The Arrange Rooms dialog

  • Any rooms that are currently locked in position will not be moved. If such rooms are required to be moved, unlock them first and launch the command again.
  • If a room's associated components are locked (through the room's defined constraints) to that room, those components will move with the room.

Moving Rooms To Grid

To move selected rooms to the nearest point on the applicable and modified snap grid, the Design » Rooms » Move Rooms To Grid command can be used. After launching the command, a confirmation dialog will open asking whether you want to move objects with the selected rooms. Click Yes to move the room(s) and all constituent objects to the nearest point on the applicable snap grid. Click No to move the rooms only.

Selected components that have been locked will be moved if you have chosen to include room objects in the move.

Copying Room Formats

One of the most powerful features of Rooms is the ability to copy the formatting of one Room to that of another that contains an identical set of components. The command is particularly useful when used in multi-channel designs because it allows the placement and routing made in one channel to be propagated to all other channels.

When it is required to replicate the layout for repetitive blocks of circuitry in a flat PCB design, you can use the PCB Layout Replication tool.

The command is accessible by performing the following steps:

  1. Click Design » Rooms » Copy Room Formats from the main menus.
  2. Position the cursor over the room that you wish to copy the formatting from, and click or press Enter.
  3. You will then be prompted to choose a destination room. Position the cursor over the room that you wish to copy the formatting to, and click or press Enter.
  4. The Confirm Channel Format Copy dialog opens. Use the options to define the format copying required. Format copying can be applied from the chosen Source Room to the chosen Destination Room, or from the Source Room to each of the rooms in the detected Channel Class.
  5. You can continue to select additional destination rooms or right-click to finish.
To copy a room format and apply it to other rooms, the applicable Room Definition design rules must be enabled. If you get component matching or channel offset errors when you run the Copy Room Formats command then you might have one or more of the required Room Definition design rules disabled in the PCB Rules and Constraints Editor.

Hiding Rooms

Rooms within a given document can be globally displayed, hidden, or displayed in draft mode using options on the View Options tab of the View Configuration panel.

Notes

  • Once component(s) have been assigned to a room, they move when the room is moved. To move a room without moving the components, temporarily disable the associated Room Definition rule in the PCB Rules and Constraints Editor dialog.
  • A room can be locked to prevent accidentally moving it. To lock a room, double-click on it and enable the Room Locked option in the Edit Room Definition dialog.
  • The context-sensitive right-click menu can be accessed when the cursor is over a room object and provides commands for selecting the connections in the room, routing the connections in the room using the Situs Autorouter and unrouting the room.
If you find an issue, select the text/image and pressCtrl + Enterto send us your feedback.
Note

The features available depend on your Altium product access level. Compare features included in the various levels of Altium Designer Software Subscription and functionality delivered through applications provided by the Altium 365 platform.

If you don’t see a discussed feature in your software, contact Altium Sales to find out more.

Content