Sometimes more than one product comes to market from a single PCB. A budget version may not ship with some parts (e.g. bluetooth) or may have different configuration (E.g. RAM). Assembly variants gives the engineer a structured method to manage this during the design process in a way that all of the output systems will understand. For example, a part that is not fitted in a variant should not show in the 3D viewer and nor should it appear in the bill of materials or assembly drawings.
In Proteus, you can also specify alternate parts in different variants provided that they are pin-compatible with the original part. As with normal use you would do this in design explorer where you can change properties per variant.
Imagine for example that you wanted a different amount of memory in different product configurations. Here we are not editing the fitted status but changing the part value and also editing additional properties like stock code and cost.
If you have several variants of a board it's sometimes tricky to keep track of everything. Fortunately, the variant comparison report tabulates all the differences between each variant and the Base Design. Since all project design is done in the base design this tells users where each variant diverges from the common schematic.
The report itself can be generated automatically from the Project Notes module and can be updated or refreshed with a mouse click at any time.
All of the output systems in Proteus are aware of and will honour configuration of assembly variants. On the schematic side this means that the bill of materials module will include the current variant in the header block, not fitted parts will not be listed and alternative parts correctly applied.
On the layout side the 3D Viewer will not include non-fitted parts and they will not be exported in a STEP or IGES assembly for MCAD. Similarly, the Pick and Place file and the assembly drawings will not include parts deemed as not fitted in the currently selected variant.
There are plenty of different uses for assembly variants in your project design. Here's a few examples: