Updating Components from Database and File-based Libraries in Altium Designer
The logical place to make a change is at the source. The nature of this source depends on how the component was placed:
- From an Integrated Library - the source libraries are extracted, the change is made, and the integrated library package is compiled to generate the revised integrated library.
- From a Database Library - for a parameter or a symbol/model reference, the change is made to the corresponding record for the component in the linked external database. If the change is a graphical one (to a symbol or model), it is carried out within the referenced source library.
- From a Schematic/PCB Library - the change is made to the component or footprint in the corresponding library from which the component/footprint was placed.
You also may have linked a placed component to an external database using a Database Link file (*.DBLink). The symbol and model changes are made in the source libraries. For parameters, changes are made in the database.
Once changes are made, they need to be pushed across to the design. Altium provides a variety of update tools that allow you to quickly and efficiently pass component changes to your Altium Designer components. This document details those tools - tools that enable you to always retain synchronicity between your component source and the placed instances of those components.
Updating Parameters From a Database
In the context of this tool, the term 'Altium Designer component' is used to describe a component instance placed on a schematic sheet or a component in a source schematic library. Altium Designer provides a tool for updating the parameters of Altium Designer components with information stored in an external database. The components must be linked to the corresponding component records in the external database for update to be made possible. Linkage is performed through the use of an intermediary linking file, which can be one of the following:
- Database Link file (*.DBLink) - used when linking existing placed components to an external database or, more typically, defined components in a source schematic library.
- Database Library file (*.DBLib) - used when placing components directly onto a schematic sheet from an external database.
- SVN Database Library file (*.SVNDBLib) - the same as for a *.DBLib, but with symbol and model libraries stored under version control.
The Update Parameters From Database command is also available in the Schematic Library Editor. The source library must be part of a library package (*.LibPkg) and a *.DBLink file is used to provide the linking from library components to component records in the external database.
Updates are performed from the Schematic Editor by choosing the Tools » Update Parameters From Database command available from the main menus. Launching this command will open the Update Parameters From Database dialog. Use this dialog to choose which schematic documents and component types you want to include in the update.
After defining the scope of the update, click OK. The external database will be queried for matching components. If there are parameter differences between the Altium Designer components and the matching records in the database, the Select Parameter Changes dialog opens.
This dialog lists all parameters that exist in the database records for linked Altium Designer components falling under the scope of the update. Any parameters that are defined for an Altium Designer component but are not a field in a database table will not appear listed. For example, you may have placed a component directly from a database using the database library feature then added one or more parameters after placement.
Only those parameters that are mapped between the external database and the placed component instance are listed. Parameter mapping is performed on the Field Mappings tab of the intermediary link file.
The dialog will initially show proposed updates to bring the Altium Designer component parameters into sync with those in the database based on the update actions you have defined in the intermediary link file (DBLink, DBLib, SVNDBLib).
Parameter differences are distinguished by the use of a unique icon inserted in the relevant cell. For example, a blue triangle in the corner of a cell means that a difference has been detected between the value of a parameter in the Altium Designer component and the same parameter in the linked database record.
There will be a full listing of all available cell states in the Select Parameter Changes dialog later on this page in the Parameter Update States section.
The controls provided in the Select Parameter Changes dialog allow you to fully control which updates to proceed with and which to reject. You can reject updates to all parameters for a selected component or for specific parameters of that component. To reject a proposed update for a specific parameter, select the relevant cell and click the Reject Selected button. To reinstate the update, click the Update Selected button.
When you are satisfied with the update solution, click the Accept Changes (Create ECO) button. Use the Engineering Change Order dialog that opens to validate and then execute the updates accordingly. If you realize there is an update you really do not want to proceed with, disable the applicable change order entry.
Updating Schematic Components From Libraries
Altium Designer provides a tool for updating placed components on a schematic sheet with modified information from a source library. This includes Schematic Component Libraries (*.SchLib), Integrated Libraries (*.IntLib) and Database Libraries (*.DBLib, *.SVNDBLib).
Although DBLib and SVNDBLib files present as libraries in the Components panel, they are only a source of connection and field mapping and not libraries in the true sense of the word. The update feature passes changes to parameters, symbol and model references in the external database, as well as graphical modifications made in referenced symbol and model libraries.
The update feature allows you to pass changes to parameters, as well as model and graphical information.
Updates are performed from the schematic document by choosing the Tools » Update From Libraries command available from the main menus. Launching this command will open the Update From Library dialog. The Update From Libraries command updates all components on the schematic sheet with modified information from a source library.
Updates are also performed from the schematic document by choosing the Tools » Update Selected From Libraries command available from the main menus. The Update Selected From Libraries command updates only the selected components on the schematic sheet with modified information from a source library.
Defining the Scope of the Update
The first page of the dialog deals with the scope of the update - which source schematic documents are to be included in the update and the specific component types contained thereon.
The Schematic Sheets region of the dialog will load all possible schematic documents to which the update can be applied. This can be either a single, free schematic document, or all schematic sheets within the active project. Enable those documents whose components you want to be considered in the update.
As you enable/disable entries in the Schematic Sheets list, the constituent physical components will be listed in the Component Types region of the dialog. Each component is listed in terms of:
- Physical component name
- Associated logical symbol
- Source library from which it was placed
- Number of instances currently placed across all enabled schematic documents.
Inclusion of components in the list is in accordance with the options available at the bottom left of the page. Use the Show field to determine the types of components included in the update. By default, All Components is selected, but you can choose to update only:
- Standard Components - those placed from a schematic library or integrated library.
- Database Components - those placed from an external database using a DBLib or SVNDBLib.
All component types are initially enabled for inclusion in the update. Disable any that you definitely do not want to update. Alternatively, select the exact components that you want to update - directly on the schematic sheet(s) - prior to entering the dialog. Then enable the Selected Parts Only option. Only those components in your selection will appear listed.
The main thing to remember is that you are always in full control over what gets included in the update.
Defining Default Update Actions
The Settings region of the page is where you can define the default level of update required. The default update actions you define here will be applied to all component instances of the enabled component types.
The simplest form of update is to fully replace the components on the schematic sheet(s) with those defined in the source library. Graphical attributes, parameters and model links are all updated directly with the information that exists in the source library.
Remember that if the source library is a DBLib or SVNDBLib, the parameter and model link information is derived from the corresponding component records in the external database, while the graphical attribute changes will come from the referenced symbol libraries.
Full replacement is enabled by default. Should you want a little more control over what is updated, change to replace Selected Attributes of Symbols on Sheet. The individual update options (graphical, parameter, model) will become available for inclusion/exclusion as required.
Definitions on the first page of the Update From Library dialog and the Library Update Settings dialog are persistent. They are stored in the project file upon saving.
For parameter and model update actions, still further control is afforded through the Library Update Settings dialog. Access this dialog by clicking the Advanced button. Not only can you define the default, global update actions for parameters and models using this dialog, but also control which specific parameters and models are included in the update.
After defining the scope of the update as required, and the default actions to be carried out, you could click Finish, then review and execute the changes to be implemented in the subsequent Engineering Change Order that is generated. Should you want to further refine the update on a per-component basis, prior to generating the ECO, click Next to access the second page of the dialog, detailed in the next section.
Controlling the Update by Component Instance
Definitions on the second page of the Update From Library dialog are not persistent. They will be lost if you go back to the first page or close the dialog.
The second page of the Update From Library dialog presents you with a detailed grid, listing all components instances involved in the intended update process. The previous page of the dialog allowed you to specify, at a coarse level, which physical component types get included in the update. This page allows you to fine-tune exactly which component instances of those types get updated.
The grid is partitioned into three regions:
- Schematic Parts - information about each placed component on the schematic sheet(s).
- Library Components - information about the specific source library component that will be used in the update.
- Actions - the specific update actions required for each component instance. These will initially be set in accordance with the default action settings defined on the first page of the dialog.
For each component, the entry for the source library component will initially be that used to place the component instance in the first place. This information is taken from the Library Link region of the placed component's Properties panel.
Specifying an Alternate Component
Typically, the update will involve passing on changes made to the original physical component in the source library, to the placed instance(s) of that same physical component on the schematic sheet(s). There may be occasions where you want to change the physical component that is placed in the design altogether. This can be readily specified as part of the update.
You can specify an alternate component for a component instance by directly editing the corresponding Physical Component field in the Library Components region). If the specified physical component does not exist in any of the libraries currently added to the project's Available Filed-based Libraries list, the entry <Not Found> will be entered into the Logical Symbol and Library Name fields. Update, in this case, will not be possible, for that component instance.
When searching for a database component, the search can only be across currently loaded DBLib and SVNDBLib files (Available Filed-based Libraries). You cannot search for database components along a specified search path.
Alternatively, select a component instance in the grid then click the Choose Component button. The Replace Component (File-based) dialog appears, from where you can browse for the required replacement component in any of the currently Available Filed-based Libraries for the project. The dialog also provides a search facility, which can be used to search for a component within the Available File-based Libraries or along any nominated search path.
When a valid component is chosen, the relevant information for the chosen component will be entered into the Library Components region of the page, overwriting the original source library component.
If you want to revert to the original source library - keeping the original physical component - select the component instance in the grid then click the Return Selected to Default button.
Controlling Parameter Changes
Individual parameter-level changes for a component instance will be shown only if the Full Replace option is disabled and the Parameters option is enabled in the Actions region of the page. If you want to browse individual parameter changes proposed by the update, click the Parameter Changes button. The Select Parameter Changes dialog will open, summarizing the parameter changes for those component instances with a parameter update action enabled. In the illustration below, notice that component instances C1, C3, C7, and C10 have their parameter update action disabled, and therefore, do not appear in the dialog.
As with the Update Parameters From Database tool, the dialog will list all mapped parameters for those component instances linked to an external database. In addition, all parameters found in the placed component instances involved in the parameter update will also be listed. This is a key difference when accessing the Select Parameter Changes dialog between these two update tools.
Again, the dialog shows proposed changes to be made in order to bring the parameters of the placed components back into sync with those for the components in the relevant source library or database. The proposed updates are in accordance with the update actions defined in:
- The Parameter Settings region of the Library Update Settings dialog when the source of the update is a schematic or integrated library.
- The intermediary link file (*.DBLink, *.DBLib, *.SVNDBLib) when the source of the update is a database.
Parameter differences are highlighted by the use of a unique icon inserted in the relevant cell. See the next section (Parameter Update States) for a full listing of all possible cell states.
Use the available controls in the dialog (buttons or right-click menu) to determine with which parameter changes to proceed and which to reject, giving you the power to override the default update conditions at the individual parameter level. Remember that rejecting a proposed update in a cell means you do not want to have any changes made to that parameter for that particular component instance on the schematic sheet.
Parameter Update States
There are a number of different update states into which a cell in the Select Parameter Changes dialog can be placed depending on the exact differences detected between the placed components and the source library/database and the applicable parameter update actions specified. The following table lists the possible cell states.
Cell State | Description |
---|---|
The Altium Designer component and the component in the library/database both possess the parameter, and the value is the same. Update will cause no change. | |
The Altium Designer component and the component in the library/database both possess the parameter, but it has no value assigned. Update will cause no change. | |
The Altium Designer component and the component in the library/database do not possess the parameter. Update will cause no change. This state can also appear if the parameter in the Altium component is prevented from being included in an update by disabling the Allow Synchronization With Library and/or Allow Synchronization With Database options in the associated Properties panel. | |
The Altium Designer component and the component in the library/database both possess the parameter, but with different values. Update will assign the value from the database. | |
The Altium Designer component and the component in the library/database both possess the parameter. For the Altium Designer component, it has a value assigned, in the database it does not. Update will assign the database value; in this case no value. | |
The Altium Designer component does not possess the parameter, but the component in the library/database does. Update will add the parameter to the Altium Designer component with the value shown in the cell. | |
The Altium Designer component does not possess the parameter, but the component in the library/database does. Update will add the parameter to the Altium Designer component with no value initially assigned. | |
The Altium Designer component possesses the parameter, but the component in the library/database does not. Update will remove the parameter from the Altium Designer component. Note: If the component instance is being updated from an external database and the relevant database field-to-design parameter mapping is set to, the parameter will be treated as though it does not exist in the database record, even if it does. | |
There is a difference between the parameter values for the Altium Designer component and the component in the library/database. The proposal to update to the value in the database has been rejected, based on the current value of the Update Values option in the database linkage document (DbLink, DbLib or SvnDbLib file). No change will occur. Note that the Update Selected and Update All commands in this dialog will override this state and force an update. | |
The Altium Designer component does not possess the parameter, but the component in the library/database does. The proposed update to add the parameter to the Altium Designer component has been rejected, based on the current value of the Add To Design option. No change will occur. Note that the Update Selected and Update All commands in this dialog will override this state and force an update. | |
The Altium Designer component possesses the parameter, but the component in the library/database does not. The proposed update to remove the parameter from the Altium Designer component has been rejected, based on the current value of the Remove From Design option in the database linkage document (DbLink, DbLib or SvnDbLib file). No change will occur. Note that the Update Selected and Update All commands in this dialog will override this state and force an update. |
Updating PCB Footprints From Libraries
The Update From Libraries and the Update Selected From Libraries commands explained in the previous section are used solely to update placed components on schematic sheets. Although models can be included as part of that update, it is the model linking that is being considered and not the actual graphical attributes of the linked model. To pass on changes to the graphical attributes of a PCB footprint from the source PCB Footprint library requires the use of another tool from Altium Designer's update arsenal - Update From PCB Libraries. This update tool checks the component footprints on a board against the corresponding footprints in source PCB Footprint libraries by performing a physical comparison of each footprint's primitives.
To illustrate the use of this tool, consider the component footprints shown below. These are existing footprints on a PCB document. To the right are the modified footprints that exist in the source PCB Footprint library (*.PcbLib). The changes, although subtle - the top footprint has the ''sign moved"; the bottom has increased width for the ''sign and arc" - are sufficient for the purposes of our illustration.
Defining Update Options
Updates are performed from the PCB document using the Update From PCB Libraries command available from the main Tools menu. Launching this command opens the Update From PCB Libraries - Options dialog. Use this dialog to determine which layers to include in the comparison. By default, all are enabled.
Viewing Comparison Results
After defining the options in the Update From PCB Libraries - Options dialog as required, click OK. The comparison will proceed and the results will appear in the subsequent Update From PCB Libraries dialog.
The source PCB library is identified from the PCB model link associated with the corresponding component in the source schematic. The source libraries must be part of the Available File-based Libraries.
The dialog is divided into two main sections. The upper region presents the comparison results. The footprint of each component on the PCB is compared against the corresponding footprint in the indicated source library. If the comparison of each primitive in the footprint is within the tolerance specified, the footprints will be deemed to match, with a green tick icon () appearing in the Match column. No update is required in the case of a match.
If, however, one or more primitives in a footprint are outside of the tolerance in terms of their locations within the footprint, the footprints are flagged as not matching. A red cross icon () will be inserted into the Match column. An update is required to bring the placed component's footprint and source library footprint back into sync.
There will be an associated Update option for each component with a non-matching footprint. By default, each component that fails to match is automatically included in the update. Control, as is the norm in Altium Designer, is always yours, and you may choose to exclude any non-matching components from the update process.
The lower region of the dialog lists the differences found between primitives for the currently selected (and non-matching) component entry in the region above.
Generating a Comparison Report
If you want to create a Footprint Comparison Report (Footprint Comparison - PCBDocumentName.html), click the Create Report button at the bottom left of the Update From PCB Libraries dialog. The report provides:
- A list of unmatched components
- A list of matched components
- Primitive difference details for each component in the unmatched components list.
Proceeding With the Update
When you are satisfied with the update solution, click the Accept Changes (Create ECO) button. Use the Engineering Change Order dialog that opens to validate then execute the updates accordingly. Disable any changes that you do not want to occur. The changes will be made and the components that are included in the update will have their footprints updated to those in the source libraries.
Updating Directly From a Source Library Document
Direct update of placed schematic components and PCB footprints can be performed from within a source schematic or PCB library. This method of updating is particularly suited to the update of components that have been placed from isolated schematic component (*.SchLib) or PCB footprint (*.PcbLib) libraries and where those libraries are made part of the available filed-based libraries for the project.
Applying Changes From the Schematic Library Editor
Modifications made to components in a source schematic library are passed to the schematic document(s) using the Update Schematics command available from the Schematic Library Editor's main Tools menu. Alternatively, changes to selected components can be applied by selecting those components in the SCH Library panel and using the update command from the right-click menu.
All instances of the placed component(s) in all open schematic documents will be updated regardless of the project to which a document belongs. Essentially, if a placed component has the same entry for its Physical Component field as that of the library component, it will be updated. You will be notified as to how many components (in how many documents) have been modified by the update process. The update is a full replacement of each existing component instance with that in the library.
Applying Changes From the PCB Library Editor
In much the same way, changes made to one or more component footprints in a source PCB library can be passed directly to placed instances of those footprints on the PCB. The main Tools menu in the PCB Library Editor offers commands for updating just the current footprint (Update PCB With Current Footprint), or all footprints (Update PCB With All Footprints). These commands can also be accessed from the PCB Library panel's right-click menu.
All instances of the placed component footprint(s) in all open PCB documents will be updated regardless of the parent project. Essentially, if a placed component footprint has the same name as that of the library component, it will be updated.
Verifying an Update
After updating the placed schematic components, schematic library components, or PCB Footprints, you will of course want to verify that the update proceeded as planned. The following sections look at how you can quickly check that parameters, model links, and graphical attributes have been updated successfully.
Checking Parameter Updates
You can check that the parameters have been updated correctly either by running the Parameter Table Editor dialog (Tools » Parameter Manager) or by interrogating the parameters for a selected component through the Properties panel.
Below, the components C1, C2, and C3 have each received a new parameter TestParam, with value Test, as part of an update process.
Checking Model Link Updates
Updates to model links for a component can be verified from the Models region of the associated Properties panel.
Checking Graphical Updates
The easiest way to check graphical updates is to compare the design component on the sheet against the component in the source library. The latter can easily be displayed using the Components panel, which allows direct side-by-side comparison.