Parent page: Working with Vault Components
Once all prerequisite domain models have been created and released into a Vault, a design component can be defined and released. Components are formally modeled as file-based definitions that can be released into a Vault for reuse in a design project. Revision-controlled and lifecycle-managed, a company can authorize the 'set' of components that can be formally used by their designers.
Once in the Vault, a design component - or Vault Component - can be extended to include real-world physical component information, creating a component that spans, or rather unifies, the Design and Supply Chain arenas - a Unified Component.
This document focuses on bringing the required pieces together to define and release a Component Definition into a Vault - the 'design view' of that component.
To turn the humble Vault component into a truly Unified Component, requires that Part Choices be made for that component. This is the process of nominating which 'real-world' component(s) can be used for the design component when the product is physically assembled. For more information, see
Adding Supply Chain Information to a Vault Component.
The Component Definition
The engineering, or design view of a component is, in essence, a container into which all information used to model that component in the design arena is stored. This includes links to all requisite domain models (schematic symbol, PCB 2D/3D component, Sim, SI, etc), as well as parametric information. What's more, this abstracted 'bucket'-type modeling is very scalable, should the component need to be represented in additional design domains in the future.
The design view of a component – a neatly packaged container for all information required to
represent that component across the various design domains.
But how to specify a component? Or, more precisely, how to determine the contents of that container? The answer is to create a Component Definition.
A component definition is simply just that - a definition of a particular design component. A definition that ties together the required models and parameters for that component in a clean and ordered fashion. The component definition maps to an Item - a Component Item - in the target Vault. To put this another way, you are defining the source definition that will, when released, provide a managed Vault component which you can re-use again and again in your designs.
Component Items are created directly from within the target Vault. Once a Component Item has been created (and data released into a revision of it), and its lifecycle state set to a level that the organization views as ready for use at the design level, it can be reused in the creation of one or more designs.
Just to reiterate, the release of a component definition does not result in a Unified Component. The resulting Component Item is simply the design view of that component. In this regard, it is simply a Vault component. The addition of Part Choices is needed to turn it into a true Unified Component.
Folder Type
When creating the folder in which to store Component Items, you can specify the folder's type. This has no bearing on the content of the folder - releasing a component definition will always result in a corresponding Component Item. It simply provides a visual 'clue' as to what is stored in a folder and can be beneficial when browsing a Vault for particular content. To nominate a folder's use as a container for Component Items, set its Folder Type as Components
, when defining the folder properties in the Edit Folder dialog.
Specifying the folder type - its intended use - gives a visual indication of the content of that folder when browsing the Vault!
Item Naming Scheme
Another important aspect of the parent folder is the Item Naming Scheme employed for it. This defines the format of the unique ID for each Item created in that particular folder. Several default example schemes are available, utilizing the short-form code for either the folder type (CMPL - Component Library) or the content type (CMP - Component):
- $CONTENT_TYPE_CODE-001-{0000} - for example, CMP-001-0001.
- $CONTENT_TYPE_CODE-001-{A00} - for example, CMP-001-A01.
- $FOLDER_TYPE_CODE-001-{0000} - for example, CMPL-001-0001.
- $FOLDER_TYPE_CODE-001-{A000} - for example, CMPL-001-A001.
Using a default naming scheme, the software will automatically assign the next available unique ID, based on that scheme, having scanned the entire Vault and identifiers of existing Items. This can be a great time-saver when manually creating Component Items prior to release.
A custom scheme can also be defined for a folder, simply by typing it within the field, ensuring that the variable portion is enclosed in curly braces (e.g. VLT
-CMP-{0000}
).
The Item Naming Scheme of the parent folder is applied to the Unique ID for each Item created within that folder.
The Item Naming Scheme employed for the parent folder can be changed at any time. The modified scheme will then be applied to any subsequent newly-created Items within that folder.
Item Type
When creating a target Component Item in which to store your component definition, ensure that its Content Type is set to Component, in the Item Properties dialog. If you are creating the Item in a Components type folder, this Item type will be available from the right-click context menu when creating the Item.
The Altium Vault supports item-less component creation. Using the
Create Item » Component command from the menus will enter this mode directly. To get the
Item Properties dialog first, you need to use the
Create Item » Other Item Type command. For more information about the former, see
Item-less Component Creation.
Creating a Component Item within a Components folder - while the correct Content Type is available on the context menu (Component command), using this will take you into
item-less component creation mode. To create a traditional Item using the Item Properties dialog, choose the Other Item Type command from the menu instead.
Item Lifecycle Definition and Revision Naming
When defining a Component Item, be sure to specify the type of lifecycle management to be used for the Item, and the naming scheme employed for its revisions, respectively.
Control over which Item types can use a particular lifecycle definition or revision naming scheme, can be defined and enabled at a global level from within the Content Types dialog, when defining each schema. For a newly-installed Vault, the default schemes assigned for use by a Component Item are: Component Lifecycle and 1-Level Revision Scheme/Component Revision Scheme, respectively.
Once a component definition has been released into the initial revision of a Component Item, these schemes cannot be changed for that particular Item.
Specify the required schemes in the Item Properties dialog, using the Lifecycle Definition and Revision Naming Scheme fields respectively.
If the option to control use of lifecycle definitions and revision naming schemes per content type is enabled for any definitions/schemes, and the Component Item type is not set to use a particular definition/scheme, then that definition/scheme will not be available in the applicable drop-down list.
Selecting the Lifecycle Definition and Revision Naming schemes for a manually created Item.
Observing standard revision naming schemes and lifecycle definitions, across the various types of design item in a Vault ensures smooth, consistent management of those items.
It is a good idea to add a comment and description as part of the Item's definition. This information is used when searching the Vault and enables quick identification of what a Component Item offers.
Releasing a Component Definition
So far, we've discussed the support for a Component Item in the Vault, in terms of related folder and item types. Releasing an actual defined component definition into a revision of such an item can be performed in a single streamlined way.
A component definition can be edited and released into the initial revision of a newly-created Component Item, courtesy of the Vault's support for direct editing. Direct editing frees you from the shackles of separate version-controlled source data. You can simply edit a supported Item type using a temporary editor loaded with the latest source direct from the Vault itself. And once editing is complete, the entity is released (or re-released) into a subsequent planned revision of its parent Item, and the temporary editor closed. There are no files on your hard drive, no questioning whether you are working with the correct or latest source, and no having to maintain separate version control software. The Altium Vault handles it all, with the same great integrity you've come to expect, and in a manner that greatly expedites changes to your data.
When you create a Component Item, you have the option to edit and release a component definition into the initial revision of that item, after creation. To do so, simply enable the option Open for editing after creation, at the bottom of the Create Item dialog (which is enabled by default). The Item will be created and the temporary CmpLib Editor will open, presenting a .CmpLib document as the active document in the main design window. This document will be named according to the Item-Revision, in the format: <Item><Revision>.CmpLib (e.g. CMP-001-0001-1.CmpLib).
Example of editing the initial revision of a Component Item, directly from the Vault - the temporary CmpLib Editor provides the document with which to define your component.
Use the document to define the component as required. For more information on doing this, see Defining the Component.
The Component Library Standard toolbar provides three relevant controls when direct editing:
- - Save Active Document. Use this button to save the changes made to the document. This is required before you can release the document back to the Vault.
- - Release Document. Use this button to release the defined component definition to the Vault, storing it within the initial (planned) revision of the target Component Item. The Edit Revision dialog will appear, in which you can change Comment, Description, and add release notes as required. The document and editor will close after the release. The document containing the source component definition, *.CmpLib, will be stored in the revision of the Item.
- - Cancel Editing. Use this button if you wish to cancel editing. The document and editor will close, and nothing will be released to the target Component Item.
The released data stored in the Vault consists of the source component definition, defined in the Component Library file (<Item><Revision>.CmpLib). Browse the released component in the Vaults panel. Switch to the Preview aspect view to see the referenced models and parametric information.
A released Component Item viewed directly from within the target Vault, courtesy of the Vaults panel.
Item-less Component Creation
The introduction of Component Templates provided an efficient means for creating components using ratified templates, however, an issue within that function became apparent. Since the item is created first, the information in the template (i.e., naming scheme, revision scheme and lifecycle definition) were not assigned since the component item was already created. In order to alleviate this, the Altium Vault, in conjunction with Altium Designer, supports item-less component creation. This does not mean an item is not created, but rather an instance of the CmpLib Editor is accessed directly, which allows the template details to be applied prior to adding and releasing the required component. The actual component item (and planned revision) is created as part of release preparation.
Item-less component creation is available from within an existing folder for Component Items (folder type must be Components). There are two ways to enter item-less component creation mode:
- By using the Create Item » Component command from the Item region's right-click menu.
- By clicking the Add Component button, above the Item listing.
Accessing Item-less component creation mode.
On entering this mode, a temporary (direct editing) instance of the Component Library (CmpLib) Editor will be opened - titled New Component.CmpLib by default - and a component definition added ready. The default presentation and information loaded depends on whether a component template is involved.
- If the mode is accessed from a folder of components and that folder has a component template attached, then model and parametric data, as well as defined Lifecycle Definition, Revision Naming, and Component Naming, will be brought in from that template. The Default Folder will be the folder from which the mode was launched. The added component definition will be fully defined, with information from the template.
- If the mode is accessed from a folder of components and that folder has no component template attached, then a default CmpLib with default settings will be presented. If the source folder has a defined Item Naming Scheme, then this will be used for the CmpLib Component Naming field. The Default Folder will be the folder from which the mode was launched. The added component definition will simply have the folder path and component name entered, all other definition information (models, parameters, component type) must be manually specified.
By way of example we'll just consider the first scenario. After all, getting the component template used is why this mode was created. Just remember, that while the process will be very similar for the other scenario, you will just need to do more manual work if not using a template.
Example CmpLib instance created after launching the item-less component creation mode from a folder (Schottky Diodes) that has a component template assigned to it.
In this case, the component definition is fully defined, with the information from the template. Roll over the image to see the referenced Component Template.
Make any additional adjustments to the component definition as required. Any additional component definition that you add, will be created in accordance with the associated component template.
With the component(s) defined, save the CmpLib then click the button in the editor's main toolbar to release the component to the Vault. The Release Manager dialog will appear with the component already prepared. As part of this automatic preparation, the Component Item itself is created, with a planned revision to accommodate the released definition. Now simply hit the Release Items button, and confirm the release when prompted. Then view your new component in the Vaults panel.
Browsing a newly-created Component Item, and its initial released revision, back in the Vaults panel.
Defining the Component
In terms of storage, component definitions are created and managed within a dedicated Component Library file (*.CmpLib). A single Component Library file can be used to create (and therefore map to) one or more unique Component Items in a target Vault, by entering one or more component definitions. Each component definition will have a common set of parameters and links to required domain models.
In general it is good practice to have one component definition per Component Library but there are exceptions where it makes sense to manage components as a set, such as a set of chip resistors for example. Component Libraries provide for factorization of models so when there are large sets of components that share symbols or footprints then sharing these in a single Component Library can facilitate a higher level of data integrity. If a footprint is changed for example, all of the chip resistors sharing a common model can be updated to easily use the updated and released revision of that footprint, without the risk of missing one.
The CmpLib Editor - used to define the Component Library and its definition(s) during direct editing of a revision of a Component Item - is essentially divided into four main regions, illustrated in the following image and summariz ed thereafter.
The CmpLib Editor can be divided into four key regions.
- Required Models/Parameters - where you define what type of domain models are required by the component definition(s), as well as the place to craft a set of parametric data that will be applied to all component definitions.
- Model Links - where you add links to released domain models, for use in component definitions.
- Preview Window - providing a preview of the currently selected model. This will be graphical for a Symbol and Footprint Item, and textual for other model types.
- Component Definition(s) - this is where a component is defined, including its folder, name, type, referenced domain models, and parametric data.
The
Required Models/Parameters and
Model Links regions can be horizontally collapsed by clicking the
control at their top-left. In addition, the top three regions can be collapsed, leaving just the
Component Definitions region, by using the
control, at the top-right.
CmpLib Document Options
Controls for specifying the target Vault in which the Component Items, generated from the source component definitions, will be created - and also the lifecycle definition and revision naming schemes to be employed for those Items - are available in the Document Options dialog (Edit » Document Options).
Vault settings are defined through the Document Options dialog.
- Target Vault - this field will reflect the Altium Vault in which the Component Item (whose revision you are direct editing) resides. If you have not connected to a Vault, or need to connect to a different Vault, click the Vault Admin button to the right of the drop-down to access the Data Management - Vaults page of the Preferences dialog, from where you can make a connection to the required Vault as necessary.
While you can be connected to various Vaults, you can only be signed in to one Altium Vault at a time.
- Default Folder - use this field to specify a default folder within the target Vault in which to store the released Component Items. Do this by clicking the Choose button to access the Choose Folder dialog - a cut-down version of the Vaults panel, from where you can browse to and choose an existing folder in the Vault, or create a new one on-the-fly. The entry here will be used by default for the FolderPath when adding a new component definition.
- Lifecycle Definition and Revision Naming - use these fields to set a suitable default scheme in each case (
Component Lifecycle
and Component Revision Scheme
respectively). Use the drop-down associated with each field to choose a different scheme, from any of the currently defined schemes available for the targeted Vault.
If the option to control use of lifecycle definitions and revision naming schemes per content type is enabled for any definitions/schemes, and the Component Item type is not set to use a particular definition/scheme, then that definition/scheme will not be available in the applicable drop-down list.
- Component Naming - this field is used to define a default Item Naming Scheme for components released from the CmpLib file, ensuring a unique ID for each resulting Component Item in the Vault. The entry here will be used as the template for automatically naming a newly-added component definition (in its associated Name field). The software will automatically assign the next available unique ID, based on that scheme, having scanned the entire Vault and identifiers of existing Items.
If the parent folder in which the Component Item resides/is being created has a defined naming scheme, then this will be pre-filled as the default. If not, then the default scheme - CMP-{00000} - is provided. You can of course create your own scheme, simply by typing it within the field. Support is available for the use of parameter-based Component Name Templates. Such templates allow you to precisely name, or rather rename your components, based on the currently defined values of parameters available to those components in the CmpLib file. Include a parameter into the naming template using the format [<ParameterName>]. Multiple parameters can be used in a template, and you can also add an iterator macro, specified within curly braces (e.g., {000}, {00A}).
Alternatively, you can override the auto-assigned ID for a component, simply by entering the ID required directly in the Name field for a definition. You always have full control and final say over how the Items are identified!
If the Component Library references a Component Template, the entries specified in the template for Lifecycle Definition, Revision Naming, Component Naming and Default Folder are used to pre-fill the corresponding fields on the Document Options tab of the Document Options dialog. These options (on the CmpLib side) will only be editable provided the corresponding Allow override option is enabled in the template. In addition, the target Vault will be hard-coded to use the same Vault as that in which the revision of the Component Template Item resides.
Required Models/Parameters
This region of the editor is used to specify which domain models are required by the component definition(s), as well as the place to craft a set of parametric data that will be applied to all component definitions.
Define required models and parameters.
- Models - at the most basic level, a design component used in board design requires representation in the schematic and PCB editing domains. It therefore needs schematic symbol and PCB footprint models. These then are added as required models by default and cannot be removed. Use the Add and Remove controls for the region to add/remove other model types as required.
Specifying a model type does not mean the component definition has to use it, but rather adds a field for that model type to the component's definition.
Notice that the PCBLIB entry is available from the list. This allows for a component to have different PCB footprint models associated to it. In addition, the PCBLIB (default) parameter allows you to specify the default footprint model for a component. For more information, see Defining the Default Footprint.
- Parameters - two default parameter entries exist -
Comment
and Description
. These are system parameters. Any number of additional parameters may also be added as required. To do so, simply click the Add control at the bottom of the region, then choose the Parameter entry. A new parameter will be added to the list. Click inside the Parameter Name field to change the name as required. To remove a parameter, simply select it and click the Remove control. The system parameters cannot be removed.
The Show option associated to an entry allows you to toggle the display of the corresponding column for that model/parameter in the lower region of the editor - where the component definitions themselves are defined. This can be a tremendous help where numerous parameters have been defined, and the region starts to become highly congested. Use multi-select in combination with the right-click menu options to toggle the display state of multiple models/parameters.
This region of the editor, through the Add menu, also facilitates the following:
- Linking to a Component Template - the Templates sub-menu lists all Component Template Items currently available in the same Altium Vault in which the Component Item itself resides. Simply click on an entry to create a link to the latest revision of that Component Template Item. Parameters from the template will be brought into this region, and are distinguished by use of the icon. For more information, see Referencing a Component Template.
- Enabling the use of Datasheets - choose the Datasheet entry to do this. For more detail, see Attaching Datasheets to Component Definitions.
Model Links
This region of the editor is used to add links to released domain models, for use in component definitions. The Model Links region can be thought of in terms of a 'bucket' of domain models that can be accessed by any component definition in the Component Library document. Assignment is simply a case of specifying which links are required for each definition.
Links to models of a particular type can only be added provided that model type has been added to the Required Models/Parameters region.
The Model Links region, packed with functionality to streamline model link definition and assignment to the component definitions.
Use the following collapsible sections to learn more about working with model links.
Adding Model Links
There are a couple of streamlined ways in which to add model links to the region:
- Select multiple models for addition within a given Vault folder. Either the latest revision of multiple different model items in that folder, or multiple different revisions of the same model item. Simply click the Add control beneath the Model Links region, then choose the models of the required type through the Choose Models dialog.
Dialog-based addition of multiple model links.
Drag and drop models directly from the Vaults panel. You can drag one or more different models, or one or more different revisions of the same model.
Add one, or multiple models, through drag and drop from the Vaults panel.
Any number of model links may be added, including links to different revisions of the same model. Each link is to a specific named-revision of a model (e.g. SYM-001-0000-2
, for revision 2 of Symbol Item SYM-001-0000
). Using the Show in Explorer command on the right-click menu for a selected model link will quickly access the Vaults panel, with the chosen model (and revision thereof) in focus.
To change a model link, simply click on its Item field, then click on the button. The Choose Model dialog will appear, from where you can browse for and choose, a different model Item, or a different revision of that same model Item. To remove a model link, simply select it and click the Remove control.
If the CmpLib references a component template, all model Items that are defined (as dedicated parameters) in that template, will be brought in and listed in the
Model Links region. For more information, see
Referencing a Component Template.
Out of Date Models
The Revision Status field for a model link is used to indicate whether it is the latest revision of that particular model, or if there is a subsequent revision available for it. When the CmpLib Editor detects that a linked model is not the latest revision, this is flagged by the text Out of Date, shown in a bold font.
To update the link to use the latest revision of the model, simply right-click on the Revision Status entry and choose Update to Latest Revision from the menu. This action:
- Updates the model link to reference the latest revision.
- Updates any usage of that model in a component definition, to use the latest revision of that model.
The CmpLib Editor details any model that is not at the latest revision, right-click to update them.
Direct Editing of Linked Models
Should you need to edit a linked domain model that is used by a component definition in the CmpLib, this can be done most efficiently using the direct editing paradigm:
- Right-click on the model entry in the Model Links region of the editor, and choose the Edit command from the context menu.
- The model will open in a temporary instance of its associated editor. Make changes as required to the model and save.
- Then release into the next revision of the parent item in the Vault, using the button on the editor's standard toolbar. The Create Revision dialog will appear, in which you can enter a different Comment and/or Description, or simply enter a note of the changes made in the Release Notes field.
Discard any changes and come out of editing by using the
button, also available on the editor's standard toolbar.
Edit and release a model directly from the Model Links region of the CmpLib Editor.
The Create Revision dialog provides the ability to update all Component Item revisions that reference this changed Model Item revision. However this is typically used when editing a domain model item directly, and not through the model links of a currently open CmpLib. While this could be left checked, proceeding will open another editing instance for the component you are currently defining - or a combined editing instance including all affected Component Item revisions, where multiple components reference the changed model. This could get quite confusing, so it is is far better to disable this option before proceeding.
Clicking OK in the Create Revision dialog (with the option to update affected items disabled) will effect the release. The temporary model editor will close and you will be returned to your (already open) CmpLib Editor. The model link and any instance where that link has been assigned to defined components, will be automatically updated with this latest revision.
Model link and assignments are updated with the latest revision after the release process completes.
Cloning a Model Link
To clone an existing referenced domain model, simply select it in the Model Links list, right-click, and choose the Clone command from the context menu. The process flow is similar to that followed when cloning an Item Revision in the Vaults panel:
- A direct editing session is launched, with a copy of the source document - stored with the chosen model link's Item-Revision - opened in the associated (and temporary) editor.
- Make changes as required.
- Save the document.
- Click the button on the editor's standard toolbar, to release the document to the Vault (shortcut Ctrl+Alt+S). The Create Item dialog will appear. By default, the clone Item will adopt the same revision naming and lifecycle definition schemes as the original Item, and will be created in the same folder. These properties can be changed if required. You will need to add a Comment and Description - these are not cloned from the original.
- Once the Item properties are set as required, click OK. The new Item and its initial revision will be created, the document released, and the temporary editor closed. The clone Item Revision will be added as a referenced link at the bottom of the list of Model Links, back in the Component Library Editor.
The newly-cloned Item Revision will be added as an additional model link.
Controlling the Display of Columns
To enable or disable the display of a specific column, click the Column Control button and disable any columns you do not want to be visible.
Hide or show model link data columns as required.
Alternatively, to hide a column, simply click and drag its header to a point in free space, until a large cross appears, then let go.
Drag a column header into free space to hide its display.
The order of the columns is customizable. Simply click on a column's header and drag it horizontally to the required new position. Valid positions are highlighted by green positional arrows.
With the exception of the column containing the icon for the model type, the width of a column can be modified, simply by clicking and dragging the right-hand separator (in that column's header). If columns stretch beyond the extents of the viewable area, a horizontal scrollbar will appear.
Grouping Model Links
Model links can be grouped based on any of the visible column headings. To do this, click and hold on a column header, then drag and drop it onto the text that says Drag a column header here to group by that column
.
For example, the following image illustrates the model links being grouped by Revision Status. Doing so separates the model links into as many groups as there are different values in the grouping column - in this case two groups are created, for Revision Status: Out of date, and Revision Status: Up to date.
Grouping the model links based on the values in a column, in this case by Revision Status.
A hierarchy of groups can be created, by nesting the column headers. Within the grouped columns region, use drag and drop to redefine the grouping 'sort order' as required.
Sorting
Model links can be sorted by a specific column simply by clicking on that column's header. Click once to sort in ascending order (based on the content of that column). Click again to sort in descending order.
You can sort by multiple columns. With the model links already sorted by a specific column, simply Shift+click on another column to 'sub-sort' by the content of that column.
To remove sorting for a column, Ctrl+click on its header.
Column-based Filtering
Like an Excel spreadsheet, the model links can be further filtered by the contents of each column. To do this, click the small funnel (filter) icon, located at the right-hand side of a column header (). A menu will appear containing a checkbox for each value present in that column. Enable the required checkbox(es) to reduce the list to only include model links with that value.
Alternatively, for greater filtering control select (Custom..), which displays the Custom Filter dialog. Use this dialog to setup a custom filter to meet your requirements, by specifying which rows of information you want to show based on filter criteria you apply to the data column.
Choose to apply standard or customized column filtering.
When a column filter is applied, the filter icon is displayed in blue (), indicating that there is filtering applied based on that column. Filtering can be applied to multiple data columns. Each 'column filter' becomes an ANDed condition in the overall filter. A textual representation of the filtering currently in effect will be presented at the bottom of the region.
An example of column filtering in action.
To clear filtering for a column, choose the (All) entry from the filtering drop-down. To clear filtering completely, click the small cross to the left of the textual representation of the filter. To disable the filter, simply uncheck the check box to the left of its textual representation. To enable again, check the check box.
Within an editing session the history of just used filters is available. Click the button to the right of the textual representation of the current filter to display the history. The history list is cleared upon closing and reopening the CmpLib file.
To further customize the current filter, click the Customize button, to the far right of the textual representation of the filter, to open the Filter Builder dialog. Use this dialog to create more sophisticated and complex filters as needed.
Use the Filter Builder dialog to create more sophisticated filtering.
Commonly used filters can be saved and re-used. This is done in the Filter Builder dialog by clicking the Save As button to save the current filter in a Filters file (*.flt). Click the Open button to reload a previously saved filter.
Component Definitions
Once you have specified the set of parameters, and have your 'bucket' of model links at the ready, you can proceed with the 'meat' of the Component Library document - definition of the required component(s). This is performed in this lower region of the document.
Define your components in a logical and intuitive way, using the hierarchy-less component editor.
Add a single, new component definition by clicking the Add control at the bottom of the region, or by using the corresponding command of the same name on the region's right-click context menu. Each component definition appears as a single row entry containing the following information:
- Component: FolderPath - use this field to release the component to a specific folder in the target Vault. For each newly added component to the grid, this field can be populated with a default location, if specified in the Default Folder field in the Document Options dialog (Edit » Document Options). Whether or not a default path is specified, you have full control over where in the target Vault a component will be stored. To manually specify a target folder, click once inside the FolderPath field for a component to reveal the button, and click to access the Choose Folder dialog. Browse to, and choose an existing folder, or create a new one on-the-fly.
Taking the time to carefully determine folder paths for your components ensures they are released into the correct destination folders from the outset. However, Items can be easily moved to any folder in the Vault structure, post release, if need be.
- Component: Name - this field is used to determine the ID used for the released Component Item in the Vault. For each newly added component to the grid, this field is populated in accordance with a default naming scheme, specified in the Component Naming field in the Document Options dialog. The software will automatically assign the next available unique ID, based on that scheme, having scanned the entire Vault and identifiers of existing Items.
A default Item naming scheme - CMP-{00000} - is provided, but you can of course create your own scheme, simply by typing it within the field, ensuring that the variable portion is enclosed in curly braces (e.g. CMP-001-{0000}). Alternatively, you can override the auto-assigned ID for a component, simply by entering the ID required directly in the Name field for a definition. You always have full control and final say over how the Items are identified!
- Component: Type - this field supports the ability to define the type of component and is a key attribute used to facilitate targeted searching of Vault components. Simply click on this field then click to access the Component Type dialog. Use this dialog to select the required type of component then click OK - the chosen type will be inserted as the value for the Type attribute in the main definitions grid.
The CmpLib Editor can also accommodate the Component Type that is defined - as a dedicated parameter (ComponentType) - in a referenced Component Template.
- Models - these fields correspond to the entries in the Required Models/Parameters region of the document. There is one field per required model that is added. There will always be at least two models associated to a component, corresponding to the default schematic symbol and PCB 2D/3D Component models. Each field is used to specify which of the linked models (in the Model Links region) is to be used for the component.
Toggle the display of model columns by enabling/disabling the associated Show option for a Required Model entry respectively. Use multi-select in combination with the right-click menu options to toggle the display state of multiple model types.
- System Parameters - these are the
Comment
and Description
parameters. Enter values for these as required. The Comment
parameter can be particularly useful as a means of tagging the component with a more humanly-readable name, such as the name used for that component in other component management methodologies. This name is also available and indexed when searching within the Vault and will provide a good means to locate specific components beyond having to remember their Item ID!
The CmpLib Editor can also accommodate system parameters - Comment and Description - that are defined in a referenced Component Template.
- Template Parameters - these fields correspond to user parameters brought into the CmpLib from a referenced Component Template Item. There is one field per parameter. The left-to-right ordering of the parameters in a component definition corresponds to their top-to-bottom ordering in the Required Models/Parameters region. Simply enter values for parameters as required, and where applicable. For example, parameters that have been marked Read Only in the template will not be editable, while other parameters will be. And if they have been marked as Required in the template, they must be given a value, or you will not be able to release the component definition.
- Parameters - these fields correspond to the additional user parameters that you have entered in the Required Models/Parameters region of the document. There is one field per additional parameter. The left-to-right ordering of the parameters in a component definition corresponds to their top-to-bottom ordering in the Required Models/Parameters region. Simply enter values for parameters as required.
- Release: Current Rev. - this non-editable field reflects the current (most recent/latest) revision of the Component Item in the target Vault.
- Release: Next Rev. - this non-editable field reflects the next revision of the Component Item that will be created when the component definition is next released, in accordance with the chosen revision naming scheme.
- Release: Action - this field shows the action that will be taken by the release manager for this particular component definition, as part of the release process. For a component definition that has not yet been released, this entry will display
Create Item
. For a definition that has already been released, this entry will display Create Revision
. If a planned revision of a Component Item is being targeted, then the entry will display Release To Existing Revision.
The Current Rev., Next Rev., and Action fields - which collectively form the Release Status - can be toggled with respect to their display in the region, using the Show Release Status option, located at the bottom of the region. Toggle the display of parameter columns by enabling/disabling the associated Show option for a Required Parameter entry respectively. Use multi-select in combination with the right-click menu options to toggle the display state of multiple parameters.
A component definition needs to have at least one linked model otherwise it will not be released. Also, that model Item must not be in the Planned
state. A component definition will also not be released if it has been assigned an ID already in-use by an existing Item in the target Vault.
Working with Component Definitions
Use the following collapsible sections to learn more about working with this region of the editor, including some cool and time-saving features and functionality.
Assigning Model Links to Existing Components
For existing component definitions, the required model links can be assigned in the following ways:
- Drag and drop a model link into the relevant column of a component definition.
Assign a model to an existing component using drag and drop from the Model Links region to the corresponding model column for that component.
- Use the drop-down field for a model column to access a dedicated model link pop-up window. This presents a grid of all existing model links applicable to the model type being assigned, complete with all data columns. This can be a real time saver for finding and assigning a model, where the number of component definitions hamper drag and drop techniques, or the top section of the CmpLib Editor - housing the Model Links region - is collapsed. And this method can be used to assign the same model link to multiple component definitions - just select the model column for each component before accessing the pop-up window.
Click and drag the control at the bottom-right of the window to resize the pop-up. Click the column control button and disable any columns you do not want to be visible. Columns can be reordered by dragging a column header.
Pop-up window size and column visibility are maintained across editing sessions.
Use the pop-up's search field to quickly locate the model required. Dynamic highlighting based on data across any column is applied as you start to type characters. Select the model link required and either press Enter or double-click to assign that model.
Use the dedicated model link selection pop-up to search, locate and assign the model required.
Creating a New Component with a Linked Model
Where a component definition does not yet exist, one can be created, along with the required model link automatically assigned, in the following ways:
- Drag and drop a model link from the Model Links region, into free space within the Definitions region, to add a new component definition that uses that model.
Assign a model and add a new component on-the-fly, using drag and drop from the Model Links region.
- Drag and drop a model directly from the Vaults panel into the Definition region. A new component definition using that model will be added. In addition, if that model does not exist in the Model Links region, an entry will be added for it.
Assign a model and add a new component on-the-fly, using drag and drop from the Vaults panel. The model link will be added to the Model Links region, if it does not exist already.
Addition of Multiple Components
The CmpLib Editor facilitates addition of multiple new components in one hit. Simply right-click and choose the Add Components command. Then, in the Add Components dialog that is presented, enter the number of components you wish to add. In concert with the grids multi-cell editing support, and copy/paste features, you can quickly build an impressive array of component definitions in quick time.
Be advised that entering too large a number in the Add Components dialog can have an impact on performance, and may 'tie' the software for a considerable time while the request is processed!
Add multiple new component definitions in two quick steps.
Adding Components from a Supplier Search
Providing a boost to creation of Vault components, Altium Designer supports the ability to search for one or more real-world parts, courtesy of Supplier Search functionality, and then add those parts into the active Component Library document. This functionality is delivered through a purpose-made extension for the Component Library Editor - the Component From Supplier Search extension. Not only do you get a new component definition entry for each selected part, you get all of its parameters, and any data sheets, leaving you to just organize some domain models, set the component type, and then release!
The Component From Supplier Search
extension.
This feature is only made available, provided the Component From Supplier Search extension is installed as part of your Altium Designer installation. This extension is installed by default when installing the software, but in case of inadvertent uninstall, can be found back on the Purchased tab of the Extensions & Updates page (DXP » Extensions and Updates).
The feature is accessed from the CmpLib Editor's Definitions region. Simply right-click and choose the Operations » Add from Supplier Search command from the region's context menu. Alternatively, click within the definitions area, and use the keyboard shortcut Shift+Ctrl+M.
The command can also be accessed fromm the editor's main Edit menu (Edit » Operations » Add from Supplier Search).
The Add Supplier Links dialog will appear - familiar to anyone who has used the Linking to Supplier Data feature to add supplier links to a schematic component. Simply search for the required part, then click the OK button.
Access the Add Supplier Links dialog, and search for one or more parts you'd like to bring in to your CmpLib.
You can select multiple parts in the dialog, for simultaneous addition, each will be added as a separate component definition, back in the CmpLib document. Alternatively, perform numerous sequential searches, adding one or more components each time, to build up a library of required components.
After clicking OK, the following will occur:
- Component entries for each selected part will be created in the definitions area of the CmpLib. Each definition will:
- Be named using the next available unique Item ID, and in accordance with the defined Component Naming scheme employed by the CmpLib.
- Have the value for the selected part's Manufacturer Part Number parameter assigned as the value for its Comment system parameter.
- Have the value for the selected part's Description parameter assigned as the value for its Description system parameter.
- All parameters defined for a selected part (as visible for it in the dialog) will be added to the Required Models/Parameters list. All will be made visible (associated Show option enabled). This just means a column will be displayed for each, by default, in the Definitions region.
- Parametric entries will also be added for each datasheet available for a selected part (in the form of a ComponentLinknDescription and ComponentLinknURL pairing).
Example of the resulting definition, and added parameters, for the selected part in the Add Supplier Links dialog.
Setting Component Type
The CmpLib Editor supports the ability to define the type of component when configuring a component's definition. This facilitates targeted searching through the Vault's powerful Search facility - a facility that not only allows you to search by component type, but allows you to search smarter, with supported unit-aware component parameters.
The type of component is specified through the Type attribute in the Component region of the definitions area. Simply click on the Type field then click to access the Component Type dialog. Use this dialog to select the required type of component then click OK - the chosen type will be inserted as the value for the Type attribute in the main definitions grid.
Example Component Library, with the Type attribute for a component definition set to Diode.
The Component Type dialog presents a default set of component types. Commands available from the dialog's right-click context menu allow you to craft this listing to better suit your needs - either by adding new types and sub-types, or editing and removing existing types. Also, the Type field for multiple component definitions can be set in a single action. Simply select the Type field for each required component definition, then choose the type for one, to apply to all others.
It is also possible to change the component type for one or more components after release to a completely different type, on-the-fly. In the Vaults panel, simply select the component(s) that you want to change, then right click and choose the Operations » Change component type command from the context menu. The Component Type dialog will appear from which you can select the new component type.
The CmpLib Editor can also accommodate the Component Type that is defined - as a dedicated parameter (ComponentType) - in a referenced Component Template.
Support for Unit-aware Component Parameter Data Types
The CmpLib Editor supports unit-aware component parameter data types that are defined within a referenced Component Template. These data types are unit-aware, with a range of popular unit prefixes supported. As such, y ou can enter a parameter's value directly into the applicable field for a component definition using a range of formats - such as 2.2k, 2k2, 4M, 2.5GHz - with the Altium Vault engineered with the requisite smarts to recognize the numerical value behind those entries.
Unit-aware data types for component parameters can only be defined through a component template.
Component parameters from a referenced component template that have unit-aware data types.
When entering a value for a component parameter that uses a unit-aware data type - as the required value in a component definition - the following are things to consider:
- You can enter the value in a range of different formats:
- Numerical value only (e.g., 10). Note that if the data type has a unit, this will be applied automatically. Those types with units, have the unit in brackets after their name.
- Numerical value and units (e.g., 10F).
- Numerical value with prefix (e.g., 10k). The appropriate unit will automatically be added (where applicable).
- Numerical value with prefix and units (e.g., 10kF).
- Numerical value with prefix in typical engineering format (e.g., 2k2, 2k2Ohm, 10r2, 10R2). The value will automatically be normalized accordingly (e.g., 2K2 will become 2.2k).
- You can enter prefix and/or units with or without a space after the numerical value (e.g., 10uF, or 10 uF). The space will be automatically stripped.
Note that engineering abbreviations are case insensitive, so entering 2k2 is the same as entering 2K2, and entering 100R is the same as entering 100r. The only exception is M (Mega) and m (milli).
Supported Units
The following unit-aware data types are supported:
Most data types have a unit (in brackets). This will be applied if no unit is specified when entering a value for a parameter.
- Volt(V)
- Ampere(A)
- Ohm
- Farad(F)
- Henry(H)
- Watts(W)
- Hertz(Hz)
- Celsius(C)
- Decibel(dB)
- Percent(%)
- Metre(m)
- Gram(g)
- Second(s)
Supported Prefixes
The following table lists the prefixes that are supported when entering a value for a unit-aware parameter type.
Prefix |
Term |
Value (Scientific) |
Value (Normal) |
T |
Tera |
1 x 1012 |
1,000,000,000,000 |
G |
Giga |
1 x 109 |
1,000,000,000 |
M |
Mega |
1 x 106 |
1,000,000 |
k |
kilo |
1 x 103 |
1,000 |
d |
deci |
1 x 10-1 |
1 / 10 |
c |
centi |
1 x 10-2 |
1 / 100 |
m |
milli |
1 x 10-3 |
1 / 1,000 |
u |
micro |
1 x 10-6 |
1 / 1,000,000 |
n |
nano |
1 x 10-9 |
1 / 1,000,000,000 |
p |
pico |
1 x 10-12 |
1 / 1,000,000,000,000 |
Note that the use of some, or all prefixes may not be applicable, depending on the parameter type. For example, no prefix is valid for a Percentage. The software will alert you to any invalid use of prefixes.
Validating a Parameter's Value
When a unit-aware data type is used for a component parameter, the entered value is validated against the specified data type. This ensures that the correct measurement unit for that data type is being used, where the unit is entered. For example, a parameter of type Volt cannot have a value of 10uA.
In the CmpLib Editor, entering an invalid value for a parameter will cause that value to be highlighted in red text. This is also the case when copying and pasting data between cells.
Data validation - the CmpLib Editor has the smarts to alert you to a mismatch between the value entered for a unit-aware parameter, and its data type.
The use of unit-aware parameter data types facilitates targeted searching of components through the Vault's
Advanced Search facility - a facility that not only allows you to search by component type, but allows you to search smarter, with range, greater than, or less than searches. Using the power of unit-aware component parameters, you can quickly define a search, for example, to find all capacitors with a capacitance between 47uF and 220uF.
Parameter Name Templates
The CmpLib Editor provides support for the use of parameter-based Component Name Templates. Such templates allow you to precisely name, or rather rename your components, based on the currently defined values of parameters available to those components in the CmpLib file. Include a parameter into the naming template using the format [<ParameterName>]. Examples might be:
- CMP-[Value]
- CMP-[Part Number]
- [Comment]
- [Comment]-[Value]
- [Value]
- [Part Number]
You can also use multiple parametric declarations in your templates, for example:
- CMP-[Part Number]-[Value]
- CMP-[Manufacturer Part Number]-[Value]-[Tolerance]
In addition, and purely optional, you can also add an iterator macro, specified within curly braces (e.g., {000}, {00A}), for example:
- CMP-[Value]-{001}
- CMP-[Part Number]-{00A}
At the highest level, the required naming template can simply be entered as the default naming scheme into the Component Naming field of the Document Options dialog. The initial index will always be zero in this case. For greater control, select the component(s) to be renamed, right-click, and choose the Operations » Rename Component (Operations » Rename n Components) command from the context menu. You will be presented with the Component Name Template dialog. Use this dialog to specify the required Naming Scheme, and control the Initial Index (where an iterator macro has been added to the template).
Note that the dialog will initially show the default naming scheme entered in the Document Options dialog. If you leave this scheme, you will not be able to change the Initial Index. The latter can only be changed if a different naming scheme is used.
An example of the use of the Comment and Value parameters in a naming template, to quickly rename selected components defined in a CmpLib.
Attaching Datasheets to Component Definitions
One or more datasheets can be attached to one or more components, while defining component(s) through the Component Library Editor. This, for example, allows you to quickly attach the same required datasheet(s) to all components in a particular family.
Linking various datasheets, as seen from the perspective of editing a component in the Component Library Editor.
Attaching datasheets to a component definition involves a sequence of steps, summarized here and detailed in the sections thereafter:
- Enabling the use of datasheets.
- Uploading datasheets to a selected component.
- Assigning uploaded datasheets to other component definitions.
Enabling the Use of Datasheets
To be able to attach datasheets to a component definition in the editor, you need to first enable the use of datasheets. This is done from the Required Models/Parameters region of the editor. Simply click on the Add control below at the bottom of the region, and choose Datasheet from the context menu.
Specifying the use of datasheets does not mean a component definition has to use it, but rather adds a field for datasheets to the component's definition.
Enable the use of datasheets for components.
Remember that the Show option associated to the entry allows you to toggle the display of the corresponding Datasheets column in the lower region of the editor - where the component definitions themselves are defined.
Uploading Datasheets to a Selected Component
Having enabled the use of datasheets, you now need to upload them. Essentially, you upload any number of datasheets for the currently selected component, but can then assign all, or specific sheets, across the various components being defined. Once the Datasheet entity has been added to the Required Models/Parameters region, a Datasheet entry will be presented in the Model Links region. Clicking on this will show the list of datasheets currently assigned (linked) to the selected component, in the preview region.
The preview region will only show the datasheets linked to the selected component. If multiple components are being defined in the editor, clicking the Datasheet entry in the Model Links region will show a blank preview.
While the Datasheet entry appears in the Model Links region, it is not a model link in the true sense of the word. It is not a single Item, but rather a 'bucket' representing a summation of Datasheet Items into which datasheets are individually uploaded. It presents no other data attributes (no revisions, location, release status, etc).
The Datasheet 'bucket', and the available listing of uploaded datasheets. In reality, each datasheet is uploaded into a unique underlying Datasheet Item.
With a component definition selected in the editor, a datasheet can be uploaded to that component in various ways:
- Dragging and dropping from Windows File Explorer to the preview region, or the Datasheets cell for that component definition.
- Dragging and dropping a datasheet link from a web page in an external web browser, to the preview region, or the Datasheets cell for that component definition.
- Right-clicking in the preview region and choosing the Add File command from the context menu. Use the Open dialog to browse to, and open, the required datasheet(s).
Example demonstrating attachment of datasheets from a manufacturers website. The first component is selected and the datasheet attached by dragging and dropping onto the
preview region. Then the second component is selected - notice the previous datasheet attached to the first component only. A different datasheet is then dragged and dropped,
this time onto the Datasheets cell for that component.
Once uploaded, you can:
- Open a datasheet by clicking on its entry in the preview region (or by right-clicking on its entry and choosing Open from the context menu).
- Change the caption for a datasheet, by right-clicking on its entry in the preview region and choosing Edit from the context menu. Changing a caption for a datasheet is local to that component.
- Remove the datasheet from the component, by right-clicking on its entry in the preview region and choosing Delete from the context menu.
- Download the file by right-clicking on its entry in the preview region and choosing Save As from the context menu.
Assigning Uploaded Datasheets to other Component Definitions
When you initially attach (upload) a datasheet, you are doing so for the currently selected component. But the beauty of the system is that all uploaded datasheets are available for linkage to other components being defined in the CmpLib as well. Simply click the control at the right of the Datasheets cell to access a listing of the available datasheets, and use the associated checkboxes to attach/remove a datasheet to/from the component.
Only those datasheets uploaded during the session with the CmpLib Editor will be available, and not all datasheets uploaded to components throughout the entire Altium Vault.
Example demonstrating attachment of datasheets that have already been uploaded, to another component definition.
Each datasheet that is assigned to a component appears in the Datasheets cell, separated by a comma.
Validation Checking of Component Naming
The software validates the IDs of components that are being created by multiple users for release to an Altium Vault, and thereby prevent duplicated Item ID issues. When a user creates a Component Item, the assigned Item ID is 'locked', p reventing another user from using that ID, even if the first user has not, or does not, release that component. If other users change the Item ID manually as part of their component definition - to one that is currently used by an existing Item (or an intended-to-be-created Item), the ID will simply be changed for the next available, unused ID, in accordance with the applicable naming scheme.
A locked Component Item ID will be released automatically after 30 minutes, if no release has taken place within that time.
As an example, consider user Desmond Igner, who is in the process of creating a Vault component, with Item ID CMP-00215:
User Desmond Igner, creating a new Vault component, with automatically assigned ID CMP-00215.
And a second user - admin admin - who is also creating a new Vault component. This user would have been given a designated ID that was available, but has manually changed the Item ID to CMP-00215.
User admin admin is also creating a new Vault component, and has manually changed the ID to CMP-00215.
Because the ID CMP-00215 has been locked for the first user, when the second user attempts to release, the system detects the clash and adjusts the ID to the next available. In this case CMP-00218, which means some other users are also creating components components with reserved IDs CMP-00216 and CMP-00217.
The system detects the clash in IDs, and resolves it by changing the ID when it comes to user admin admin releasing.
Cloning a Component Definition
Facilitating the ability to quickly create component definitions in a source Component Library, that differ slightly from one another, the editor provides cloning functionality. To clone an existing definition, simply select it in the list of definitions, right-click, and choose the Clone Component command from the context menu (shortcut: Ctrl+D). The clone will be added to the bottom of the list of definitions.
The clone will be an exact replica of the original source component definition, in terms of:
- Targeting the same folder within the target Vault - the folder in which the original definition exists, or targets (if not itself released as yet).
- Referencing the same domain models.
- Having the same values for system and user-defined parameters.
It will differ only with respect to:
- Having the next available unique Item ID.
- Being set to be released into the initial revision of a new Component Item (Action set to Create Item).
An example of cloning a component definition - once cloned, make any changes as necessary, for example to the values of one or more parameters.
Grouping Component Definitions
Component definitions can be grouped based on any of the visible column headings. To do this, click and hold on a column header, then drag and drop it onto the text that says Drag a column header here to group by that column
.
For example, the following image illustrates the component definitions being grouped by the Case-Metric parameter. Doing so separates the component definitions into as many groups as there are different values in the grouping column - in this case nine groups are created.
Grouping the component definitions based on the values in a column, in this case by the Case-Metric parameter.
A hierarchy of groups can be created, by nesting the column headers. Within the grouped columns region, use drag and drop to redefine the grouping 'sort order' as required.
Sorting Component Definitions
Component definitions can be sorted by a specific column simply by clicking on that column's header. Click once to sort in ascending order (based on the content of that column). Click again to sort in descending order.
You can sort by multiple columns. With the component definitions already sorted by a specific column, simply Shift+click on another column to 'sub-sort' by the content of that column.
To remove sorting for a column, Ctrl+click on its header.
Column-based Filtering of Component Definitions
Like an Excel spreadsheet, the component definitions can be further filtered by the contents of each column. To do this, click the small funnel (filter) icon, located at the right-hand side of a column header (). A menu will appear containing a checkbox for each value present in that column. Enable the required checkbox(es) to reduce the list to only include component definitions with that value.
Alternatively, for greater filtering control select (Custom..), which displays the Custom Filter dialog. Use this dialog to setup a custom filter to meet your requirements, by specifying which rows of information you want to show based on filter criteria you apply to the data column.
Choose to apply standard or customized column filtering.
When a column filter is applied, the filter icon is displayed in blue (), indicating that there is filtering applied based on that column. Filtering can be applied to multiple data columns. Each 'column filter' becomes an ANDed condition in the overall filter. A textual representation of the filtering currently in effect will be presented at the bottom of the region.
An example of column filtering in action.
To clear filtering for a column, choose the (All) entry from the filtering drop-down. To clear filtering completely, click the small cross to the left of the textual representation of the filter. To disable the filter, simply uncheck the check box to the left of its textual representation. To enable again, check the check box.
Within an editing session the history of just used filters is available. Click the button to the right of the textual representation of the current filter to display the history. The history list is cleared upon closing and reopening the CmpLib file.
Presentation of Data
Depending on the type of components being defined, there could be a sizeable number of regular (user-defined) parameters, all of which, when added to the other columns of data, can create a veritable tangle of partially-legible content. Addressing this, a couple of display modes are available for the component definitions region. Switch between modes using the control at the bottom-right of the region.
The control presents the mode that will be enabled when clicking upon it, and not the currently enabled mode.
- Best Fit - in this mode, each column of data is sized to display all data within it, in accordance with the largest data entry and adding a little padding for good measure. Since each column is sized to display its data, the columns can collectively extend beyond the currently viewable area. In support of this a horizontal scrollbar is provided to allow ease of reading.
- Auto Width - in this mode, the software will attempt to display all data columns within the viewable area of the grid, stretching or condensing as needed. This mode works fine when there are not so many data columns, but legibility can suffer when a great number of columns are present.
Example use of the Auto Width and Best Fit presentation modes.
To further aid in display of data, selectively toggle the display of model and parameter columns. Do this using the Show option for each, available in the Required Models/Parameters region of the editor.
You can also manually adjust the width of data columns to fine-tune display of your data.
Component Definitions - Editing Techniques
Depending on the components you are creating, a single Component Library file may end up containing a sizable number of component definitions. In some cases, these definitions may differ only slightly and many may require similar model or parametric information. The document supports various editing features that enable you to quickly effect changes to one or more component definitions.
- Multi-cell editing is implemented for models and parameters. Multiple data cells within a column can be selected for operation using standard Ctrl+click, Shift+click and click&drag keyboard functionality. To assign a model to multiple components, select the range of cells, then click the drop-down select to display the model link pop-up window, as shown below. Double-click on the required model in the pop-up, this model will then be assigned in all selected model cells.
Select multiple components, then select a model for them all in a single action.
For parameters, simply select the required cells within the same column, then enter the required value for the focused cell and either click away, or press Enter. All cells in the selection will receive that same value.
This feature can also be used for the
FolderPath. Simply select the entries in the
FolderPath column for the applicable component definitions, click the
button for the focused entry, and choose the required target folder in the
Choose Folder dialog. All selected definitions will have their
FolderPath changed to point to this folder.
- You can cut, copy and paste data between selected data cells using the corresponding commands available on the right-click menu.
- You can clear the contents of selected data cells using the Delete key (or the Clear Contents command on the right-click menu).
- You can copy, cut, and paste selected component definitions, using Ctrl+Shift+C, Ctrl+Shift+X and Ctrl+Shift+V respectively.
- You can remove selected component definitions from the file completely, using the Remove button below the component definition grid, the Remove command from the right-click menu, or the Ctrl+Del shortcut.
- You can refresh the content of the grid using the Refresh command on the right-click menu, using the F5 keyboard shortcut, or by clicking the button on the Component Library Standard toolbar.
- You can copy selected data cells to the Windows clipboard, for manipulation in an external spreadsheet application. Component definition information in an external spreadsheet can also be pasted back into the component definitions region.
It is also possible to collapse the upper region of the CmpLib editor by clicking the small arrow
at the upper right of the editor, thereby dedicating the entire display area to the editing of component definitions.
Browsing a Released Definition
Once released, you can browse a component directly in the Vault using the Vaults panel. Jump directly to a Component Item in the Vault from the Component Library, by right-clicking on its component definition and choosing the Operations » Show in Explorer command.
Jump to a released Vault component in the Vaults panel, directly from its source component definition.
Targeting an Existing Component Item
For the most part, you would typically leave the creation of the Component Items in the target Vault to be part of the release process. You simply add your component definitions, assign Item IDs and away you go - Item creation 'on-the-fly' as it were. However, you may have created (or want to create) Component Items directly in the Vault, then link to these existing Items. Not a problem.
The right-click Operations sub-menu associated with a component definition contains a couple of commands to support linking a definition to a manually-created Component Item:
- Change Link To Target Item - use this command to access the Choose Target Item dialog, which you can use to browse for and select the required Component Item in the target Vault.
- Clear Link To Target Item - use this command to clear the link to an existing Item in the Vault. The Release-related fields of the component definition will revert back ready to create a new Item.
A Word About Linked Simulation Models
Related page: Managed Simulation Models in an Altium Vault
As with Symbol and Footprint Items, a component definition in a CmpLib can also reference a revision of a Simulation Model Item. Adding a model link of this type is exactly the same as for a Symbol and Footprint, so refer back to the previous sections for information on that. Here, we look at including component-level simulation parameters, and also configuration of pin mapping.
Adding Component-Level Simulation Parameters
When using a simulation model for a component in a design, parameters specific to that model can be specified at two different levels:
- Model-Level Parameter - specified as part of the simulation model definition itself (in the SimModel file), and released with that definition into a revision of the linked Simulation Model Item.
- Component-Level Parameter - specified as part of the component definition (here in the CmpLib), and released with that definition into a revision of the linked Component Item.
Component-level parameters are used for parameters that are shared between multiple models or where the designer wants to make such a parameter visible/editable on the schematic (e.g. value, frequency etc).
Parameters are added at the component-level in the Required Models/Parameters region of the Component Library document. It is important to note that the naming of parameters must be the same as those parameters defined at the model-level. To see the model-level parameters, and therefore which parameters can be added at the component-level (and their names!), select the SIM model link and click the View Parameters control, at the bottom of the preview window.
View the model-level parameters for a Simulation Model Item, to see which parameters can be added at the component-level - and how they are named!
Armed with the available model-level parameters, you can now proceed to add any of those same parameters at the component-level - to be available to any component definition in the library. To do so, simply click the Add control at the bottom of the Required Models/Parameters region. A new parameter entry will be added to the list. Change the name as required - remembering to match exactly the name of the corresponding model-level parameter.
Add sim-related parameters at the component-level.
When an instance of the released component is placed in a design, a simulation parameter can have a different value at the component-level, to that for the same parameter at the model-level. When the netlist is generated, the component-level parameter will have priority.
For some of the built-in SPICE3f5 models, entering a value for a parameter at the component-level will override a related parameter defined in a linked model file (*.mdl
). For a semiconductor capacitor, for example, specifying a value for the component-level Width
parameter will override any value specified for the DEFW
parameter in the associated model file. If a parameter is specified at the component-level for a subcircuit model, that value will override the value defined for it in the linked subcircuit file (*.ckt
). If a parameter is specified at the component-level for a digital device, that value will override the value specified for that parameter in the source SimCode definition (*.scb
).
Pin Mapping
Once the link to the required SIM model has been chosen, you need to ensure that the pins of the component - when represented in the schematic domain - are correctly mapped to the pins of the simulation model. This is performed in the Pin Mapping dialog, accessed by right-clicking on the SIM model entry and choosing Operations » Edit Pin Mapping from the context menu. For each schematic pin, simply use the available drop-down to change the associated Model Pin entry accordingly. If the device is multi-part, be sure to check the mapping for each part.
Ensuring correct schematic pin-to-model pin mapping.
For a multi-part component, the ability to exclude a part from simulation is also determined through the Pin Mapping dialog.
For the built-in SPICE3f5 and supported PSpice models, the function of each of the pins in a model can be found in the general form section for that model, in the SPICE 3f5 user manual. For subcircuit models, the manufacturer will typically insert comments for each pin of the model, describing that pin's function. If no commenting is evident, then the pinout of the model will typically be that of the physical device itself. Consult the datasheet for the device in this case. For Digital SimCode models, the mapping of the component pins to the INPUTS
and OUTPUTS
declared in the SimCode file will depend on the input and output node list entries in the netlist template.
Full Support for Digital SimCode Models
When using a Vault-based component that references a Simulation Model Item featuring a SimCode definition (in a *.scb
file), that scb file (released with the SimModel file to the Vault) is used for subsequently run simulations. In the generated simulation netlist (*.nsx
file), the model reference will contain the full path to the scb file, cached locally from the Vault. For example:
.MODEL 74LS90 xsimcode(file="C:\ProgramData\Altium\AD {A586F887-1E00-4F36-9EC8-61C78B91FA73}\VaultsFileCache\0072B38F-E431-40BB-B462-FD262DB9CDAB\9A7AB3DA-D4A5-43B3-9C88-33A56E86A0BF\Released\LS.SCB" func=ls90)
An .scb
file typically contains multiple scb models. When the simulation model definition is released, the .scb
file - released and stored with the SimModel file in the Vault - is stripped back to include only the single scb model referenced by the simulation model definition, and not the full listing of models.
Referencing a Component Template
Helping to streamline the creation of your Vault Components, Altium Designer, in conjunction with the Altium Vault, supports the use of Component Templates. Just as a schematic template can be used to predefine information on schematic sheets that reference it, a component template is referenced by a Component Library (CmpLib), and provides predefined settings for use by component definitions defined therein.
Using a revision of a Component Template Item - or rather referencing one from the component library used to edit a specific Component Item Revision - can be performed in the following ways.
A component library can only reference one Component Template Item at a time.
Manually from within the CmpLib
There are two ways of 'hooking up' a Component Template to the component library used for the Component Item Revision currently being edited:
- From the Template tab of the Document Options dialog (Edit » Document Options). Simply click the Choose button to the right of the Item Revision field. This gives access to the Choose Item dialog - essentially a trimmed incarnation of the Vaults panel. Use this dialog to browse to, and select the revision of the required Component Template Item. After clicking OK, a link will be created between the component library and the target revision of the Component Template Item. Evidence of this link can be seen back on the Template tab of the Document Options dialog.
Manually linking the component library to a revision of a Component Template Item, in the target vault.
The Component Template Item being used can be changed at any time - simply click Choose and select a revision of a different Component Template Item.
The status of the linked Component Template Item is reflected on the Template tab of the Document Options dialog. If a newer revision of the linked Item is available, simply click the Update To Latest button, to use that latest revision.
- From the Add menu associated with the Required Models/Parameters region of the CmpLib Editor. The Templates sub-menu lists all Component Template Items currently available in the same Altium Vault in which the Component Item itself resides. Simply click on an entry to create a link to the latest revision of that Component Template Item. Once again, verification of the link can be seen on the Templates tab of the Document Options dialog.
Quickly linking a Component Template Item from a menu of all available templates.
Inherited from the Component Library Vault Folder
You can specify a Component Template Item to be automatically used for all Component Items (and revisions thereof) stored within a Components folder within the Vault.
A default Component Template Item can only be defined for a folder of type Components.
Specify the required template using the Component Template field, when defining the folder's properties, in the Edit Folder dialog. The field's associated drop-down lists all Component Template Items currently available in the same Altium Vault in which the Components folder itself resides. Simply choose an entry to create a link to the latest revision of that Component Template Item, for each Component Item created within that folder.
Specify a default Component Template Item, to be applied to all Component Items created within the Components folder.
To not use this feature, simply leave/set the Component Template field to None.
If a Component Template is chosen at the folder level, that same template will be used, by default, when Component Items are created in child sub-folders below. This facilitates quick template inheritance to all Items in child folders.
When a CmpLib is released, it will essentially lock-in the specific revision of the Component Template used - creating a strong link to that revision, unless changed manually.
Impact on CmpLib Options, Models and Parameters when using a Component Template
When editing a revision of a Component Item, and a revision of a Component Template Item is linked to/referenced, the following happens within the Component Library Editor, with respect to options, models and parameters:
- The entries specified in the template for Lifecycle Definition, Revision Naming, Component Naming and Default Folder are used to pre-fill the corresponding fields on the Document Options tab of the Document Options dialog. These options (on the CmpLib side) will only be editable provided the corresponding Allow override option is enabled in the template. In addition, the target Vault will be hard-coded to use the same Vault as that in which the revision of the Component Template Item resides.
When the template is referenced, the entries are used to pre-fill the document options of the referencing CmpLib file.
- The models defined within the referenced template are added to the Model Links region.
- An existing referenced model will be kept, and the component definition will remain using that model, unless purposefully changed manually.
- The parameters defined within the referenced template are added to the Required Models/Parameters region.
Example of parameters after linking to a revision of a Component Template Item.
All parameters originating from the referenced Component Template Item are distinguished by use of the
icon. The
Show option for each template-based parameter follows the state of the corresponding
Visible option in the template.
Template-based parameters cannot be removed.
You are free to add additional user-parameters as required.
- An existing user-defined parameter that has the same name as a parameter in the linked Component Template Item, will essentially be replaced with the template version. Any existing value for that parameter will be kept (and not overwritten with the value in the template).
- Template-based parameters that are set to be shown, are grouped together in the component definitions area of the editor, with Template Parameters used as the header text.
Appearance of example template-based parameters in the area where the component definitions themselves are defined.
The fields for template-based parameters that have been marked as read-only, will display grayed values, and are non-editable. For all other template-based parameters, that have not been marked as read-only, you are free to change the values as required.
If a template-based parameter has been marked as required, but has not been given a value in the template, its field will appear with a red boundary, alerting you to the fact that a value is required for this parameter. You will not be able to release a component definition until values are defined for all required parameters.
Parameter List Templates
If you are not using Component Template Items, you can still create predefined listings of parameters through the CmpLib editor's support for customizable Parameter List Templates. These simple, humanly-readable files can be built with a list of required parameters, that can then be loaded into the editor with a single click.
Component Templates offer a far more powerful approach to organizing not only a set of parameters, but also required models and the ability to define component types. In addition, it is only through Component Templates that you can define unit-aware parameters for your components, which are needed for the
advanced component searching functionality. To this end, if you have at least one Component Template Item present in your Altium Vault, the parameter list templates functionality will essentially be disabled, and you will not be able to see and load these templates into the CmpLib editor.
Parameter list templates can be found in the Templates sub-menu - accessed by clicking the Add control at the bottom of the Required Models/Parameters region. A number of predefined templates are available, covering parameter sets associated with capacitors (Capacitor), resistors (Resistor), diodes (Diode) and transistors (Transistor).
Access parameter templates from the menu associated to the
region's Add control.
Simply click on the template you wish to use - the parameters defined within that template will be added to the region.
Adding a set of parameters for use by your component definitions is expedited through the use of parameter templates.
Template Definition
A parameter template is defined in a Component Library Template file (*.cmplib_template). To be recognized by the system, and therefore appear in the Templates sub-menu within the CmpLib Editor, these files must reside in the Templates folder of your Altium Designer installation (\Users\Public\Documents\Altium\AD<VersionNumber>\Templates for a default installation).
The template definition is simplicity itself, and consists of the name for the template (as it is to appear in the sub-menu) enclosed in square brackets, followed by a listing of the required parameters, in the format <ParameterName>=. By way of example, the predefined template for resistors - resistor.cmplib_template - has the following definition:
[Resistor]
Category=
Manufacturer=
Manufacturer Part Number=
Mounting Type=
Temperature=
Package Type=
Package Reference=
RoHS=
Temperature Coefficient=
Tolerance=
Weight=
Height=
Value=
Power=
Resistance=
Composition=
The '=' sign is required in order to have the parameter added to the list of Required Models/Parameters when the template is used. If it is removed in the template file, leaving just the parameter name, it will be excluded when the parameters are added.
Any number of parameter templates may be defined within a single template file. This can be seen in the file group.cmplib_template, which contains the templates for capacitors and diodes.
If the same template ([<TemplateName>]) is defined more than once in the same .cmplib_template file, only the first instance will be used. The software also ensures that there is no duplication of parameters, where parameters from more than one templates are added. If a parameter to be added is already existing with exact matching name, it is simply ignored when that template is loaded.
Re-releasing a Component Item
At any stage, you can come back to any revision of a Component Item in the Vault, and edit it directly. Simply right-click on the revision and choose the Edit command from the context menu. Once again, the temporary editor will open, with the component library (CmpLib) contained in the revision opened for editing. Make changes as required, then commit the release of the document into the next revision of the item.
Right-clicking on the top-level entry for an Item itself, will edit the latest revision of that Item.
Accessing the command to launch direct editing of an existing revision of a Component Item.
Downloading Released Data
Download the data stored in a revision of a Component Item by right-clicking on that revision and choosing the Operations » Download command from the context menu. Use the Choose destination file dialog to specify where, and under what name, the component library file (*.CmpLib) is to be downloaded. The file will initially be named using the Item Revision name, but this can be changed to suit your requirements.
Access the Download command from the top-level entry for a Component Item itself, to download the component library file stored in the latest revision of that Item.
Click the Explore button in the Download dialog, to quickly explore to the download folder. Click the Open button to open the file within Altium Designer.
Migrating Existing (non-Vault) Component Libraries
Main page: Streamlined Migration of Existing Libraries to an Altium Vault
Altium Designer, in conjunction with Altium Vault (3.0 or later) provides a streamlined, simple process to quickly migrate your existing libraries to an Altium Vault. The GUI to this process - the Library Migrator view - presents an intuitive flow that takes initial selected libraries, and migrates them to a target Altium Vault. Catering for all types of libraries, relating to older component management methodologies - SCHLIB, PCBLIB, INTLIB, DBLIB, SVNDBLIB - the Library Migrator is the perfect solution to quickly building your company's set of Vault components, and the many benefits that such components enjoy (high-integrity, lifecycle management, centralized storage and management, where-used functionality, ease of design resuse). And while the migration process can be configured - giving you enhanced control over how that migration is performed - at its most simplistic, you can simply accept the default settings and set the migration in motion within a matter of clicks.
All information that is present in an original source library is migrated, in order to arrive at a folder of Unified Components (Vault components that have assigned part choices), with all referenced domain models (schematic symbols, PCB footprints, 3D Models, Simulation Models), and parametric information. Component templates can even be created, and used to create those Vault components. And if your original components have multiple PCB footprints defined, you can rest assured that the Library Migrator will bring those models across, and keep the current default footprint too.
Accessing the Library Migrator view - the user interface to the component migration process.
While migration may seem daunting, the defaults have been defined to enable you to get your collection of Vault components without having to change a thing - start the process and design with the fruits of the Migrator's labor. The system conducts and handles a number of validations, for example to ensure no duplicate IDs for the resulting vault components, or to ensure no duplicate models or component templates are created, and that such entities are reused across (linked to) components where needed. And if issues do arise, the system flags them, with suggestions on how to resolve those issues, aiming to get the migration back on track as quickly, and as smoothly as possible.
Batch Releasing File-based Component Definitions
If you have a set of file-based component libraries (*.CmpLib) that you need to release to a target Altium Vault quickly, and simultaneously, then you can use Altium Designer's Release Manager. Use it to batch-release component definitions stored across multiple component libraries, in a nominated source folder location.
The
Release Manager is considered to be a legacy tool. It is highly recommended to use the
Library Migrator when migrating your existing component libraries into an Altium Vault.
Access the Release Manager dialog by running the File » Release Manager command.
Release component definitions, stored in one or more source Component Libraries, using the Release Manager.
Setting up for release couldn't be simpler:
- Set the Document Type to
CMPLIB
.
- Point to a top-level folder containing the component library files you want to release. Files can be stored in sub-folders within this folder.
- Choose the target Vault.
- Choose to create a top-level folder in the Vault based on the nominated top-level Windows folder, or choose an existing Vault folder. You can optionally create sub-folders in the nominated Vault folder, for each Windows sub-folder. Additionally, you can opt to create a Vault folder for each source component library file.
- Use the Default Options for New Released Components region of the Release Manager to control how required new Items are created as part of the release process - in terms of Lifecycle Definition, Item Naming (default is CMP-{00000}) and Item Revision Naming schemes, and starting index.
- Hit the Analyze Folders button.
Analysis of source folders and target Vault folders (and Items) based on your chosen options will be performed and the source component library files detected will be listed. For each entry, the target Item will be displayed, its current and/or next revision (as applicable) and the action that will be performed by the release process.
Enable the component definitions that you want to release and then click the Prepare Items and Documents button to effectively commit the link information to the source component library files involved in the release. Once saved, proceed with the release by clicking the Release Items button.
The
Release Manager can also be used to quickly generate Component Libraries, en-masse, from a nominated folder of Schematic Library documents. With the Schematic Libraries loaded, simply use the
Generate Component Libraries command from the
Migration Tools drop-down menu. In addition, Altium Designer's Schematic Library and Database Library Editors provide the ability to generate one or more Component Libraries from the
active Schematic Library or
active Database Library document, respectively.