Interrogating Schematic Design Data with the SCH List Panel in Altium Designer
Parent page: Working with Panels
Function
The SCH List panel allows you to display design objects from one or more documents in tabular format, enabling you to quickly inspect and/or modify object attributes. When used in conjunction with the SCH Filter panel 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
The panel can be accessed from the schematic editor in the following ways:
- Click the Panels button at the bottom-right of the workspace then select SCH List from the pop-up menu.
- Click View » Panels » SCH List from the main menus.
- Click Shift+F12.
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 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 the left highlighted control and choose from the following options:
- View - this mode allows you only to view the object attributes. You will not be able to edit any of the attribute fields.
- Edit - this mode allows you to view and edit the attributes of design objects.
Click on the next highlighted control then choose from the following options:
- non-masked objects (default) - select this option 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 - select this option to display only design objects that are currently selected.
- all objects - select this option to display all design objects.
Click on the next highlighted control and choose from the following options:
- current document - only display target objects from the active schematic document in the design editor window.
- open documents - display target objects from all open schematic documents regardless of their parent project.
- open documents of the same project - display target objects from all open schematic documents that are source documents of the same parent project.
The right-most highlighted control allows you to determine the type of objects that can be displayed.
Click on the control to reveal a selection pop-up. Use the pop-up to choose which object types you want 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 checkbox next to the required object(s) in the list. The list will only contain those object types currently displayed in the 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 that pass the defined display scope for the panel, in spreadsheet form.
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 in 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.
Displaying Filtering Results
When a filter has been applied based on a query expression entered into the SCH Filter panel, only those objects under the scope of the filter will be shown provided that:
- The Mask out option is enabled in the Filter area of the SCH Filter panel.
- The Display option for the SCH List panel is set to non-masked objects.
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 using standard Ctrl+Click, Shift+Click and click-and-drag features.
Double-click on an entry to open the corresponding Properties panel for that object in which you can make changes as needed.
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 many attributes as needed without having to close and reopen the Properties panel each time.
Another advantage of using the panel for editing is that you can edit multiple objects from one place without having to edit through the Properties panel 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. Select the required cells across all required objects for the shared attribute you want 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. 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 then use the panel to edit the attributes for these multiple objects.
Editing Attributes with the Smart Grid Tools
There are two Smart Grid commands available as right-click options from the panel. 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. The Smart Grid Paste command alters the value of existing objects from pasted tabular data. Smart Grid Insert creates new objects from the tabular data. The panel must be in the Edit mode in order for the Smart Grid commands to be enabled.
Using Smart Grid Paste Command
There are two ways to update attributes of design objects using the Smart Grid Paste command: one at a time with no header data and updating as a group with header data.
You need to determine whether the tabular data has a 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, you can map and update multiple attributes 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, you copy the data using the Copy With Header command from the right-click menu from the SCH List panel then 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 SCH List panel using the Smart Grid Paste command. Make sure the selected entries in the SCH List panel 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 SCH List panel content. Click the Automatically Determine Paste button to map the attributes from the Clipboard Table View region to the Schematic List View region.
All proposed data object mappings set by the Automatically Determine Paste button can be previewed before committing the new attributes to your schematic. 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 also can use the Paste Column to Attribute and Undo Paste to Attribute buttons to selectively update attributes. To restore all the attributes to their original values, click the Reset All button in the Smart Grid Paste dialog.
Likewise, if you copy the tabular data without the row header and update the tabular data in an external spreadsheet then do a smart paste into the SCH 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 schematic 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 SCH List panel. You must specify the object type in your tabular data before you can success fully insert new objects in the SCH List panel and its associated schematic document.
The easiest way is to copy the existing object data from the SCH List panel using the Copy with Header command, make additions/changes in a spreadsheet then insert the updated data into the SCH List panel. Once the new data objects are mapped from the Clipboard Table View region to the proposed Schematic List View region in the Smart Grid Insert dialog, they are flagged with green indicators. Click OK to close the dialog and to create new objects on the schematic document.
Editing Attributes with Numeric Values
For a numerical-based attribute of an 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. Select the entry for the attribute you want 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 want 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 want, 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 pin, the Length attribute of which is currently 30. If you wanted to extend this length to 45, you could enter the expression:
Length + 15
or, in shortened form:
! + 15
Note that the spaces are optional. When you press Enter, the value will be updated to 45.
If instead you want to shorten the pin to a length of 20, you could use the subtraction operator as illustrated by the following expressions:
Length - 10
! - 10
To illustrate use of a function, the previous expression could be rewritten as:
! - sqrt(100)
the result would be the same - a length of 20.
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 pin length would have been 15 and -10.
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 length of a series of component pins 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 in the workspace. For example, you may want to rename selected data bus net label objects from D1, D2, D3
, etc., to Data1, Data2, Data3
, 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 data bus net labels, you would select the associated Text attribute cell for each net label, right-click then choose Edit (or press F2), then enter {D=Data}
in the active value field.
If you want 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 net labels, associated to the output wiring of a WB_PRTIO component, configured to have four, 8-bit I/O ports:
XPort8A_Out[7..0]
XPort8B_Out[7..0]
XPort8C_Out[7..0]
XPort8D_Out[7..0]
Now consider having placed a second WB_PRTIO component configured to have four, 32-bit I/O ports. Instead of placing individual net labels of a similar fashion on each output wire of each port in this second device, you could select all four of the above net labels, copy them, paste them onto the corresponding wires of the new port device then rename them. It is in this last operation that batch string substitution comes into play.
If the intended format of the new net labels is to be YPort32x_Out[31..0]
, where x represents the port (A, B, C or D), then you could select the Name attribute for the four net labels in the panel, enter edit mode then enter the following into the active value field:
{X=Y}{8=32}{7=31}
The software takes this entry and effectively performs a batch substitution - substituting for the first expression, then the second, and so on.
Smart Editing of String-based Attributes
The SCH List panel offers further support for string modification through its Smart Edit feature. Select the cell entries pertaining to the attribute that you want to modify for all required objects, right-click then choose Smart Edit from the menu that appears. The Smart Edit dialog will open.
The dialog offers two methods for performing string modification accessed from the Batch Replace and Formula tabs.
Batch Replace Tab
This tab provides 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 want 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 pins of a component that have the prefix B and you need to change them to the prefix A instead. In this case, select the Pin Designator attribute for each of the pins in the panel then access theSmart Edit dialog. On the Batch Replace tab, enter B in the From field and A in the To field (the replacement string is therefore {B=A}
). After clicking OK, the pin 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 WB_PRTIO example, where strings of the form XPort8x_Out[7..0]
need to be changed to YPort32x_Out[31..0]
. In this case, you would enter three 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 want 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. For example, use of the Component Designator field within a formula should be entered as Component_Designator
.
Consider, for example, three 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 Component Designator attributes of these components. Then, using the addition operator, you could write an expression to add to the existing string value of the Component Designator attribute. This would take the existing (original) string value and concatenate it with a specified new string as illustrated below:
Component_Designator + '_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.
To illustrate the use of string-based functions consider the Copy function that can be used to take a portion of an original string and place it within an expression to create a new string. Using the WB_PRTIO example, where strings of the form XPort8x_Out[7..0] need to be changed to YPort32x_Out[31..0], you could select the cell entries for each net label's Text attribute, access the Smart Edit dialog then write the following expression on the Formula tab:
'Y' + Copy(Text,2,4) + '32' + Copy(Text,7,6) + '31..0]'
or, in shortened form:
'Y' + Copy(!,2,4) + '32' + Copy(!,7,6) + '31..0]'
Other Formula Examples:
Change the middle character of the following two component designators to X:
CAB
CYB
Copy(!, 1, 1) + 'X' + Copy(!, 3, 1)
If the replacement is more complex, such as, if the parts of the string have varying lengths, use the Length command to calculate the values for the starting position and amount of characters as shown below.
The following component designators have a varying length middle part:
CAAAAAB
CYYYB
- Replace the entire middle part with a single X:
Copy(!, 1, 1) + 'X' + Copy(!, Length(!), 1)
- Replace the last character of the middle part with an X:
Copy(!, 1, Length(!)-2) + 'X' + Copy(!, Length(!), 1)
Right-click Menu
The right-click menu for the main list area of the panel provides the following commands:
- Switch to View/Edit Mode - click to toggle between View and Edit mode.
- Edit - 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 simultaneously editing multiple objects, the command will become available only 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.
- Smart Edit - provides access to the Smart Edit dialog in which you can specify the criteria used to perform batch replacement of string-based attributes.
- Copy - copy the selected cells in the list to the Windows clipboard for use in other applications.
- Copy with Header - copy tabular data including the header row.
- Paste - paste the current content of the Windows clipboard into the list. Combined with the Copy command, Paste enables you to copy cell content out to another spreadsheet application, make modifications then paste the modified data back into the SCH List panel.
- Smart Grid Paste - click to open the Smart Grid Paste dialog to change the value of existing objects from pasted tabular data. The SCH List panel must be in Edit mode to access this command.
- Smart Grid Insert - click to open the Smart Grid Insert dialog to create new objects from the tabular data. The SCH List panel must be in Edit mode to access this command.
- Show Children - add object entries to the list with respect to the primitives that constitute group objects (e.g., Parts).
- Zoom Selected - zooms and centers (where possible) the selected objects in the main workspace.
- Report - generate a report containing all objects displayed in the list. After launching the command, the Report Preview dialog will open in which 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 open in which you can view, print and export the report in various file formats. The report will contain only data that is visible in the panel.
- Select All - select all objects in the list. The corresponding design objects will become selected in the main workspace.
- Select Column(s) - select all cells in the column(s) associated with the currently selected cell(s). All corresponding objects will become selected in the design workspace. This command is particular useful when editing a particular attribute of multiple objects.
- Select Row(s) - select all cells in the row(s) 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 - select to open the Columns Setup dialog in which you can select the available columns that are displayed in the panel and the order in which the columns appear. By default, the Display Mode for each attribute is 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. Click on the mode to open options that allow you to force the display of the attribute or hide it completely.
Panel 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) |
Spacebar or F2 |
Edit selected cell |
Enter |
Finish editing current cell and enter edit mode for the cell below |
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
- Press Shift + F12 to toggle the visibility of the panel in the workspace.
- 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.