Placement Design Rule Types Available for PCB Layout in Altium Designer

Created: May 9, 2023 | Updated: May 9, 2023
Applies to Altium Designer versions: 23 and 24

Parent page: PCB Design Rule Types

The design rules of the Placement category are described below.

The Placement category of design rules.
The Placement category of design rules.


Room Definition

Default Rule: not required

This rule can be used in the following ways:

  • To specify a rectangular or polygonal region on the top side or the bottom side of the board, where components are either allowed in, or not allowed in.
  • To define a named region (area) on the board, where the named region is then used to scope other design rules. When used in this way the room simply defines an area of the board. To restrict it in other ways, such as to a specific layer, include that in the Query of the rule. There is an example of a Routing Width rule that uses this approach in the image in the note, shown below.
Refer to the Working with Rooms on a PCB page to learn more about Rooms.
Constraints

Default constraints for the Room Definition rule
Default constraints for the Room Definition rule

  • 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. If you attempt to move a component within a room when this option is enabled, as you move the component the entire room and all components within it, will also move.
  • 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 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 side of the board the room is drawn on. The objects that the room contains do not need to be on the same layer, the condition of belonging in or not belonging in the room is established by the rule Query.
  • 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.
Rule Application

Online DRC and Batch DRC.

Notes
  • A component can be scoped by multiple Room Definition rules. In this case, all rules are obeyed. Rule contentions are not possible.
  • A room can only be placed 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 Cursor-Snap System.
  • The shape of a room can be edited graphically, or in the Properties panel when the room is selected. Click on a room to select it, then click and drag on a corner or edge vertex to resize it graphically. 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.

    Javascript
  • As well as defining a room by clicking the Define button in the design rule, rooms can also be created/edited using the various commands available from the Design » Rooms sub-menu. When placing a room in the design using commands from the Design » Rooms sub-menu, the room 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.
  • 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 to contain or exclude components, a room can also be used to define the scope of another rule, such as Clearance, Height, Routing Width, Solder Mask Expansion, Power Plane Connections, and so on. As the room is to be used as an object rather than a rule, you can disable the rule, or set the query (rule scope) to False, as shown in the image below. 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 be used as a Query for another rule by referring to it by its Name, as shown above.A Room can be used as a Query for another rule by referring to it by its Name, as shown above.

    Note that within the room, the routing width, the plane connection style, and the solder mask expansion have different values from the values outside of the room.Note that within the room, the routing width, the plane connection style, and the solder mask expansion have different values from the values outside of the room.


Component Clearance

Default Rule: required 
?At least one rule of this type must exist. Disable the rule if not required.

This rule specifies the minimum distance that components can be placed from each other. Component clearance includes the clearance between 3D models included as part of the component footprint. In the absence of 3D models, or when the Check clearance by component boundary option is enabled in the rule constraints, each component's selection area is used instead.

The default behavior for the component selection area, is the area defined by the combined geometries on the Courtyard Layer-Type + the Silkscreen + 3D Body objects + Copper layers (strings are excluded). This is referred to as the By Graphic selection mode. If required, the component selection area can be switched from the default By Graphic mode, to the By Layer mode. In the By Layer mode, the first layer containing geometries is used, in the following order: Courtyard (Layer-Type, not Layer Name); 3D Body; Silkscreen + Copper Layers; Copper Layers. The mode is chosen by setting the value of the PCB.ComponentSelection Advanced Setting. Learn more about the component selection area and the available selection modes. Learn more about Mechanical Layers and the Courtyard Layer Type.

Component clearance is calculated using accurate 3D meshing to define the shape and contour for the component through its associated 3D model. These can be embedded true 3D models, or extruded 2D shapes. Using 3D bodies provides the greatest accuracy when it comes to clearance checking, particularly in the vertical sense and in the context of complex component shapes.

In the description above, the term 3D model means the actual shape of the included true 3D model is used. True 3D models are stored in a 3D Body object, automatically sized to the smallest rectangular prism that encloses that model. The term 3D Body refers to the rectangular prism that encloses the true 3D model, not the shape of the true 3D model that it holds. 

The Component Clearance rule does not check for clearance violations between 3D bodies and the board surface.
Constraints

