Notation System Reference
Farkitect’s notation model (format farki/1.2) treats appearance as a set of independent compositional primitives. shape controls only the outline; fill, border, body content, icon, and label placement are separate fields that combine freely. This replaced the older model where a handful of fixed shapes (note, boundary, text) each baked in their own fill and border.
Node Shapes
Section titled “Node Shapes”shape is the silhouette (outline) only:
| Shape | Description | Typical Use |
|---|---|---|
rectangle | Square corners | Most element types |
rounded | Rounded corners | Active elements, processes |
pill | Fully rounded ends | Tags, states |
chamfered | Cut corners | Artifacts, cut-corner boxes |
ellipse | Ellipse / circle | BPMN events, start/end nodes |
diamond | Diamond | Gateways, decisions |
The legacy note, boundary, and text looks are now compositions of a rectangle plus primitives (a folded corner; a dashed border with no fill; no border and no fill).
Compositional Primitives
Section titled “Compositional Primitives”| Field | Values | Description |
|---|---|---|
fillMode | solid / none | Whether the body is filled with color or transparent |
borderStyle | solid / dashed / dotted / none | Outline stroke style |
bodyContent | name / notes / image | What fills the node body (see below) |
showIcon | Boolean | Whether the type icon is drawn |
foldCorner | Boolean | Draw a folded top-right corner (the Note look) |
labelPlacement | inside / outside | Where the element name sits (see below) |
bodyContent
Section titled “bodyContent”| Value | Meaning |
|---|---|
name | The element name (default) |
notes | The element’s notes text (text-annotation style) |
image | The element’s attached image fills the body, letterboxed. Requires the type to declare attachment: "image". Shows a dashed “No image” placeholder until an image is uploaded. |
labelPlacement
Section titled “labelPlacement”| Value | Behaviour |
|---|---|
inside | Default. Name sits inside the body; the type icon is small in the top-right corner (ArchiMate/UML convention). |
outside | The icon renders centred and scaled in the body, and the name renders as an external, draggable label below the node (BPMN convention for events, gateways, data objects). |
labelPlacement: outside is for icon-centric symbols where the icon is the symbol. It is ignored when the type has compartments (compartmented boxes are always inside-labelled). Set it in the M2 Notation Editor via the Label Placement dropdown; the canonical form omits the field when inside.
Attachment Capability
Section titled “Attachment Capability”Set on an M2 element type to turn on the attachment facility for its instances:
| Field | Values | Description |
|---|---|---|
attachment | image / file | Enables a single attachment per instance; picks the Properties-panel label, file filter, and size limit (image → images ≤ 4 MB, file → any type ≤ 20 MB) |
containment | model / visual / none | How the node hosts children. none (used by Image) makes it a pure backdrop — dropped elements are never nested, moved, or resized by it |
A property whose format is "url" renders as a live clickable link on diagram nodes — this is how the Hyperlink type works, and it applies to any metamodel.
Notation Object (Relationship Types)
Section titled “Notation Object (Relationship Types)”| Field | Type | Description |
|---|---|---|
type | "relationship" | Always “relationship” |
icon | String (SVG) | Icon for palette and explorer |
lineStyle | solid / dashed / dotted | Edge line style |
sourceMarker / targetMarker | Marker | End markers (see below) |
color | String (hex) | Default edge colour |
s2tVerb | String | Source-to-target verb (e.g., “serves”) |
t2sVerb | String | Target-to-source verb (e.g., “is served by”) |
showMultiplicities | Boolean | Display multiplicity labels |
showRoleNames | Boolean | Display role name labels |
Edge End Markers
Section titled “Edge End Markers”A marker is a shape plus an optional fill:
| Marker shape | Fill applies? |
|---|---|
none | — |
arrow (open stick arrow) | No |
triangle (closed head) | Yes — filled or hollow |
diamond | Yes |
circle | Yes |
bar | No |
Compartments
Section titled “Compartments”Compartments define sections within a diagram node.
| Field | Type | Description |
|---|---|---|
contentType | name / properties / subordinates | What to display |
id | String | Unique compartment identifier |
label | String | Heading text (for subordinate compartments) |
showLabel | Boolean | Whether to display the heading |
subordinateTypeId | String | References a subordinate type (when contentType = “subordinates”) |
style | Object | CSS-like style overrides (fontWeight, etc.) |
Subordinate Types
Section titled “Subordinate Types”Define owned element types that render inside compartments.
| Field | Type | Description |
|---|---|---|
id | String | Unique identifier referenced by compartments |
label | String | Display label |
classifier | String | $id of the owned element type |
displayTemplate | String | Template for rendering (e.g., {name} : {Data Type}) |
Label Visibility
Section titled “Label Visibility”Label placement is an M2 (author) decision; whether a specific label shows is an M1 (per-diagram) decision:
| Setting | Scope | Where |
|---|---|---|
| Hide Label / Show Label | Per node | Node context menu (and a batch action for multi-select) |
| Hide Label / Show Label | Per edge (main label) | Edge or edge-label context menu |
| Show/Hide relationship labels | Whole diagram (edges) | Diagram toolbar |
The per-edge toggle is subtractive — it can hide an edge’s label when the diagram shows labels, but cannot force one on when the diagram-level switch is off. Hiding a label is a content decision, so it is not cleared by “Revert Format to Default”. External (outside-placement) labels can also be dragged and resized; their per-diagram position and size persist with the diagram.
Stereotypes
Section titled “Stereotypes”Stereotypes display the M2 type name on diagram nodes (e.g., <<Application Component>>). Visibility is toggled per-diagram via the diagram toolbar.
Colour Model
Section titled “Colour Model”- M2 notation colour — the default fill colour for all instances of a type
- M1 diagram override — per-element, per-diagram colour override
- Revert — removes the override, restoring the M2 default
- Colours are specified as hex strings (e.g.,
#81D4FA)