Interrogating PCB Design Data with the PCB List Panel in Altium Designer

 

The PCB List panel. Use the scroll bar or extend the edges of the panel window to view all listed information.
The PCB List panel. Use the scroll bar or extend the edges of the panel window to view all listed information.

Summary

The PCB List panel allows you to display design objects from the active document in tabular format, enabling you to quickly inspect and modify object attributes. When used in conjunction with the PCB Filter Panel, it enables you to display 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.

Panel Access

  • To display the PCB List panel, click the PCB button at the bottom-right of Altium Designer when the PCB Editor is active and select the PCB List entry from the pop-up menu.
  • Alternatively, you can access the panel through the View » Workspace Panels » PCB » PCB sub-menu.
  • The panel can also be opened (and hidden) by using the Shift+F12 shortcut keys.

Panels can be configured to be floating in the editor space or docked to sides of the screen. If the PCB Filter panel is currently in a group of panels, use the PCB Filter tab located at the bottom of the panels to bring it to the front.

Content and Use

The panel is divided into two main regions:

  • filtering controls to define which objects are displayed in the panel (display scope)
  • a tabular, spreadsheet-like region listing all objects falling under the defined display scope.

Defining Panel Display Scope

Controls at the top of the panel allow you to filter which objects are displayed in the panel and also control the current mode of the panel - allowing you to enable/disable the panel's direct editing functionality:

Click on View, the left-most underlined control, to select from the following options:

  • View - configure the panel in View mode. In this mode you will only be able to use the panel for viewing object attributes. You will not be able to edit any of the attribute fields in the tabular region of the panel
  • Edit - configure the panel in Edit mode. In this mode you will be able to view and edit the attributes of design objects, directly in the tabular region of the panel.

Click on non-masked objects, the middle underlined control, to select from the following options:

  • non-masked objects - this is the default option and causes the panel to display only design objects that are not masked-out in the workspace (i.e. those objects that fall under the scope and specific query expression of the currently applied filter). This option is most effective when filtering is applied to the workspace and the associated masking highlight option is enabled
  • selected objects - this option causes the panel to display only design objects that are currently selected
  • all objects - this option cause the panel to display all design objects.

All types of objects, the right-most underlined control, allows you to control the type of objects that can be displayed. Clicking on the control will reveal a selection pop-up.

Use the pop-up to choose which object types you wish to include in the currently displayed list - either all objects or specific objects. To choose one or more specific object types, enable the Display only option and then enable the check box next to the required object(s) in the list beneath. The list will only contain those object types currently displayed in the main spreadsheet region of the panel.

When enabling specific object types for display, the control will reflect the choice by listing the enabled types, separated by commas.

Working with Filtered Objects

The main region of the panel displays all design objects passing the defined display scope for the panel, in tabular format. In addition, all defined Nets, Object Classes and Design Rules are also listed.

Object data is initially unsorted. Data may be sorted by any attribute by clicking on the header for that attribute's column. Clicking once will sort in ascending order. Click again to sort by descending order.

Displaying Workspace Selection

As you select objects in the design workspace, the corresponding entries for those objects will appear selected in the list. A selected object is distinguished in the list by the use of a non-white background for all of its cells.

Displaying Filtering Results

When a filter has been applied, based on a query expression entered into the PCB Filter panel, only those objects under the scope of the filter will be shown, provided that:

  • the Mask out option is enabled in the Objects not passing the filter area of the PCB Filter panel
  • the Display option for the PCB List panel is set to non-masked objects.

If the Select option has been enabled also, in the Objects passing the filter area of the PCB Filter panel, all filtered objects will appear selected in the list.

Using the Panel to Select Objects in the Workspace

As you select entries for design objects in the list, those objects will become selected in the design workspace. The list supports single or multiple selection, the latter using standard Ctrl+Click, Shift+Click and click-and-drag features.

Double-clicking on an entry will bring up the corresponding properties dialog for that object, from where you can make changes as required. Double-clicking on a design rule will bring up the corresponding Edit PCB Rule dialog, from where you can modify the scope and constraints for the rule. User-defined classes can only be edited with respect to their name. As such, double-clicking on a class entry will have no effect.

Editing Object Attributes

You can edit attributes of an object by editing the relevant entry in the panel. Click on a cell to focus it and then either right-click and choose Edit or click again to edit the attribute value directly. Depending on the attribute, you will either need to type a value, toggle a checkbox or select an option from a drop-down. The change will take effect once you press Enter or click outside of the field you are editing. This is one of the advantages of using the panel to edit object properties - the panel will remain open, allowing you to change attribute after attribute, as needed, without having to close and reopen a properties dialog each time.

