Visual C4 diagram authoring
Create and edit C4 elements and relationships on a visual canvas while Acefy keeps the underlying AAL source synchronized.
Use C4 AI Instructions with an external AI assistant, then copy its generated AAL into a new C4 Architecture project. Inspect diagnostics and explicitly Save.
Visual Authoring
Acefy Architecture supports two synchronized authoring approaches:
- AAL Authoring — write AAL source directly in the editor.
- Visual Designer Authoring — create and edit architecture on the canvas.
Both surfaces operate on the same normalized Architecture Model. Visual actions update the model and synchronize valid AAL source; typing AAL updates the model and the canvas. There is only ever one source of truth.
Visual authoring never bypasses C4 hierarchy or semantic validation. A visually-created object is identical to an AAL-created object once stored in the model.
Creating Objects
Use the + Add button in the Designer toolbar to create architecture objects without typing AAL. The available object types adapt to the current view:
- Context View — Person, Software System
- Container View — Person, Software System, Container
- Component View — Person, Software System, Container, Component
The creation dialog collects a Name (required), an auto-generated ID (editable), a level-aware Semantic Type, and optional metadata (description, technology, owner, tags, color).
Hierarchy is enforced: a Container requires a parent Software System, and a Component requires a parent Container. If a parent is not already selected, the dialog asks you to choose one.
Quick add from parent: when a System or Container is selected, its Inspector header shows a + Container / + Component button to create a child directly inside it.
Example flow:
Select a Software System
→ + Add → Container
→ Name: "Payment API"
→ Semantic Type: api
→ Create
The equivalent AAL is generated automatically and appears in the source editor. IDs are derived from the name as PascalCase (e.g. "Payment API" → PaymentAPI), with a numeric suffix if the ID is already in use.
Creating Relationships
Create relationships by dragging from one object's connection handle to another object. Move near an object edge to reveal its small +; its invisible hit target is larger and zoom-aware. The pointer-down object is always source and the release object is always destination, independent of geometry.
On a successful drop, a relationship Source -> Destination is created in the model and synchronized to AAL:
MobileApp -> API
The new edge is selected automatically and its Inspector opens with the Description field focused, so you can immediately describe the relationship without switching to AAL.
Validation rules apply: relationships to nonexistent elements, self-relationships, and exact duplicate edges are blocked. Empty description, technology, protocol, and mode are left unset by default — enrich them in the Inspector.
Editing Objects & Relationships
Select any object to edit its metadata in the Inspector — name, semantic type, description, technology, owner, tags, and color. Changes update the model and synchronize AAL immediately.
Select a relationship to edit its semantics in the Inspector:
- Description — the primary edge label, editable as a text field. Clearing it removes the description from AAL.
- Technology — editable text field.
- Protocol — controlled-vocabulary dropdown (not free text).
- Interaction Mode — synchronous, asynchronous, event, stream, batch, file.
Example: editing a relationship description updates AAL and the canvas label together.
API -> PolicySystem "Retrieves policies"
The Edge Style and Connection Points sections remain visual-only View Layout Metadata — they are not written to AAL.