Altium Designer Extensions
Altium Designer's extension model lets you add functionality that runs inside the design environment itself – not alongside it.
Extensions are compiled DLLs built with the Altium Designer SDK in C# or C++. They plug into Altium Designer's client-server architecture as first-class modules – indistinguishable from built-in functionality from the user's perspective. An extension can add menu items, panels, toolbars, and commands; access and modify the full design object model including PCB, Schematic, BOM, and project data; and produce outputs as part of the normal Outjob workflow.
This is a different model from scripting. Scripts are interpreted at runtime and limited to the scripting API subset. Extensions are compiled, have full SDK access, and can implement their own document editors and output generators. For anything that needs to run reliably at scale, integrate deeply with the design environment, or be distributed to multiple engineers as a supported tool, extensions are the right approach.
What Extensions Are Actually Used For
-
Custom panels and UI within Altium Designer – the most common use case. An extension adds a dockable panel that shows information from an external system – component status from ERP, approved manufacturer data from an internal database, live supply chain data – directly inside the design environment. Engineers see what they need without switching tools.
-
Proprietary output generators – Altium Designer's Outjob system supports custom output generators that plug in as first-class output types. An extension can generate outputs in formats not natively supported – custom netlist formats, proprietary manufacturing data structures, internal documentation templates – and integrate them into the existing output and release workflow.
-
Design rule extensions – extensions can add custom DRC checks that run within the PCB editor's native DRC system. The check appears in the same panel, produces the same violation markers, and cross-probes to the same objects as built-in DRC. Engineers don't need to know a check is custom.
-
Automation beyond scripting – extensions can automate complex sequences of design operations that are impractical in scripts – iterating over large designs, performing batch operations across multiple files, integrating with external APIs during design work. Because extensions are compiled, they run at the performance level of the application itself.
Extension vs Scripting: When to Use Which
Use scripting for rapid iteration, one-off automation, and tasks that need to be modified frequently. Scripts are faster to write and easier to change.
Use extensions when you need full SDK access, production-level reliability, UI components, custom document editors or output generators, or distribution as a managed tool across your team. Extensions require a build step and a development environment, but that investment pays off for anything that becomes a standard part of your team's workflow.
Distribution and Maintenance
Extensions are distributed and managed through the Altium Workspace. Once published, engineers install extensions from their Workspace without requiring manual file distribution or local installation steps. Updates are managed through the same mechanism. This makes extensions practical as team tools – not just individual utilities – because the distribution and update problem is already solved.
When Extensions Are Not the Right Choice
If your requirement is a simple automation or a one-time data transformation, scripting will get you there faster with less overhead. Extensions make sense when the functionality needs to be reliable, maintainable, and available to multiple engineers as a supported part of the workflow. If you're not sure which to start with, start with scripting – extensions are a natural next step if the script outgrows its constraints.