Skip to content

Common Data Model

The Altium Common Data Model (CDM) describes the entities of the Altium platform — projects, components, BOMs, tasks, users and many more — as a LinkML schema. For each class it records what the entity is, how it relates to other entities, how it is identified by a GRID (Global Resource ID) and, where one exists, its type in the API. The Altium Developer Center page GRID names the CDM as the authoritative reference for the GRIDs of platform entities.

Bounded contexts

The classes are grouped into bounded contexts (LinkML subsets), such as design, library, procurement and collaboration. Each context has its own page with its product documentation, where it has any, and its classes. The home page lists every context with its classes and their API types.

Entities

  • Entity — an identifiable, versioned object with a GRID. Every entity is one of two kinds:
    • Artifact — a persistent data object that is created, stored, versioned and consumed, such as a component revision or a BOM release;
    • Activity — a process or work object that uses inputs and produces outputs, such as a project or a task.
  • Resource — a lightweight object that is not an entity and has no GRID, usually part of an entity, such as a BOM line.
  • Event — a record of something that happened, with no GRID.

See Entity Classification.

The API behind the model

  • Platform API GraphQL documentation — the reference of the Platform API's types, queries and mutations. Class pages link their Platform API type here.
  • Altium 365 API on the Altium Developer Center — the GraphQL API to Altium 365 Workspace data: how it is organised, its endpoints, authentication and tools for exploring the schema.
  • Octopart API on the Altium Developer Center — the GraphQL API for supply chain data, with its endpoint on api.nexar.com. Supply classes such as Part name their Nexar type.

Under its title, each class page shows the class IRI, its GRID template and its API type (the Platform API or Nexar type; an inherited one names the class that declares it). The hub panel below has In the product (links to the product documentation and the product terms for the concept) and, where the class has mappings, In standards (mappings to external standards and ontologies). The hub data of the domain classes is also published for tools as hub.json, described by the JSON Schema hub.schema.json.

The artifacts generated from the schema (JSON Schema, OWL, SHACL, GraphQL, Python and others) are not published on this site; they are built from the repository with make gen-project.

For tools

AI assistants and other tools can start from llms.txt (llmstxt.org): it links a plain-markdown version of the concept pages and the glossary, a catalogue of each bounded context and a card for every class and enumeration. llms-ctx.txt holds llms.txt, the pages and the catalogues in one file, llms-full.txt also every card, and hub.json the hub data of the domain classes.

Where to go next