Default constraints for the Component Clearance rule
Default constraints for the Component Clearance rule

  • Vertical Clearance Mode – two modes for specifying vertical clearance are available:
    • Infinite – clearance checking is performed using a value representing infinity. This means that any components placed above or below will be in violation. An example of use would be a board that has an adjustment mechanism that must remain accessible. Using this rule on that component will cause a violation against any components that protrude into the area above or below the component.
    • Specified – clearance checking is performed using the exact shape defined by the component 3D bodies or component footprint properties. When using 3D bodies, it is possible to have an acceptable overhang between one component over another, provided they are not in violation. With this mode enabled, the following constraint becomes available:
      • Minimum Vertical Clearance – the value for the minimum permissible clearance, in the vertical sense, between placed components in the design.
  • Minimum Horizontal Clearance – the value for the minimum permissible clearance, in the horizontal plane, between placed components in the design.
  • Show actual violation distances – enable this option to show lines between the points of greatest violation between components. The distance of the line is displayed and can be useful in calculating the distance required to move an object to resolve the violation.

    Enabling the Show actual violation distances option may reduce performance on some computer systems.
  • Do not check components without 3D body
    • If this option is not enabled, for components that do not have a 3D body, the component's selection bounding box defines its area in the X-Y plane, and the component Height attribute is used for clearance checking in the vertical (Z) direction.
    • If this option is enabled, all components that do not include a 3D Body are excluded from being clearance checked by this rule.
  • Check clearance by component boundary
    • When this option is enabled - the component boundary is used for clearance checking. The component boundary is defined by the component selection bounding box. The default selection bounding box is the by graphic mode, which means the geometries on the Courtyard Layer Type, the Silkscreen, 3D Body objects and Copper layers are combined to define the envelope (strings are excluded).
    • When the option is disabled - if the component does not include any 3D Body objects, the component selection bounding box is used. If the component does include a 3D Body, then the exact shape of the 3D model is used for clearance checking without regard to objects on any other layer. Exact shape detection applies to all 3D shapes, including imported 3D models, as well as extruded, cylindrical and spherical 3D Body objects. 

      If your design requires precision clearance checking based on the shape of the included 3D models, such as imported STEP models whose envelopes collide but whose exact shapes do not (they fit within each other), you can achieve this by disabling this option. In this situation, only the 3D Body objects are used for clearance checking, so it is recommended that you define specific design rules that target only those components that require this type of checking. The images below show this for components that include 3D STEP models and also for components defined by multiple extruded 3D Body objects.

      Javascript ID: CheckByCompBoundary

      If components must fit within each other, define a rule to specifically target those components and disable the Check clearance by component boundary option, so that the exact shapes of the 3D objects are used.

Rule Application

Online DRC and Batch DRC.

Notes
  • An extruded (simple) 3D body is a polygonal shaped object that can be placed in a library component or a PCB document, on any enabled mechanical layer. In a component footprint, it can be used to specifically define the physical size and shape of a component in the X, Y and Z-axes.
  • Multiple 3D body primitives may be used to define shapes of any complexity. This can prove especially useful in the vertical sense, as it allows you to vary the height of a component in different regions of that component.
  • To allow collision of the components scoped by a Component Clearance design rule (i.e. to not report component collision during design rule check), set both Minimum Horizontal Clearance and Minimum Vertical Clearance option values to 0.

Component Orientations

Default Rule: not required

The rule is not currently observed by the DRC tool.


Permitted Layers

Default Rule: not required

This rule specifies the layers on which components can be placed.

Constraints

Default constraints for the Permitted Layers rule
Default constraints for the Permitted Layers rule

Permitted Layers - the layers permitted to be used when placing components. The following layer options are available:

  • Top Layer - allow component placement on the top layer.
  • Bottom Layer - allow component placement on the bottom layer.
Rule Application

Batch DRC.

Note

The rule acts as a test when performing a Batch DRC, to ensure components - targeted by the query expression of the rule's scope - are being placed only on a permitted layer. Parameters specified for components on the schematic, and that have been brought across into footprints on the PCB, can be used to great effect for this very purpose. For example, to check that components that do not support wave soldering are not placed on the bottom layer, a rule of this type can be defined. If we consider a component parameter, SupportsWaveSolder, has been defined for components and brought across as parameters of the footprints in the PCB, then the rule scope might be:

CompParameterValue('SupportsWaveSolder') <> 'Yes'

and only the Top Layer constraint would be permitted, with the Bottom Layer constraint disabled.


Nets to Ignore

Default Rule: not required

The rule is not currently observed by the DRC tool.


Height

Default Rule: required 
?At least one rule of this type must exist. Disable the rule if not required.

This rule specifies height restrictions for components placed within the design.

Constraints

Default constraints for the Height rule
Default constraints for the Height rule

  • Minimum - the value for the minimum permissible component height.
  • Preferred - the value for the preferred component height.
  • Maximum - the value for the maximum permissible component height.
Rule Application

The Preferred setting is obeyed when displaying the board in 3D. The Minimum and Maximum settings are obeyed by the Online DRC and Batch DRC.

Notes
  • The height of a component is defined by:
    • If the component does not include a 3D body, the component's Height property is used.
    • If the component includes a 3D body, the overall height of that 3D body object is used.
  • A component class can be created and used in the scope definition for a height rule, in order to flag any member components whose height violates the specified height constraint criteria of the rule.
Found an issue with this document? Highlight the area, then use Ctrl+Enter to report it.

Contact Us

Contact our corporate or local offices directly.

We're sorry to hear the article wasn't helpful to you.
Could you take a moment to tell us why?
200 characters remaining
You are reporting an issue with the following selected text
and/or image within the active document: