Library Migrator Improvements
This document is no longer available beyond version 20. Information can now be found here: Importing Existing Libraries to Your Connected Workspace for version 25
The Library Migrator has been substantially updated to provide a highly automated one-click solution for converting file-based component libraries to server-based managed components. Improvements include a completely revised user interface and the introduction of source library analysis processes that automatically detect component types and parameter content.
As a result, traditional file-based component libraries can be migrated to managed server components through a single step, while the migrator automatically takes care of type classification, the target source folder, parameter inclusion and value type, and the transfer of all relevant data – see Simple Mode, below. Libraries that include multiple component types (monolithic libraries) are automatically detected and processed as well.
Along with the automated one-click approach, the revised Library Migrator also offers advanced configuration options through the Properties panel. The options provide full control over the migration configuration for each source library, allowing the process to be fine-tuned – or radically changed – to suit your needs.
The Library Migrator is available when you are signed in to an Altium server, and may be accessed by:
- Selecting a file-based library in the Components panel Categories column, and then the Migrate Library option from the menu.
- Right clicking on a library file in the Projects panel and selecting Migrate Library from the context menu.
- Selecting Tools » Migrate Library in the Schematic/PCB Library editor.
- Dragging and dropping a library file from a Windows folder onto the Explorer panel.
- Selecting File » Library Migrator from the main menu.
The first four options will open the migrator in its simple mode, which provides options to immediately migrate the selected library () or open the Library Migrator in its full GUI mode ().
Simple Mode
The Library Migrator's simple mode preselects all aspects of the migration process based on its analysis of the source library, and then completes the library migration as a single step from the command.
Notable points regarding this process are:
- A full and ready-to-use component migration relies on the availability of a Component Template that matches the source component type(s). Suitable templates are available in the server if the Install sample data option was selected during installation.
- A source library with an unrecognizable (undetected) component type will be migrated without interpretation, as unassigned component types in a
Components/Uncategorized
server folder. Before the migration is run, this can be resolved by applying Designator Mapping or Parameter Grouping in the Advanced (full UI) mode. - Monolithic libraries are automatically split into sub groups, where each group represents a type of component in that library. The groups are processed as individual libraries.
- Any components that trigger a validation error will be skipped.
- Any errors the process has encountered can be viewed in the Migration Report, available from the button when the migration has completed.
The results of the library migration, as newly created managed components, can be seen in both the Explorer and Components panels. Migrated components include all models, parameters as interpreted by the applied Component Template(s), Part choices derived from Supplier source data and any reference links or files.
Advanced Mode
The Library Migrator's full GUI is presented when in Advanced mode, which offers detailed control over the management of libraries, component types and component parameters. When combined with the Properties panel, the migration of component libraries to the server can be configured to your specific needs.
Advanced mode is enabled when the Library Migrator is opened from the File » Library Migrator command, or when the button is selected while in simple mode. Libraries are added to the migrator's SOURCE LIBRARIES section (if not already populated), from the button, or by dragging and dropping a library file onto the area. Use the right click option to exclude a selected library or extracted sub library from the migration.
The MIGRATION PREVIEW section lists component type groups identified from the source libraries – as Component Types () or the proposed Folder Structure () – and includes a parameter-based grid view of those components (Components). Parameter values in the grid can be edited on-the-fly, which avoids the need to open and edit the source library. The lower Details area includes additional information sourced from the currently selected component – Part Choices, Models and Datasheets.
Regardless of the detailed options and data presented in the interface, the migrator's advanced view can be used in the same manner as the simple view – just click the button to invoke the migration process, without intervention. As in the simple view process, the migrator has analyzed the library, deduced the type of components it contains, and applied the correct Component Template. In turn, the template determines the server target folder, the applied Naming Schemes and Lifecycle Definitions, and parameter mapping/interpretation.
Export-Import Configuration
The Library Migrator features the ability to export a detailed text-based file that captures the current configuration setup, which includes all configurable migration settings such as target paths, parameter mapping, naming scheme, lifecycles definitions, target component types, and so on.
The Migration Configuration file is saved from the File » Export » Migration Config command as a *.lmcfg
file type, and may be restored at any time through the File » Import » Migration menu option.
The ability to restore a configuration is particularly useful when the source file-based library has been updated and those changes need to be migrated to the server. If the configuration was exported when the library was first migrated, the restored (imported) configuration will re-establish the exact configuration settings that were used, which guarantees a consistent data transfer scheme for that library (or libraries).
Monolithic Libraries
Source libraries that contain multiple component types are detected by the migrator's analysis routines and segregated into sub-library groups, where they can be processed as individual type libraries. The component type detection is based on the source component Designators (R?
, C?
, etc) and also key words (Resistor
, Res
, etc) contained in the other main component parameters (Description, ID, etc).
In the example shown below, the source library (ProjectABC.IntLib
) has been 'split' automatically according to the detected component types (Capacitors, Resistors, etc), which can be selected in the Component Types column to preview their constituent component entries in the Components grid.
Uncategorized Components
Note that one library sub-group entry in the above image is named Uncategorized
(and also Uncategorized
as the Component Types entry), which indicates that the migrator could not detect and assign a type to that group of components – the Component Type is effectively set to None
. In this example case the undetected components (Inverter logic ICs) use an unrecognized Designator prefix (U?
) and their parameters do not contain detected key words such as IC
, logic
, etc.
This issue can be addressed by manually mapping the designators used for those components to the desired component type in the Library Splitting dialog, which is accessed from the button – available when the source library (ProjectABC.IntLib
) is selected.
With the dialog's Custom Designator Mapping option selected, click the button to create a new mapping entry, choose the correct designator string option for the uncategorized components from the Designator drop down list (all available designators are included), and then the desired component type option from the Component Type drop down menu. Confirm the completed type-designator mapping (U?
designators to the Logic
component type) with the button. Note that if needed, multiple comma-separated designator types can be entered manually.
With the component type now specified by the applied mapping, the migrator will use the matching Component Template (Logic
) to configure the library migration as defined by the template settings (folder, naming, etc).
Errors and Warnings
Components that will not be migrated to the server correctly, or not at all, are indicated by warning or error tags in the Advanced UI when the Library Migrator is run (), or a migration Validation is performed ().
When attempting to perform the migration, the Messages panel is populated with the detected violation issues, and a dialog will offer the choice of abandoning or proceeding with the current migration configuration. In the latter case, invalid components are not migrated or the migration process will fail.
In the case of a canceled migration or when the manual Validation is run, any components that fail the migration checks are then associated with error/warning icons plus further information in the lower Details area. Icons in the preview Status column indicate the specific component entries that are in violation of the migration rule checks.
Resolving Errors and Warnings
Parameters errors, such as in the example shown here where the component's Forward Voltage
value cannot be interpreted to a valid voltage, can be resolved by:
- Removing the component from the migration process – right click on its entry and choose the Exclude from Migration option.
- Editing the offending parameter Value – locate and edit its cell to a compliant format.
- Changing the mapped parameter Type, as determined by the applied Component Template, from
Voltage
to uninterpretedText
– select the Source Library in the migrator UI, and then change theForward Voltage
Type in the Properties panel Parameter Mapping list (under the General tab).
A missing file error, such as the unlocatable Datasheet file shown here, can be resolved by:
- The obvious solution of locating and restoring the missing file to the expected location.
- Excluding the component from the library migration process – as described above.
- Disabling the migration of datasheet files – change the Migrate option in the Properties panel Datasheet section (under the Advanced tab).
Use the Search field (upper right) if you wish to find particular component entries. The search filters the item listing by matched parameter value(s) for the currently selected component type – select All under Component Types for the search to apply to all components in the available source libraries.
Duplicates Detection
The Library Migrator also includes mechanisms to avoid duplicate components being created in the target server. This is achieved during validation by comparing the source library's component identifier parameters and Part Choices with those of components in the target server.
With the migrator's default settings, a Validation step () will flag a Warning message when the same component Name
or Part Choices
entry (indicating a potential component duplicate) is detected in the target server. The displayed warning/error message includes the type of duplication violation (parameter or Part Choice), the violating library component name and the server component (by ID) it is in violation with.
The parameter name-value pair used to detect duplicate violations is specified in the Duplicates Detection region of Properties panel, under the Advanced tab. Use the Unique Field drop down menu (set to Name
by default) to select from the Parameters available in the source library. This selection is particularly useful for company library configurations that use a proprietary identifier field that ties into the broader enterprise system.
A different type of status flag can be set for the duplication violations by selecting an alternative Report Mode in the Migration Checks region under the General tab of the Properties panel.
Single Model Libraries
Automated duplicate detection also is used to process source libraries that use a common symbol model for all components. Such libraries tend to be composed of a single component type with differing styles and values, such as resistors of a particular package format, where the symbol for each is a standard model graphic.
This single, common model condition is detected by the Library Migrator, which then configures the migration to transfer one symbol model that applies to all migrated components – rather than a corresponding, individually named symbol for each component. The symbol to be migrated adopts a generic Symbol
name, and all component parameters remain unchanged.
The migrated library symbol (which has the name Symbol
and a blank Description field) can be edited to suit your needs. In the Explorer panel, use the right-click Edit option to invoke the action. During the process, select the Update items related to <symbol ID> option in the Create Revisions for Item dialog to ensure that the migrated components use the new symbol revision.
Models Only Migration
The Library Migrator may be switched to a special Models Only migration mode that detects and processes the available component models in a source library. To change to this migrator mode, check the LibraryMigrator.ModelsOnlyMode
option in the Advanced Setting dialog, available from the System – General page of the Preferences dialog.
In the Models Only mode, the migrator's analysis process will detect all Symbol, Footprint and Simulation models that are available in a source library (IntLib
, SchLib
, PcbLib
, etc), then migrate those models to the server using the system's default locations, naming schemes and lifecycle definitions.
When the Library Migrator is switched to its Advanced mode () or opened in its Advanced mode (File » Library Migrator), full details of the proposed model migration are available. The Migration Preview area shows the Folder Structure that will be used in the target server, which may be modified from the default settings in the Folder field for each model type in the Properties panel. The applied naming schemes and Lifecycle definition for each model can be selected from the available system types (see Properties panel, below).
The migration of component models to the server can be limited by type if desired, by disabling (or enabling) specific model types in the Properties panel using their associated buttons.
Once the Library Migrator is configured, select the button to complete the migration of the listed component models. The results can be reviewed in the migration log file, as offered by the Library Migrator progress dialog (), or by viewing the migrated models in the Explorer panel.
Merge Component Types
The range of Component Types registered with the system – or in practice, in the connected server – can be viewed and managed in the Data Management – Component Types page of the Preferences dialog. Types are listed with their associated component Template and server Folder, and will include any new types created when the Library Migrator has migrated library files to the server.
The creation of multiple new Component Types might typically occur when a Library Migration configuration has used Parameter Grouping (a nominated component parameter value) to determine the Type for each migrated component. For example, the Categories
parameter might be Resistor-0608
for one collection of migrated components and Resistor-0402
for another, and so on. Here, all would be best grouped under the single Resistors
Component Type for future use.
Rather than manually changing all the Component Types in these circumstances, the Component Types page in Preferences allows selected Type entries to be merged into a specified single entry. To do so, select all Type entries to be merged, including the target Type, right-click on the highlighted entries and choose the Merge option from the context menu. In the following Merging dialog, select the target Component Type from the Merge to drop down menu and click the dialog's button to confirm. The below image illustrates this for a range of migrated Resistor component types.
The process changes the Component Type for components of the merged type (such as Resistor-0402
, Resistor-0603
, etc) to that of the merge target Type – Resistors
in this example. One of the practical outcomes is that all components of a particular type will now be available when that type is selected under Categories in the Components panel. Note that the component entries are not affected in any other way. They remain in their existing folders, which are associated with the Component Template created during migration, and the templates themselves remain available.
Following the merge, the Data Management – Component Types page now indicates that the Resistors
component type is the default for multiple Templates – namely, the Resistors
Template and all those associated with the newly merged component types (the Resistor_0402
Template, and so on). The Folder entry for the Resistors
component type corresponds to the target folders of those multiple templates.
The result of such a merge is that when Resistors
is chosen as the migrated component type in the Library Migrator, it will be applied if you select any of the merged Templates (Resistor_0402
etc) as an alternative. When a new component is being created (File » New » Component), those Templates are offered as sub entries for the Resistors
Component Type in the Create new Component dialog.
Template Assignments
The Edit Templates dialog, accessed from the button, allows you to update the Template to Component Type mapping from that indicated in the Data Management – Component Types page. The mapping, as shown in the dialog's column entries, represents which Component Type be will applied when the associated Template is used – or conversely, which Template is used when a Component Type is chosen (such as when creating a new component).
For a selected Template entry in the dialog, the association is changed by choosing an alternative Component Type from the entry's drop down menu. When the dialog and page are then closed, the template's ComponentType
parameter value and its Default Folder
setting will be changed to correspond with the newly specified type. This is equivalent to editing the Template manually.
The result of the updated template-type mapping is shown in the Data Management – Components Types page, which has a Name orientated listing – where Name represents Component Type. This indicates that a number of different templates (Resistor_0402
, Resistor_0603
, etc) are associated with and will apply the Resistor_LibMigrate
Component Type.
Properties Panel
The Library Migrator's associated Properties panel settings provide advanced control over the migration configuration for the selected library (or sub library group). The panel's option settings are defined by the default system settings or those specified by the applied Component Template, which in turn is set by the library's detected component type – LED
in the example shown here. The settings are also user editable, allowing you to tailor the migration process as required, and may be restored with the Reset to Default link (top right).
The panel's General tab sections are as follows:
- General – The type of component detected by the migrator for the selected library (Component Type), and by association, the template that is applied (Component Template). Overrule these settings by editing the field, which will create a new component type, or by selecting an alternative type or template via the buttons – this is another way to address an uncategorized component issue. Set the Component Template option to
Create new
for the automatic creation of a template derived from the source library parameters and the Library Migrator's current settings. - Parameter Mapping – The parameter matching between the library parameters and those in the applied component template, and also the Type of value for each parameter (Text or a unit-aware type). Use the Source Library Parameter column drop down menu options to change the mapping, and the Type column menu options to overrule the existing setting determined by the template. Parameter names can be edited, and Parameter sets can be added, edited and removed.
- Part Choice Mapping – The list of part choice (or supplier link) parameters recognized by the migrator. Use the drop down menu options to redefined the mapping, or add and delete mapping sets.
- Migration Checks – View or set the migrator's error/warning response to violations of the migration rules. Use the Report Mode drop down menu to change the response and icon for a Violation Type entry. Note that if the
Fatal Error
report mode is selected, it will block the migration process if this violation is detected.
The panel's Advanced tab offers settings for all migrated data object items, as set by the system defaults or the applied Component Template. These includes component Models, Datasheet files, and any created Component Templates. With the exception of the Datasheet option (an enable/disable toggle) the settings for each migration object include:
- Folder – The target server folder for the migrated object, which may be manually edited or selected via the browse button ().
- Naming Scheme – The object's server naming specification as defined by the Component Template, or in the absence of an active template, the scheme set for the target folder (or as manually entered).
- Revision Naming Scheme – The naming arrangement used for the object's server revisions, as set by the applied template or selected from the entry's drop down menu options. Only those schemes enabled by the system will be available as an option.
- Lifecycle Definition – The Lifecycle system that is used for the object, as set by the applied template or selected from the entry's drop down menu options. Only those definitions enabled by the system will be available as an option.