Working with the Room Definition Design Rule on a PCB in Altium Designer
Created: March 24, 2017 | Updated: January 07, 2021
| Applies to versions: 18.0, 18.1, 19.0, 19.1, 20.0, 20.1 and 20.2
Now reading version 20. For the latest, read: Working with the Room Definition Design Rule on a PCB in Altium Designer for version 21
Rule Category: Placement
Rule Classification: Unary
Summary
This rule specifies a rectangular region where components are either allowed in, or not allowed in.
Constraints
- Room Locked - allows you to lock the room in its current position within the design, preventing accidental movement either manually or by the Autoplacers. If you attempt to move the room when it has been locked, a warning dialog will appear asking whether you wish to go ahead with the move. The locked status of the room remains in force after such a manual-override movement.
- Components Locked - allows you to lock the position of components arranged within, and associated to, the room.
- Define button - enables you to define the area and location of the room. After clicking, you will return to the main design window, the cursor will change to a cross-hair and you will essentially enter room placement mode. Define the rectangular or polygonal room as required and at the location required. The component membership for the room has to be defined afterwards, it is not created automatically if the room area is defined around placed components in the design.
- x1 and y1 - display the coordinates for the location of the lower-left corner of the room's bounding rectangle. These fields are non-editable; if placing the room from within the PCB Rules and Constraints Editor dialog, the Define button must be used.
- x2 and y2 - display the coordinates for the location of the upper-right corner of the room's bounding rectangle. These fields are non-editable; if placing the room from within the PCB Rules and Constraints Editor dialog, the Define button must be used.
- Layer - defines which layer the room can be placed on.
- Confinement Mode - specifies whether the components targeted by the scope (Full Query) of the rule are to be kept Inside the room or kept Outside of the room.
How Duplicate Rule Contentions are Resolved
All rules are obeyed.
Rule Application
Online DRC and Batch DRC.
Tips
- As well as defining a room by clicking the Define button here in the design rule, rooms can also be created/edited using the various commands available from the Design » Rooms sub-menu.
- When placing a rectangular or polygonal room in the design (using commands from the Design » Rooms sub-menu), it can either be placed empty and components associated at a later stage, or it can be placed around components in the design, automatically associating them to the room:
- When an empty room is placed in the design, components required to be placed in the room should be grouped together by creating a specific component class (Design » Classes). A Room Definition rule will automatically be created and assigned to the room, with an initial scope (Full Query) of
All
. Edit this query to target the specific component class previously defined. The components can then be moved to the room by running the Tools » Component Placement » Arrange Within Room command. - By placing a room around one or more components, so that they fall completely within its boundaries, the components will automatically be associated to the room. The scope (or query) for the room's definition rule depends on whether all 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 have one or more mutual component members between those classes.
- When an empty room is placed in the design, components required to be placed in the room should be grouped together by creating a specific component class (Design » Classes). A Room Definition rule will automatically be created and assigned to the room, with an initial scope (Full Query) of
- Use the Create Room from selected components-based commands (Design » Rooms sub-menu) to automatically generate a Rectangular, Orthogonal or Non-Orthogonal shaped room, whose members are the selected components. A component class is automatically defined to include the selection. A room is then created, the Room Definition rule of which is defined to associate the created component class. The room will be sized accordingly, in order to fit all components in the selection, as defined by the limits of their bounding rectangles.
- Once components 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.
- 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. As 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:
- TouchesRoom(RoomName) - use to find objects that are completely or partially within the room.
- WithinRoom(RoomName) - use to find objects that are completely within the room.
- A room can only be moved and located graphically. To position a room at a specific location, place suitable Vertical, Horizontal, or Point (Snap) Guides, and enable snapping to Guides in the Properties panel (in Board mode). Learn more about Guides and configuring the PCB Grids System.
- The shape of a room can be edited graphically, it cannot be edited via a dialog or a panel. Click on a room to select it, then click and drag on a corner or edge vertex to resize it. To edit a polygonal room, or perform polygonal-type edits on a rectangular room, use the Design » Rooms » Edit Polygonal Room Vertices command (or right-click on the room and run the command from the Room Actions sub-menu). Standard polygonal object editing techniques are used, including Shift+Spacebar to cycle through the vertex editing modes (Miter, Incurvate, Move). Keep an eye on the Status bar or Heads up display to check the current mode.
- If you need a complex room shape based on precise locations, the shape can be created as an outline by placing a sequence of lines (and arcs), and then selecting and converted this outline to a room by running the Tools » Convert » Create Room from Selected Primitives command. Note that the end points of adjoining track/arc segments must coincide for this command to correctly detect the shape. Hover the cursor over the image below to see the room.