Automatic IDs (Auto ID)
IntermediateGive every node or relationship of a type a readable, auto-numbered ID like REQ-42.
Auto IDs give every instance of a type a short, human-readable identifier such as REQ-42 or COMP-7 — handy for requirements, components, tickets, or anything you reference by a stable code.
Turning it on
- Select a Node Type or Relationship Type in the Model Navigator.
- In the Properties panel, open the Auto ID section.
- Tick Enable Auto ID.
- In the Prefix field, enter a prefix (for example
REQ-). - Leave Show on views ticked to display the ID in diagrams, tables, and the Reader Workspace. Untick it to keep IDs working behind the scenes without showing them.
How the numbering works
- Each new instance gets the next number in sequence (1, 2, 3, …).
- The displayed ID is simply the prefix + number — e.g. prefix
REQ-givesREQ-1,REQ-2,REQ-3. - Numbers stay put once assigned — Metapad never renumbers your elements behind your back. You can change a number yourself; see Setting an ID by hand.
One sequence for a whole type hierarchy
If you have specialised subtypes — Functional Requirement and Security Requirement under Requirement — you usually want one shared numbering: REQ-1, REQ-2, REQ-3 across all three, not three sequences each starting at 1.
- Select the Relationship Type that expresses the hierarchy (for example
is_a). - In the Properties panel, open the Type Hierarchy section.
- Tick Share auto ID sequence.
From then on:
- Set Enable Auto ID, Prefix and Show on views on the parent type only. Subtypes show Auto ID inherited from … and use the parent's settings.
- A new instance of any type in the hierarchy takes the next free number in the shared sequence.
- A subtype can run its own sequence again by hanging off an inheritance relationship type that does not have the flag set.
If sharing would create duplicates, Metapad shows a Merge auto ID sequences? dialog listing every ID it will change (for example Functional Requirement · Login: REQ-1 → REQ-4) before anything happens. The parent type's IDs never move, and the whole merge undoes in one step. When nothing collides, you aren't asked at all.
Sharing applies to node types. Relationship types always number on their own.
Setting an ID by hand
Sometimes you need a particular number — to match an external register, or to avoid one.
- Select a node and open the Properties panel.
- Click into the Auto ID field. The prefix is fixed; only the number is editable.
- Type the number and press Enter, or click away. Leave it empty to clear the ID.
- If the number is taken you'll see Already used by "…" and the change is refused — IDs stay unique even when several people edit at once.
- Numbers are unique across the whole shared sequence, not just within one type.
- Setting a high number moves the sequence up: assign
REQ-1000and the next automatic ID isREQ-1001. - Clearing an ID frees the number, but automatic numbering always continues above the highest one in use — a freed number only comes back if you assign it deliberately.
- Relationship IDs are read-only in the panel; set them through the AI assistant or the API.
Good to know
- Auto IDs work the same way for Node Types and Relationship Types.
- You can use an auto ID anywhere you'd type an element's ID — for example, the AI assistant and the API accept
REQ-42just like the internal ID. - When something is created through the API, the response names it — including its auto ID. So a script or an AI agent that files a requirement for you knows it created
REQ-42and can tell you so, rather than having to look it up or guess from the numbers around it. - Changing the prefix changes how existing IDs are displayed, not their numbers.
Try it live
Open these working examples in the app and explore them yourself.
This content was written collaboratively with AI.