SCHLIB Inspector
The SCHLIB Inspector panel
Summary
The SCHLIB Inspector panel enables you to examine and edit the properties of one or more design objects in the active schematic component (or all components in the active schematic library). Used in conjunction with appropriate filtering (see SCHLIB Filter panel), the panel can be used to make changes to multiple objects of the same kind from one convenient location.
Panel Access
The SCHLIB Inspector panel is accessed in one of the following ways:
- Click the SCH button at the bottom-right of Altium Designer when the schematic library editor is active then select the SCHLIB Inspector entry from the pop-up menu.
- Click View » Workspace Panels » SCH » SCHLIB Inspector.
Defining Panel Display Scope
You may have a large quantity of objects selected in the workspace that are of differing type. Out of all such objects, you may want to edit the properties of certain object types only without losing or needing to alter your selection. This can be achieved using the underlined controls at the top of the panel to essentially define a 'display scope' for the panel:
The left-hand 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 want to include in the panel for display and editing - 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 beneath. The list will only contain those object types currently selected in the main workspace.
When enabling specific object types for display the control will reflect the choice by listing the enabled types. Multiple selections (if available) are listed and separated by commas.
Click on the right-hand underlined control to choose from the following options:
- All components - display target objects from all components contained in the active schematic library document.
- Current component - only display target objects from the active library component in the design editor window.
Inspecting Object Attributes
Clicking on a single object in the design editor window will select the object and display attributes associated to it in the SCHLIB Inspector panel. Information is displayed under the following common collapsible sections:
Kind
This section contains one entry only, relating to the kind of design object that is being 'inspected'. For example, clicking on a pin will display the entry Pin; clicking on a rectangle will display the entry Rectangle, etc.
Design
This section also contains one entry only, relating to the parent schematic library document in which the component(s) resides.
Graphical
This section contains graphical attributes of the selected object. Attributes may include the location of the object, its orientation, and colors used in its display.
Object Specific
This section contains attributes specific to the object being inspected that are not graphical attributes. For example, selecting a pin will display attributes that are specific to a pin, such as:
- Name
- Description
- Pin Designator
- Hidden Net Name
- Electrical Type
Other selected objects will have different attributes displayed. For example, selecting an IEEE object will display specific IEEE Symbol attributes.
Parameters
For an object to which parameters can be 'attached', this section allows parameters to be inspected, added and deleted for single or multiple objects.
Editing Object Attributes
You can edit attributes of a selected object by editing the relevant entry in the panel. The change will take effect once you 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 one location, 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. Common attributes that have differing values between objects will be displayed as <...>
. Simply edit the attributes as required - the changes made will be conveyed instantly to each object in the selection.
By using filtering, you can apply a query (an expression for the filter) to target a specific group of objects in one or more components in the active library and then use the SCHLIB Inspector panel to directly edit the attributes for these multiple objects.
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 modifications 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 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 wish, you may use any other attribute field name in an expression. When using attribute names, spaces within names must be replaced by the underscore character.
To illustrate an example of using a simple expression, consider the position of pins on a component that are regularly spaced on its vertical sides. Relative to the origin, the pin location attributes in the Y (vertical) domain are -8, -18, -28, etc.
To move all the pins up by 2, you could select the relevant pins and enter the expression:
Y1 + 2
...or, in shortened form:
! + 2
Note that the spaces are optional. When you press Enter, a value of 2 will be added to each position attribute.
If instead you want to move the pins down by 3, you could use the subtraction operator, as illustrated by the following expressions:
Y1 - 3
! - 3
To illustrate use of a function, the previous expression could be re-written as:
! - sqrt(9)
The result would be the same - 3 subtracted from the Y1 value for the selected pins.
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, all the selected pins would have a Y1 value of 2 and -3, 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 workspace, as in the example above, 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 objects 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 current component. For example, you may want to rename the display names of selected pin objects from D1, D2, D3, etc., to Data_1, Data_2, Data_3, 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 pin display names, you would enter {D=Data_}
in the value field for the Name attribute.
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 pin display names:
Data_0_(15..0)
Data_1_(15..0)
Data_2_(15..0)
.
If the intended format for new display names is to be IO_x_16b
- where x
represents 0, 1, 2, etc - then you could select the relevant pins, access the SCHLIB Inspector panel and enter the following into the value field for the Name attribute:
{Data=IO}{(15..0)=16b}
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 SCHLIB Inspector panel offers further support for string modification through its Smart Edit feature. Click on a shared attribute of the selected objects, whose value is a string. A button will become available at the far right of the cell. Click on this button to access the Smart Edit dialog.
The dialog offers two methods for performing string modification, accessed from the Batch Replace and Formula tabs.
Batch Replace Tab
This tab provides simple straightforward substitution, similar to the string substitution discussed previously (but without having to enter the curly braces). In the Smart Edit dialog, 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 then click Enter. The familiar string substitution syntax is displayed at the bottom of the tab.
For example, consider several components in a schematic library where each has a standard Clock pin with a displayed name of 'CLK'. These inputs are actually inverted so the display names require amendment to include an overhead bar (negation symbol).
As multiple components need to be updated, ensure that the display scope option for the SCHLIB Inspector panel is set to all components. Selection of objects across multiple components in a schematic library can be achieved using the SCHLIB Filter panel and an appropriate query expression to target the required objects. In this case, set the search scope of the SCHLIB Filter panel to Whole Library. The following simple query could be used to target the required pin for all library components: Name = 'CLK'
.
With the target pins now selected, click on the Name attribute in the SCHLIB Inspector panel and access the Smart Edit dialog. On the Batch Replace tab, enter CLK
in the From field and C\L\K\
in the To field - the replacement string is therefore {CLK=C\L\K\}
- 'CLK' with the (falling-edge) overhead bar. After clicking OK, the Display Names for all matched entries in the library 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 Data_x
example, where strings of the form Data_x_(15..0)
(x = 0, 1, 2, etc) are to be changed to a IO_x_16b
format. In this case, you would enter two distinct substitution entries on the Batch Replace tab as shown.
Formula Tab
This tab provides 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 Pin Designator field within a formula should be entered as Pin_Designator
.
Consider for example three pins specified for a schematic component, with designators 1, 2, and 3. You might want to extend the designators of these pins by including some indication of their role. First select the pins, then using the addition operator, you could write an expression to add to the existing string value of the Pin Designator attribute. This would take the existing (original) string value and concatenate it with a specified new string as shown below:
'ADDR_' + Pin_Designator
In shortened form:
'ADDR_' + !
Note that the spaces are optional. The designators of the pins will be updated to ADDR_1, ADDR_2
, and ADDR_3
.
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. Consider pin display names of the format DATA_I_x[7..0]
that now need to be changed to the format EXT_DATI_x[31..0]
.
In this case you could select the pins, access the Smart Edit dialog for the Name attribute and write the following expression on the Formula tab:
'EXT_' + Copy(Name,1,3) + 'I' + Copy(Name,7,3) + '31..0]'
In shortened form:
'EXT_' + Copy(!,1,3) + 'I' + Copy(!,7,3) + '31..0]'
Editing/Adding Parameters
For the pin object - to which parameters can be 'attached' - an additional section is displayed in the panel - Parameters.
For a single selected pin object, this section lists all of the parameters currently defined for that pin. For multiple selected pin objects, the section displays only those parameters that are common to all pins in the selection. Click on the hyperlink for a parameter name to display and edit the properties for that parameter directly from within the panel.
Click on the Owner link to go back to editing the parent pin object to which the parameter belongs.
You can add any number of user-defined parameters from within the Parameters section of the panel. Enter the value for the new parameter in the field to the right of the Add User Parameter entry. When you press Enter or click out of the field, the Add new parameter to n object(s) dialog will appear, where n
represents the number of selected pin objects to which this new parameter will be simultaneously added.
Change the name for the new parameter as required and click OK - the parameter will be added to the list of parameters for the selected pin object(s). To remove a parameter from the selected pin object(s), click on the red cross symbol to the immediate left of the parameter name. A dialog will appear prompting for confirmation to proceed with the deletion.
Notes
- Press the F11 key to toggle the visibility of the panel in the workspace.
- Information will appear in the panel only when one or more objects have been selected in the design editor window.
- If you have defined the display scope for the panel to display specific object types, this scope will remain when the selection is cleared in the main workspace. If you subsequently select an object that is not part of this previously defined scope, the panel will display a control at its center - Click here to display all objects - which, when clicked, will reset the Include portion of the display scope to all types of objects.
- You can use the Up Arrow and Down Arrow keys to move up and down the list of attributes in the panel.
- When applying a filter using the SCHLIB Filter panel, the attributes for the resulting filtered objects only will be displayed in the SCHLIB Inspector panel if the Select option - located in the Objects passing the filter area of the panel - is enabled prior to application of the filter.