Altium Designer provides a range of editing tools and capabilities that have been designed to help with making large-scale edits to a design. The main tools for large-scale or global edits in Schematic, Schematic Symbol, PCB and PCB Footprint editors are the corresponding Filter panel, List panels and Find Similar Objects capabilities.
The process of editing multiple items in Altium Designer involves three steps:
With this editing paradigm in mind, Altium Designer offers a range of different ways to select, inspect, and edit multiple objects. Each method has its strengths and by having an understanding of how they work, you are equipped to choose the method that is most applicable to your specific editing challenge.
Objects can be selected in a variety of ways and they all fall into two categories:
The attributes of objects can be inspected or viewed in a variety of ways:
Similarly, objects can be edited in different ways:
To edit all selected objects, open the Properties panel by clicking the Panels button, then choose Properties. To edit only the last object selected, right-click and then choose Properties.
Examples of viewing and editing properties of polygon pours selected in a PCB document directly through the Properties panel or indirectly through the PCB List panel.
The Properties panel has the ability to modify data strings using formulas in the schematic and PCB editors. Formulas and expressions offer a convenient method of modifying attribute parameters of multiple selected objects to change their location or string-based values such as the Designator and Comment. This allows 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). 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 .
Some parameter string fields also provide access to the Smart Edit dialog when multiple objects are selected, which is opened from the associated button.
The Properties 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.
Masking is a way of explicitly removing an object's eligibility for selection and/or editing. It can be faster to first mask out what is not required instead of selecting what is required.
Consider a design where all vias sitting under a specific BGA device need to have their diameter changed. One way to perform this operation would be to run a query that masks out all non-via objects on the design, then use the Edit » Select » Inside Area menu command to draw a rectangle around the BGA device to select the vias to be targeted.
Masked objects appear faded, where the selected object passes the applied filter and is displayed normally, with all other design objects faded in gray. The level of fading can be adjusting using the Dimming options in the Highlight Methods region of the System - Navigation page of the Preferences dialog.
The current selection can be cleared in the following ways:
The following selection-based commands are available from the Edit » Select sub-menu.
Selection is not cumulative for most of these commands including Net. When a new item is selected, the previous object will become deselected. Press the Spacebar to accumulate selected items.
All currently selected objects will be deselected when using this command unless the Click Clears Selection option is disabled on the PCB Editor – General page of the Preferences dialog.
Various de-selection commands are available from the Edit » Deselect sub-menu, including deselection of all selected objects, all selected objects inside or outside of a user-defined area, all selected objects on the current layer, and all selected free objects.
The Schematic, Schematic Symbol, PCB and PCB Footprint editors provide access to List panels (SCH List, SCHLIB List, PCB List and PCBLIB List panels, respectively) that display design objects in tabular format, enabling you to quickly inspect and/or modify object attributes. When used in conjunction with the corresponding 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. Objects do not need to be selected in order for them to be displayed (and edited) in a List panel.
In addition to the main ways to access a panel (the Panels button at the bottom-right of the design space and the View » Panels sub-menu from the main menus), you can use the Shift+F12 shortcut key to toggle the visibility of the List panel on and off in the corresponding editor.
The List panels are divided into two main regions:
Controls at the top of the panel allow you to filter which objects are displayed in the panel and also define the current mode of the panel, allowing you to enable/disable the panel's direct editing functionality.
Use the first field to choose the List panel mode. Click it and choose from the following options:
Click on the next highlighted control to choose from the following options:
When any filtering currently applied to the design space 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.
This control is available in the SCH List, SCHLIB List, and PCBLIB List panel and allows you to select the documents/components from which object attributes should be displayed in the panel (the PCB List panel always displays design objects from the active PCB document). Click on the next highlighted control to choose from the following options:
The right-most highlighted control allows you to determine the type of objects that can be displayed in the tabular region. 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 (Display all objects) or specific objects. To choose one or more specific object types, enable the Display only option, then enable the checkbox next to the required object(s) in the list beneath. The list will only contain those object types currently displayed in the tabular region of the panel.
The No option in the PCB List panel refers to other object primitives that are featured in the PCB document but are not denoted in this list, such as Layer Stack Table and Drill Table objects.
When enabling specific object types for display, the control will reflect the choice by listing the enabled types, separated by commas.
The main tabular 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.
As objects are selected in the panel, those objects will appear distinguished in the list by the use of a blue background for all of its cells. The list supports single or multiple selections, the latter using standard Ctrl+Click, Shift+Click, and click-and-drag features.
Design objects selected in the List panel become selected in the design space. Conversely, as you select objects in the design space, the corresponding entries for those objects will appear selected in the list.
Double-clicking on an entry will open the Properties panel for that object, in which you can make changes as required.
In the PCB List panel, user-defined classes can only be edited with respect to their name. As such, double-clicking on a class entry will have no effect.
When a filter has been applied based on a query expression entered into the corresponding Filter panel, only those objects under the scope of the filter will be shown, provided that:
If the Select option has also been enabled in the Objects passing the filter region (SCH Filter, SCHLIB Filter, PCBLIB Filter) or in the Matching region (PCB Filter, PCBLIB Filter) of the Filter panel, all filtered objects will appear selected in the list.
Editing is only possible if the panel is in Edit mode. When the panel is in View mode, you will be able to only view object properties.
You can edit attributes of an object by editing the relevant entry in the List 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 need to type a value, toggle a checkbox, or select an option from a drop-down. The change will take effect after pressing Enter or clicking outside of the cell being edited. 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.
Another advantage of using the panel for editing is that multiple objects can be edited from one place. Selected objects can be of the same or differing types. 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 to be modified. Then either right-click and choose the Edit command or press the F2 key (or the Spacebar). 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/library and then use the List panel to edit the attributes for these multiple objects directly.
There are two Smart Grid commands available from the panel's right-click menu. These commands allow any Windows-compliant tabular data such as an external table (e.g., PDF) or a spreadsheet (e.g., Microsoft Excel or Google Sheets) to be used to either update the values of existing objects in a List panel (Smart Grid Paste, shortcut: Shift+Ctrl+V) or insert newly-created objects (Smart Grid Insert, shortcut: Ctrl+Ins).
The List panel must be in the Edit mode in order to have copy and paste commands enabled.Respective dialogs (Smart Gride Paste and Smart Grid Insert) for these commands are used to map the external tabular data coming in on the Windows clipboard to the attributes of objects in the List panel, providing a preview of what changes will be made.
Before opening the Smart Grid Paste dialog, copy the required tabular data and select the List panel content you would like to update. The top half of the dialog (the Clipboard Table View region) will contain the table information from the clipboard. The selected tables from the List panel fill the bottom half of the dialog (the List View region). Information moved into this region using the provided controls will be saved into the List panel after clicking OK to exit the dialog.
There are two 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 operation 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 in one operation. Otherwise, you will have to do different attributes one by one.
Use the following controls to copy information from the Clipboard Table View into the List View:
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 menu from the 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 List panel using the Smart Grid Paste command from the pop-up menu. Make sure the selected entries in the 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 List panel content. Click the Automatically Determine Paste button to map the attributes from the Clipboard Table View region to the 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 document(s). Attributes that are being targeted by the Paste action are marked with a blue flag (the icon), 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 back into the 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 document until the OK button is pressed.
With the Smart Grid Insert command, you can create new objects using the Smart Grid Insert dialog from the List panel. You must specify the object type in your tabular data before you can successfully insert new objects in the List panel and its associated document. When the Smart Grid Insert dialog is opened, the List View region of the dialog is populated with information to be added to the List panel. Once the new data objects are mapped from the Clipboard Table View region to the proposed List View region, they are flagged with green indicators (the icon). Click OK to close the dialog and to add information from the List View region into the List panel and create new objects in the document.
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.
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:
or, in shortened form:
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:
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. Altium Designer 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.
There are times when you may want to modify a string-based attribute that is common to multiple selected objects in the design space. 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:
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 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:
Altium Designer takes this entry and effectively performs a batch substitution – substituting for the first expression, then the second, and so on.
A List panel offers support for string modification through its Smart Edit feature. Select the cell entries pertaining to the attribute to be modified for all required objects, right-click, then choose Smart Edit from the context menu. This opens the Smart Edit dialog. The dialog offers two methods for performing string modification accessed from the Batch Replace and Formula tabs.
The Batch Replace 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. Note that the string substitution that is about to be performed is displayed at the bottom of the tab.
For example, consider pins of a component that currently 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 open the dialog. On the Batch Replace tab, enter B in the From field and A in the To field (the replacement string is therefore ). 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 (see Batch Replacement of String-based Attributes), 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, as shown in the image above.
The change is only applied to the characters entered into the From field. Any other characters in each targeted string, such as an incrementing numerical identifier, is not changed.
The Formula 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 .
For example, three selected memory components are 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 in the List panel and open the Smart Edit dialog. Then, on the Formula tab of the dialog, you could write an expression using the addition operator 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:
or, in shortened form:
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.
Expressions entered in the Formula tab of the Smart Edit dialog are saved so they can easily be used again in the future. To re-use previously entered expressions, click at the right end of the text field, then select an expression from the drop-down menu.
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 previous WB_PRTIO example (see Batch Replacement of String-based Attributes), 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]'
Another formula example – change the middle character of component designators CAB and CYB to X :
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 function to calculate the values for the starting position and amount of characters, as shown below.
Component designators CAAAAAB and CYYYB have a varying length middle part:
The right-click menu for the main list area of the panel provides the following commands:
The Show Children-based commands are particularly useful when a small selection of parent objects have been previously selected and filtered.
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