Another advantage of using the panel for editing is that you can edit multiple objects from the one place, without having to edit, through dialogs, one object at a time. Selected objects can be of the same or differing type. Those attributes that are common to all objects in the selection will be displayed in the panel. Simply select the required cells - across all required objects - for the shared attribute you wish to modify. Then either right-click and choose the Edit command or press the F2 key (or the Spacebar). You will be able to edit the value for the chosen attribute with respect to the focused object in the selection (whose cell is distinguished by a dotted outline). Clicking outside the attribute's cell or pressing Enter will effect the change, which will subsequently be applied to all remaining objects in the selection.

By using filtering, you can apply a query (an expression for the filter) to target a specific group of objects in the design and then use the PCB List panel to edit the attributes for these multiple objects, directly.

Note: Editing is only possible if the panel is configured in Edit Mode. When the panel is configured in View Mode you will, as the name suggests, only be allowed to view object properties.

Editing Attributes with Smart Grid Paste Tools

There are two Smart Grid commands available as right-click options from the PCB List panel of the PCB editor. These commands allow you to import and create, or update, tabular data from any windows compliant tabular/spreadsheet data such as an Excel workbook or a table in a PDF document in the PCB List panel.

The Smart Grid Paste command alters the value of existing objects from pasted tabular data, and Smart Grid Insert creates new objects from the tabular data. The PCB List panel must be in the Edit mode in order to have copy and paste commands enabled.

Using Smart Grid Paste Command

There are two main ways to update attributes of design objects using the Smart Grid Paste command - updating attributes one at a time with no header data, and updating attributes as a group in one go with header data.

You have to determine whether the tabular data has the Header Row or No Header Row. These options are located at the top right of the Smart Grid Paste dialog. If the tabular data has the header row, then you can map and update multiple attributes in one go otherwise, you will have to do different attributes one by one.

For example, to change attributes as a group using the smart grid paste tool, copy the data using the Copy With Header command from the right click pop up menu from the PCB List panel and paste the tabular data including the header row in an Excel workbook. The updated tabular data from this workbook can then be pasted back into the same PCB List panel using the Smart Grid Paste command from the pop up menu. Make sure the selected entries in the PCB List correspond to the pasted tabular data; however you can always select the entries first before doing a paste.

Make sure the Header Row option on the top right of the dialog is enabled. The Smart Grid Paste dialog is then updated with the top half of the dialog representing the copied table data while the bottom half shows the proposed PCB List content. Then click the Automatically Determine Paste button to map the attributes from the Clipboard Table View to the PCB List View.

All proposed data object mappings set by the Automatically Determine Paste button can be previewed before committing the new attributes to your PCB document. Attributes that are being targeted by the Paste action are marked with a blue flag, and those whose values are changing are marked in a bold font.

You can also use Paste Column to Attribute and Undo Paste to Attribute buttons to update attributes selectively. To restore all the attributes to their original values, click on the Reset All button in this Smart Grid Paste dialog.

Likewise, if you copy the tabular data without the row header and update the tabular data in an external spreadsheet and do a smart paste back into the PCB List panel, you can only do a singular update of each attribute. That is, you use the Paste Column to Attribute and Undo Paste to Attribute buttons to update each targeted attribute and to undo this same attribute each time. The proposed changes are not committed to the PCB document until the OK button is pressed.

Using the Smart Grid Insert Command

With the Smart Grid Insert command, you can create new objects using the Smart Grid Insert dialog from the PCB List panel. You must specify the object type in your tabular data before you can successfully insert new objects in the PCB List and its associated PCB document.

The easiest way is to copy the data from the PCB List using the Copy with Header command and make additions/changes in a spreadsheet and insert the updated data back in the PCB List panel. Once the new data objects are mapped from the Clipboard View to the proposed List View in the Smart Grid Insert dialog, they are flagged with green indicators. Click OK to close this dialog and to create new objects on the PCB document.

Editing Attributes with Numeric Values

For a numerical-based attribute of a selected object, the simplest modification to that attribute's value is made by typing a new value to replace the existing one. The plus and minus operators can be used to specify the value's sign. A value entered without a specified sign is assumed to be positive. Therefore entering 20 is the same as entering +20.

You can enter specific units of measurement for a value entered. The software will convert the value into the current units defined for the document. If no units are specified, the default units set for the document will be used.

Modification Using an Expression

More advanced modification can be achieved by using an arithmetic expression. Simply select the entry for the attribute you wish to modify and type the expression that will be used to modify its value. You can enter any arithmetic expression, using any built-in arithmetic operators and functions (found in Pascal).

If you wish to use the current value for the attribute as part of the expression, you will need to make reference to this original value, either by using the full name of the attribute, or by using the exclamation character (the supported substitute for the name of the attribute currently being modified). If you wish, you may use any other attribute field name in an expression. When using attribute names, if any names contain spaces, these must be replaced by the underscore character.

