
The **Altium Designer SDK** lets you build extensions that run inside Altium Designer: commands, panels and document
editors that read and change schematic, PCB and project data. This site is the reference for the SDK's .NET API,
generated from the SDK assemblies.

<div className="hero-actions">

[Quick start](https://www.altium.com/documentation/altium-developer-center/quick-starts/ad-sdk)
[Browse the reference](https://altiumdeveloper.github.io/ad-sdk-docs/reference)
[SDK examples](https://github.com/AltiumDeveloper/ad-sdk-examples)

</div>

## Get started

Installing the SDK and building and running a first extension are covered in the Altium Developer Center
[quick start](https://www.altium.com/documentation/altium-developer-center/quick-starts/ad-sdk). On this site:

- [Getting started](https://altiumdeveloper.github.io/ad-sdk-docs/guides/getting-started.md): the structure of an extension and how Altium Designer loads it.
- [API conventions](https://altiumdeveloper.github.io/ad-sdk-docs/guides/api-conventions.md): namespaces, entry points, properties, typed helpers and enumerations.
- [Working with schematics](https://altiumdeveloper.github.io/ad-sdk-docs/guides/schematic-basics.md): finding, changing and creating schematic objects.
- [Working with PCBs](https://altiumdeveloper.github.io/ad-sdk-docs/guides/pcb-basics.md): the current board, coordinates, iterators, changing objects and layers.
- [Working with bills of materials](https://altiumdeveloper.github.io/ad-sdk-docs/guides/bom.md): reading and configuring BOMs with the BOM engine.

Extensions are C# class libraries that reference two SDK assemblies: `Altium.SDK.Interfaces.dll`, the API documented
here, and `Altium.SDK.dll`, the extension hosting classes and the entry points to the editors
(`SCH.GlobalVars.SchServer`, `PCB.GlobalVars.PCBServer`, `DXP.GlobalVars.Client`).

## How this reference is organised

The API is grouped by **namespace**, and each namespace by area. Each type has one page with all of its properties
and methods; a property covers its `GetState_`/`SetState_` accessor pair. Types come from both SDK assemblies:
`Altium.SDK.Interfaces.dll` (the interfaces) and `Altium.SDK.dll` (hosting classes, entry points and constants).

<div className="bc-grid">

[<i className="bc-icon bc-sch"></i><strong>Schematic</strong> <em>SCH</em> <span>Schematic sheets and libraries, design objects, harnesses, supply chain, simulation, the schematic server</span>](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch)

[<i className="bc-icon bc-pcb"></i><strong>PCB</strong> <em>PCB</em> <span>Boards and PCB libraries, design objects, design rules, layer stacks, geometry and 3D, manufacturing</span>](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb)

[<i className="bc-icon bc-dxp"></i><strong>System</strong> <em>DXP</em> <span>Client and server modules, documents and views, commands, notifications, data management, version control</span>](https://altiumdeveloper.github.io/ad-sdk-docs/reference/dxp)

[<i className="bc-icon bc-edp"></i><strong>Projects and design data</strong> <em>EDP</em> <span>Workspace, projects and documents, compiled design, BOMs, outputs, comparison, Draftsman, MCAD</span>](https://altiumdeveloper.github.io/ad-sdk-docs/reference/edp)

[<i className="bc-icon bc-componentlib"></i><strong>Component libraries</strong> <em>ComponentLib</em> <span>Component library documents, component definitions and templates</span>](https://altiumdeveloper.github.io/ad-sdk-docs/reference/componentlib)

[<i className="bc-icon bc-embedded"></i><strong>Embedded</strong> <em>Embedded</em> <span>Embedded memories, stacks, toolchains and interrupts</span>](https://altiumdeveloper.github.io/ad-sdk-docs/reference/embedded)

</div>

System also includes two small namespaces: data management types (`DXP.EDMS`) and the image service
(`Altium.Dxp.Interfaces`).

Every type and member is listed even when it has no description yet; such entries say *No description yet.* Each
page has an edit link to its description file, and contributions are welcome: see the
[contribution guide](https://github.com/AltiumDeveloper/ad-sdk-docs/blob/main/CONTRIBUTING.md). The
[SDK examples](https://github.com/AltiumDeveloper/ad-sdk-examples) repository has complete extensions; reference
pages link to the places where the examples use a type or member.

## For AI assistants

Every page is also available as Markdown (add `.md` to its URL, or use **View as Markdown**).
[`llms.txt`](https://altiumdeveloper.github.io/ad-sdk-docs/llms.txt) indexes the site, and each namespace has its whole API as compact C# declarations
(for example [`reference/sch/api.cs.txt`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/api.cs.txt)).
