This violation occurs when an Alternate Part - chosen to be used for a component in a defined Variant of the active design project - cannot be added. This happens when a part with the same name, but resides in different libraries, is used across different Variants for the project. The .PrjPcbVariants file, which stores the information for the alternate parts chosen, cannot store multiple parts with the same name, and so references to the other instance(s), resident in different libraries, will not be added. For example, consider the situation where the following variants of a design project have been defined with an Alternate Part chosen for a placed capacitor:
Variant 1 - Alternate Part Cap chosen, that resides in library Lib1.SchLib.
Variant 2 - Alternate Part Cap chosen, that resides in library Lib2.SchLib.
On compilation, only the first instance is added to the .PrjPcbVariants file - Cap from Lib1.SchLib. Reference to the chosen Cap component to be used in Variant 2 will not be added and, therefore, the violation will be flagged.
Without resolution, the chosen part for the variant will be missing from a generated Bill of Materials!
If compiler errors and warnings are enabled for display on the schematic (enabled on the Schematic - Compiler page of the Preferences dialog), an offending object will display a colored squiggle beneath it. Hovering over the object will display a pop-up hint that summarizes the violation. A notification is also displayed in the Messages panel in the following format:
Fail to add alternate item for "Component <Designator> <AlternatePartName>" in variant "<VariantName>". Library "<LibraryName>" is not available. Please add missed library to project or try to select another alternate item from available libraries
Designator is the designator of the component in violation.
AlternatePartName is the name of the chosen Alternate Part for the component.
VariantName is the name of the design variant for which the chosen Alternate Part cannot be added.
LibraryName is the name of the library in which the chosen Alternate Part resides.
Recommendation for Resolution
Use the Details region of the Messages panel to cross-probe to the component in question. There are two solutions available to resolve this type of violation:
Add the library containing the part that cannot be added to the project - so while the Alternate Part cannot be added as a reference to the .PrjPcbVariants file, the software can still get at it by virtue of its library being made available to the project. Recompile the design project - the violation should now have been resolved and no longer appear (unless there are multiple components with this issue, in which case, repeat the process of making the required library(ies) available).
Change the Alternate Part for the affected Variant to one that is in a library already available to the project. To do so:
Make the relevant variant the current variant, from the Variants folder for the parent project in the Projects panel. Switch to the Compiled tab for the document, then right-click on the part in violation and choose Part Actions » Variants. This gives access to the Variant Management dialog with only the offending component in only that chosen variant, presented.
With the Alternate Part option still selected, use the other options in the dialog to browse to and choose a more suitable replacement component to be used in that specific variant of the design and one that is resident in a library already available to the project.
OK out of the dialogs and recompile the design project. The violation should now have been resolved and no longer appear (unless there are multiple components with this issue, in which case, repeat the previous steps).
Object hints will only appear provided the Enable Connectivity Insight option is enabled on the System - Design Insight page of the Preferences dialog. Use the controls associated with the Object Hints entry in the Connectivity Insight Options region of the page to determine the launch style for such hints (Mouse Hover and/or Alt+Double Click).