To illustrate an example of using a simple expression, consider a component, the Height attribute of which is currently 200mil. If you wanted to extend this height to 500mil, you could enter the expression:
Height + 300
or, in shortened form:
! + 300
Note that the spaces are optional. When you press Enter the value will be updated to 500mil.

If instead you want to reduce the height to 100mil, you could use the subtraction operator, as illustrated by the following expressions:
Height - 100
! - 100

To illustrate use of a function, the previous expression could be re-written as:
! - sqr(10)
the result would be the same - a height of 100mil.

By using the attribute's name (or substitution character (!)) the previous expressions add to or subtract from the current value for the attribute. Without such entries in the expression, you would be setting the attribute's value to the evaluated result of the expression. For example, if the attribute name or substitution character had been left out of the previous expressions, the resulting value for the component height would have been 300mil and -100mil respectively.

Again, you can enter specific units of measurement for a value entered into an expression. The software will convert the value into the current units defined for the document. If no units are specified, the default units set for the document will be used.

By selecting multiple objects in the panel, you can change numerical attributes simultaneously using an expression. For example, you may want to adjust the height of a series of components associated with a particular region of the board, or shift components vertically or horizontally by a specific distance.

Batch Replacement of String-Based Attributes

There are times when you may want to modify a string-based attribute that is common to multiple selected objects. For example you may wish to rename the designators of selected header components from P1, P2, P3, etc, to HDR1, HDR2, HDR3, etc. To perform this type of batch replacement, the use of string substitution syntax is supported in the panel.

A string substitution entry is enclosed in braces and has the form:
{oldstring=newstring}

An entry of this form causes all occurrences of oldstring found in the attribute's value to be replaced with newstring. In the case of the designators, you would select the associated Name attribute cell for each designator, right-click and select Edit (or press F2), and then enter {P=HDR} in the active value field.

Should you wish to replace multiple, differing string portions in the same target string, type multiple substitution entries, each enclosed in its own set of curly braces. For example, consider the following free text strings placed on the PCB of a four port communications switching device, where each port provides for communication with an 8-bit peripheral device:
CommPortA_8
CommPortB_8
CommPortC_8
CommPortD_8

Now consider having modified the design to allow for communications with 32-bit external peripheral devices. Also, the customer has requested that the Comm prefix be replaced by IO. The free strings now need to be updated, which is where batch string substitution comes into play.

If the intended format of the new strings is to be IOPortx_32, where x represents the port (A, B, C or D), then you could select the String attribute for the four free strings in the panel, enter edit mode and then enter the following into the active value field:
{Comm=IO}{8=32}

The software takes this entry and effectively performs a batch substitution - substituting for the first expression, then the second.

Smart Editing of String-based Attributes

The PCB List panel offers further support for string modification through its Smart Edit feature. Simply select the cell entries pertaining to the attribute that you wish to modify, for all required objects, right-click and choose Smart Edit from the menu that appears. The Smart Edit dialog will appear.

The dialog offers two methods for performing string modification, accessed from the Batch Replace and Formula tabs respectively.

Batch Replace

This tab provides simple straightforward substitution, along the lines of the string substitution discussed previously (but without having to enter the curly braces). Click inside the From field and enter the portion of the current string that you wish to replace. Then click inside the To field and enter the string to be used as the replacement. The familiar string substitution syntax is displayed at the bottom of the tab.

For example consider the designators of three header components that currently have the prefix P, but you need to change them to have prefix HDR instead. In this case, select the Name attribute for each of the components in the panel and access the Smart Edit dialog. Then on the Batch Replace tab, enter P in the From field and HDR in the To field (the replacement string is therefore {P=HDR}). After clicking OK, the designators will be modified accordingly.

As with basic string substitution, the Batch Replace tab provides for replacement of multiple, differing string portions in the same target string. Enter the various substitutions as distinct From-To entries. Consider the previous Comms Port example (see Batch Replacement of String-Based Attributes), where strings of the form CommPortx_8 need to be changed to IOPortx_32. In this case, you would enter two distinct substitution entries on the Batch Replace tab.

Formula Tab

This tab provides for more advanced modification, allowing you to apply a specific expression to the selected string objects. The expression can include any built-in arithmetic operators and functions that apply to strings (found in Pascal). Once again, if you wish to use the current value for the attribute as part of the expression, you will need to make reference to this original value, either by using the full name of the attribute, or by using the exclamation character (the supported substitute for the name of the attribute currently being modified). When using attribute names, if any names contain spaces, these must be replaced by the underscore character. So, for example, use of the Component Comment field within a formula should be entered as Component_Comment.

Consider for example three selected memory components specified in a design, with designators U1, U3 and U5. You might want to extend the designators of these components by including some indication of their role. First select the cell entries for the Name attributes of these components. Then, using the addition operator, you could write an expression to add to the existing string value of the Name attribute. This would take the existing (original) string value and concatenate it with a specified new string, as illustrated below:
Name + '_MEM'
or, in shortened form:
! + '_MEM'
Note that the spaces are optional. After clicking OK the designators of the components will be updated to U1_MEM, U3_MEM and U5_MEM respectively.

To illustrate the use of string-based functions consider the Copy function, which can be used to take a portion of an original string and place it within an expression to create a new string. Take again the Comms Port example (see Batch Replacement of String-Based Attributes), where strings of the form CommPortx_8 need to be changed to IOPortx_32. In this case you could select the cell entries for each object's String attribute, access the Smart Edit dialog and write the following expression on the Formula tab:
'IO' + Copy(String,5,6) + '32'
or, in shortened form:
'IO' + Copy(!,5,6) + '32'

Right-Click Menu

The right-click pop-up menu for the main list area of the panel provides the following commands:

  • Edit - allows you to edit single or multiple selected objects with respect to a particular attribute in the list. When editing a single object, the command becomes available when an attribute cell entry for a design object is editable. After launching the command you will be able to edit the value in the selected cell directly. Click outside the cell or press ENTER to effect the change.
    When editing multiple objects simultaneously, the command will only become available if the chosen attribute is editable for all objects in the selection. After launching the command you will be able to edit the value in the focused cell directly. Click outside the cell or press ENTER to effect the change across all cells in the selection. (See Editing Object Properties)
  • Smart Edit - provides access to the Smart Edit dialog, from where you can specify the criteria used to perform batch replacement of string-based attributes. (See Smart Editing of String-Based Attributes)
  • Copy - copies the selected cells in the list to the Windows clipboard, for use in other applications
  • Paste - allows you to paste the current content of the Windows clipboard into the list. Combined with the Copy command, this enables you to copy cell content out to another spreadsheet application, make modifications and then paste the modified data back into the PCB List panel
  • Zoom Selected - zooms and centers (where possible) selected objects in the design editor window
  • Apply Filter - applies filtering based on the selected object(s) in the list. The object(s) will be displayed in the design editor window in accordance with the Mask / Dim / Normal, Select and Zoom options, defined in the PCB Filter panel. The object(s) will be selected, irrespective of the status of the Select option in the PCB Filter panel. Only those objects in the selection will be displayed in the list
  • Clear Filter - clears the currently applied filter and re-populates the list with all objects in the design
  • Remove Non-Selected - remove all unselected objects from the list
  • Report - generate a report containing all objects displayed in the list. After launching the command, the Report Preview dialog will appear from where you can view, print and export the report in various file formats. The report will contain only data that is visible in the panel
  • Report Selected - generate a report containing only those objects that are currently selected in the list. After launching the command, the Report Preview dialog will appear from where you can peruse, print and export the report in various file formats. The report will contain only data that is visible in the panel
  • Show Component Children - add object entries to the list with respect to the primitives that constitute components
  • Show Net Children - add object entries to the list with respect to all net objects that constitute nets in the design
  • Show Polygon Children - add object entries to the list with respect to the primitives that constitute polygons
  • Advanced (sub-menu) - this sub-menu has commands that allow you to switch to owner components, nets or polygons from selected child primitives or members belonging to those group objects. In each case, filtering will be applied to each owner object affected and the list will display only those owner objects and their primitives/members, if the corresponding option to show children for an object is enabled
  • Select All - select all objects in the list. The corresponding design objects will become selected in the main design workspace
  • Select Column - select all cells in the column associated with the currently selected cell. All corresponding objects will
    become selected in the design workspace. This command is particular useful when editing a particular attribute of multiple objects.
  • Choose Columns - provides access to the Columns Setup dialog, from where you can determine which of the available attribute columns are displayed in the panel and the order in which the columns appear.
    By default, the Display Mode for each attribute will be set to Automatic. In this mode, an attribute column will be automatically displayed if it is common to all design objects currently displayed in the panel. Clicking on the mode will pop-up options that allow you to force the display of the attribute or hide it completely.

List Shortcuts

The following table summarizes key shortcuts that are available when using the main list region of the panel:

Arrow Keys

Shift focus to next cell in direction of arrow key

Left-Click+Drag

Multi-select in direction of mouse movement

Ctrl+Click

Multi-select (non-sequential)

Shift+Click

Multi-select (sequential)

F2 or Spacebar

Edit selected cell

Enter

Finish editing current cell and enter edit mode for cell beneath

Ctrl+C (or Ctrl+Insert)

Copy

Ctrl+V (or Shift+Insert)

Paste

Page Up

Jump selection to top of visible list area

Page Down

Jump selection to bottom of visible list area

Mouse-wheel

Pan up or down

Tips

  • The Show Children-based commands are particularly useful when a small selection of parent objects have been previously selected and filtered.
  • When any filtering currently applied to the workspace is cleared, the option to display non-masked objects in the panel will produce the same result as choosing the option to display all objects.
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