When a product needs to be designed and produced as a number of variations of that product, say where each has different options or capabilities, the ability to implement Design Variants avoids the need to create a unique version of the design for each variation.
In practice, a Design Variant uses the same base design, but the PCB assembly is loaded with the set of components specified by the variation. A variation may then be nominated when generating the design’s manufacturing output (BOM, P&P, Assembly drawings, etc), which will in turn determine how the product is assembled.
The ability to create variations of the same base design adds significant flexibility to how PCB projects are created in Altium NEXUS. Using Variants, you can define any number of variations of the board design, where each component may be configured as:
Design Variants that use any of these types of variations are all referred to as Assembly Variants, as they only impact on the assembly process – in this case, all variants share the same fabricated bare board.
Altium NEXUS also supports variations to component overlay information on the PCB, such as changing a component’s Comment for example. Such a variation requires the production of two overlay screens, which results in the manufacture of two different bare boards. This type of variant is referred to as a Fabrication Variant.
Design Variants are managed, created and edited in Altium NEXUS's Variant Management dialog, which is accessed from the Projects » Variants option on the main menu.
It is helpful to understand that there are essentially two types of components in Altium NEXUS; logical components and physical components. The distinction is that components placed on the schematic sheet are logical components, where each is a conceptual entity that represents the physical component that is ultimately mounted on the assembled PCB.
While this one-to-one, logical-to-physical model works well for a simple design, it cannot support some of Altium NEXUS's more powerful features. Examples of this are multi-channel designs, where a section of circuitry is 'stamped out' as many times as required, and variants, where a single design can be implemented with different components fitted to each variation of the board design. Such features require the ability for one logical component to represent multiple physical components.
Altium NEXUS delivers this one-to-many capability through its compiler technology. When the logical design is compiled, each physical component is instantiated in memory, ready for transfer to the board design workspace.
To cater for situations where access to the physical components is required at a schematic level, such as when defining design variations, the physical design is also made available in the schematic editor through tabs located at the bottom of the schematic sheet. Here, the left-most Editor tab selects the (normal) captured logical design, and the other 'compiled' tabs represent the equivalent physical design as it will be transferred to the PCB design workspace – note that the schematic under a compiled tab is read-only.
The Variants feature, as the name implies, creates variations of the original, or ‘base’, PCB design. Once this base design has been established, Variants are established in the variant manager by configuring the board components to be: Fitted; Fitted with varied parameters; Not Fitted; or to use an Alternate Part.
'Fitted' is the default state of a component before any variations are applied – if it is Fitted, then it is not varied. All components default to Fitted when a new variation is created in the Variant Management dialog (see below), which represents a Fitted component state as an empty cell.
The variant definition process allows a component to have any of its parameters varied. Modifying the value of a parameter is a local variation and will only affect the output documentation – the original schematic, and the component whose parameter is being varied, are not modified in any way. In the image below,
C8 has the Value parameter varied, and this variation is indicated by the italic font used to display its value string.
When a component is set to
Not Fitted it still exists on the schematic and will be transferred to the PCB (so the footprint can be placed), but it is removed from the appropriate output documentation, such as the BOM. The way in which Not Fitted components are presented in the documentation can be configured, for example, set as marked with a cross on the schematic and in PCB drawing outputs – see the Variant Options dialog, accessed from the Drawing Style button in the Variant Management dialog.
A variation can also be set to an entirely different component, as an Alternate Part. When the compiled tab is selected in the schematic editor, the alternate part will be shown when changing between Variants. For this type of variation the alternate part must share the same set of schematic pins, placed in the same locations, as the base part. This is an essential requirement to ensure that the connectivity remains valid when the design is compiled. Hover the cursor over the image below to show the alternate parts for
Q1 in the TSOP variant.
There are two ways an Alternate Part is handled on the PCB:
The ability to select an alternate part is not restricted to choosing the same type of component, so you can, for example, have a base component that is a resistor, then define an alternate part that is a capacitor. It is important to be aware of the consequences of this type of alternate part:
Main article: Multi-Sheet and Multi-Channel Design
Multi-channel design allows the designer to nominate a single schematic sheet, or a tree of sheets, to be repeated – effectively stamping out this section of the design multiple times. Manual copying and pasting is not required since the software manages the stamping-out process, while the designer simply defines the annotation method used to identify the repeated components.
In Altium NEXUS multi-channel designs, the ability to replace a base component with a completely different component is supported for a selected variant.
In terms of channels:
|Variation Type||Applied to all Channels||Within a Specific Channel|
|Alternate Part||Supported||Not Supported|
Variants are created and configured in the Variant Management dialog. To open the dialog, select Variants from the Project menu (shortcut: C, V).
The dialog has two main regions:
Click the button in the Variant Management dialog to create a new variant of the base design. The Edit Project Variant dialog will open, enter a name for the variant in the Description field and click OK. The other options in this dialog are discussed in more detail later.
An additional column will then appear on the right of the Variant Management dialog, with the new Variant name as the column title. All the cells will be empty, where an empty cell indicates that this component is Fitted and unchanged from the base design. The components can now be configured for the new variant. The image below shows a project that has had two variants created, BGA and TSOP.
The Variant Management dialog includes a number of interface features that assist the display of useful information. These are configured via the right-click context menu.
Useful commands include:
Once the Variant itself has been created, the state of each component is ready to be varied. This can be done by clicking the component cell in the variant column to reveal the control, or by right-clicking to access the context menu Set Selected As sub-menu.
The control opens the Edit Component Variation dialog which (along with the Set Selected As sub-menu) offers three choices:
When the Alternate Part option is selected in the Edit Component Variation dialog, the dialog expands to include controls used to browse and locate the required alternate part component. All of Altium NEXUS's component storage models are supported, such as independent libraries, database libraries, as well as server-based components (as shown in the example below).
The newly applied alternative component can be checked back in the editor workspace. In the applicable schematic sheet for that component, switch to the compiled tab view and then select the required variant in the Variants section of the project, in the Projects panel.
The Schematic Editor will use the symbol graphics for the alternate component, however if the component is pin-compatible and graphically similar there may be little noticeable change.
To help make it easy to visually identify varied components, the color and font of varied parameters (such as the component comment string), can also be varied. This is configured in the Variant Options dialog – click the Drawing Style button in the Variant Management dialog to open the dialog. Note the green italic font used for the alternate component in the animation below .
If a base component uses a graphical display mode other than the default
Normal Mode, and it also has an alternate component defined in a variant, then the alternate component will attempt to use the same graphical display mode. Conversely, if the alternate component does not include this graphical display mode, then the
Normal mode is used.
Part view Modes are defined in the Schematic Library Editor with the Component Display Mode commands, and are selected for a placed component in the Graphical section of the Properties panel, as shown below. In this example the base part symbol uses Mode,
Altium NEXUS supports several ways of storing and working with components, including the use of a DBLink file with the project. A DBLink file is an interface between the components on the schematic and a company database.
Rather than just creating a reference from each component to a specific database record (as is typically done when you place a component from a DBLib-type library), the DBLink model relies on the designer initiating a query action based on one or more component parameters. The software then searches the database for a record with fields that contain matching values, and when a match occurs, other field values from that record (such as the Part Number) can be returned to the Altium NEXUS component. The component parameter-to-database field mapping is defined in the DBLink document, as is the target database.
► Learn more about Working with Database Libraries
In a design that does not use Variants, the query action is performed via the Update Parameters from Database command, and can also be performed during BOM generation by enabling the Include Parameters from Database option (see below), to extract BOM-specific component data, such as price.
For a design that includes Variants, the parameters used to query the database are varied in the Variant Management dialog. Since those parameter values only exist in the Variant Management dialog, the Update Parameters from Database command is not used to retrieve database information – instead the parameters are extracted from the database when the BOM is being generated.
The Variant Management dialog includes features to help control the amount of data displayed, which is particularly useful when working on a large design.
The way in which varied components are presented in Schematic design documents (and PCB outputs) is configured in the Variant Options dialog. Those settings subsequently affect how the component variations are presented in printed or PDF outputs, and in PCB drawing type outputs such as Assembly drawings. To access the Variant Options dialog, click the Drawing Style button at the bottom of the Variant Management dialog, after selecting a cell in the relevant variant column.
Design variations setup in the Variant Management dialog are ultimately saved in the project file. This includes the Not Fitted state, local parameter variations to a Fitted component, and the parameter values of Alternate Parts. The actual Alternate Parts are stored in a [ProjectName].PrjPcbVariants file. The Variant Management dialog includes commands for resetting parameters and updating components, which helps to ensure that they are in sync with the source component libraries.
Parameters modified locally in the Variant Management dialog can be restored to their original value by right-clicking on the modified parameter (shown in bold) in the Variant Parameter list, and then choosing Reset Selected from the context menu – as shown below. Note that multiple parameters can be selected at once then reset in a single action, or Reset All used to reset all parameters for that component.
If a library component that is used as an Alternate Part has had parameters changed in the library, then you to can bring those changes directly into the variant definitions in your project by right-clicking in that Variant's Parameter list and selecting Update Values from Library from the menu (as shown below). Note that this updates the parameters, if you need to update the graphic, use the technique described below.
Following the Update Values from Library command, browse to and locate the component in the source library or Managed Component Server (via the Browse Libraries dialog or the Server content Explorer) and click OK to open the Update Project Variants From Library dialog. Select/deselect the Parameters from Library Component and Variants to Update, then click OK to complete the update process.
All parameters are listed on the left of the Update Project Variants From Library dialog – if required, any parameter can be deselected to exclude it from the update process. On the right of the dialog, the target Project Variant can be changed (Project Variant To Update) – this will default to select the Variant that was selected when the Update Values from Library command was activated.
If the source component for an Alternate Part has been edited in its library, it can be updated in the design by running the Update from Library Wizard.
Launched from the Tools menu in the Schematic Editor, the Wizard includes an option to Include Variants. When this option is enabled, the component list will expand to include any components that have been used as Alternate Parts. Check the components in the list to be updated, and then complete the Wizard to update the required parts from the source.
The Variant Management dialog supports multi-select, which means that any number of components can be selected simultaneously in the upper (Component) part of the dialog, and then updates performed on any number of parameters selected in the lower (Parameters) part of the dialog. The dialog also offers Filters (via the right-click context menu), to further refine selection and the displayed data.
By way of example, to reset the manually-varied parameters for all components, in all variants:
Altium NEXUS supports Parameters at various levels of a project. For example, document-level parameters can be added to each schematic sheet in the Parameters tab of the Schematic editor Properties panel (available when nothing is selected). Project-level parameters can also be added to a project in the Parameters tab of the Options for Project dialog (Project » Options). Further to this, parameters can also be added to a Variant via the Edit Project Variant dialog. In the Variant Management dialog, select the variant column and click the Edit Variant button to open this dialog.
Parameters included at various level in a project exist in a hierarchy, which means you can in fact create a parameter with the same name at different levels in the project, where each has a different value. Altium NEXUS resolves this situation using priorities, in the following way:
This arrangement means that the parameter value defined in a schematic document overrides the value defined in the Project options, and the parameter's value defined in a Variant overrides the value defined in the schematic document. Note that schematic-level parameters are not available on the PCB or in the BOM – for these types of output, project or variant parameters should be used.
In the images below, a Parameter called
ProjectTitle has been defined for the project, and also for each variant. The animation shows the behavior on the PCB as the Variants selector is used to show the base design, then each variant.
Altium NEXUS's schematic editor includes a range of features that provide full visibility of component variations during the schematic capture process, as described below.
As previously outlined, the actions to examine variant detail on the schematic are:
As opposed to scrolling through and selecting components from the list in the Variant Management dialog, it can be more convenient to make specific selections directly on the schematic. To do so, select the component(s) on the sheet, then right-click and select Part Actions » Variants from the context menu.
The Variants command on the right-click menu (above) will open the Variant Management dialog, where only the selected components will be listed. The required variations can then be performed as usual, and OK clicked to apply those variations to the design.
Component Variants can also be created and edited by working directly in the schematic at a symbol level. Note that the Schematic Editor must be in compiled variant view (as selected by the lower tab), and the required variant selected in the Projects panel.
A command is provided to quickly toggle the
Not Fitted state of a component for the variant design. Launch this command using the button on the Variant Active Bar (visible when a variant is selected in the Projects panel). This will change the cursor to a cross-hair, where clicking on a component will cause it to toggle between the
Not Fitted states – the related entry in the Variants Manager dialog reflects any changes that are made.
The component’s fitted state will be graphically indicated as defined in the Variant Options dialog (accessed from the button in the Variants Management dialog).
Changes can be made directly to a displayed component variant parameter by selecting the parameter text, and then clicking the text a second time to enable editing mode. Any changes made will be adopted by that component’s entry in the Variants Manager dialog.
Note that a component’s parameter visibility is configured in the component’s Properties for Schematic Component dialog when the schematic is in standard Edit mode (as opposed to the compiled document view).
A variant parameter may also be directly edited in the Parameter Variation dialog, which is opened by double clicking on the parameter text. As usual, this function is only available when in the compiled schematic view, and any changes made will also register in the Variant Manager dialog.
To change a component's physical designator, directly within the compiled document view of a source schematic, simply click once on the designator to focus it, then click again to begin editing. Note that in-place designator editing is only possible when the Enable In-Place Editing option is enabled in the Schematic – General page of the Preferences dialog ( ).
In-place editing of designators is essentially a graphical shortcut to defining a Locked Physical Designator, which can also be defined in the Physical Component Properties dialog (double click on the component) or Designator Annotation dialog (double click on the designator).
In terms of component annotation, these dialogs offer the same content. Use the Annotate options to specify either:
A designator generated using a specified Naming Scheme. In this case, enable the Apply Naming Scheme option and use the Annotate Options button to access the Board Level Annotation Options dialog. From here, you can either choose a predefined naming scheme, or specify your own, custom scheme. The Physical designator will be generated based on the logical designator information and the specified naming scheme.
► Refer to Annotating the Components for detailed information on Annotation and Naming Schemes.
In Altium NEXUS's PCB editor all of the component footprints, for all variants, are always shown. This is necessary because all footprints, for all assembly variations, must be fabricated as part of the bare board. It is the loading of components during the assembly process that then determines which variant is being built.
Because all footprints are always visible on the PCB, it can be difficult to know which components belong to which variant. Like the schematic editor, the PCB editor includes a Variants toolbar which can be used to switch between variants. However the only visible clue to tell if a particular component is fitted or not fitted in that variant, is if the component includes a 3D Body model – the body will appear/disappear to indicate whether the component is fitted or not fitted. This visual behavior is much more easily sen when the PCB is in 3D Layout Mode, as demonstrated in the animated image below.
There is only one type of variation that affects component placement in the PCB design process – when an Alternate Part is specified, and that Alternate Part uses a different footprint from the base design. In this situation two footprints must be placed on the board.
There are different ways that these two footprints might be positioned, such as:
Assembly variants affect all output documentation that include detail about the purchase or loading of components. This includes:
Fabrication variants also affect the following outputs:
If you are running a command from the schematic editor or PCB editor, such as a schematic printout or Gerber files generated directly from the PCB editor, the output will be generated based on the variant currently selected in the Projects panel.
Main article: Preparing Multiple Outputs in an OutputJob
There are two approaches to configuring an OutputJob file to support variants:
The option is selected in the Variant Choice region of the OutputJob editor. When the second option is enabled the required variant must be selected for each output that supports Variant-type output, as shown in the image below.
If the first 'blanket' approach is used, then every output file that is variant-specific will automatically be configured for that variant. The advantage of this option is that the variant does not need to be specifically selected, whereas the disadvantage is that an OutputJob file is required for each variant in the design.
► See Preparing Multiple Outputs in an OutputJob for more information on Variants in Output Jobs
Main article: BOM Management with ActiveBOM
Although a BOM can be generated directly from the schematic or from an OutputJob file, the recommended approach is to use ActiveBOM. Beyond the components fitted to the board, ActiveBOM allows additional components and BOM-specific data to be added directly in ActiveBOM, for example; yet-to-be-detailed parts, fasteners, the blank board, or the mounting glue. Custom columns can also be added, including a specific Line number column, which supports both auto and manual numbering, with full copy/paste support.
For design components that include manufacturer information, ActiveBOM can use the Altium Cloud Services to access detailed and up-to-date supply chain information. This support extends beyond components placed from a managed content server, also supporting Supplier-linked parts, as well as parts that already have suitable manufacturer details in their parameters.
ActiveBOM supports variants in the following ways:
► Learn more about working with variants in ActiveBOM
Variant settings are stored in the project file (
*.PrjPcb), and this data is read, analyzed and loaded into the Variant Management dialog when that dialog is opened. If issues are detected when the data loads, such as any mismatches between component designators or component UIDs, an Information dialog will open to outline the problem.
Component UID mismatches are automatically resolved, and these corrections will be retained when the project is saved. Duplicate designators must be corrected at the schematic level. To resolve these, recompile the project and check the Messages panel for warning/error details.