1---2name: archimate3description: Create ArchiMate enterprise architecture diagrams using PlantUML stdlib macros. Best for TOGAF viewpoints, layered EA modeling (Business/Application/Technology), motivation analysis, and migration planning.4---5
6# Enterprise Architecture Diagram Generator (ArchiMate)
7
8**Quick Start:** Add `!include <archimate/Archimate>` → Declare typed elements → Connect with `Rel_*` macros → Group into layers with `rectangle` → Wrap in ` ```plantuml ` fence.
9
10> ⚠️ **IMPORTANT:** Always use ` ```plantuml ` or ` ```puml ` code fence. NEVER use ` ```text ` — it will NOT render as a diagram.
11
12## Critical Rules
13
14- Every diagram starts with `@startuml` and ends with `@enduml`
15- Must include `!include <archimate/Archimate>` before using any macros
16- Element syntax: `Layer_Type(alias, "Label")`
17- Relationship syntax: `Rel_Type(fromAlias, toAlias, "label")`
18- Use `rectangle "Layer" { ... }` to group elements into ArchiMate layers
19- Directional suffixes `_Up`, `_Down`, `_Left`, `_Right` control relationship direction
20
21## Element Macros
22
23### Business Layer
24
25| Macro | ArchiMate Element |
26|-------|-------------------|
27| `Business_Actor(id, "Label")` | Business Actor |
28| `Business_Role(id, "Label")` | Business Role |
29| `Business_Process(id, "Label")` | Business Process |
30| `Business_Function(id, "Label")` | Business Function |
31| `Business_Service(id, "Label")` | Business Service |
32| `Business_Event(id, "Label")` | Business Event |
33| `Business_Interface(id, "Label")` | Business Interface |
34| `Business_Collaboration(id, "Label")` | Business Collaboration |
35| `Business_Object(id, "Label")` | Business Object |
36| `Business_Product(id, "Label")` | Business Product |
37| `Business_Contract(id, "Label")` | Business Contract |
38| `Business_Representation(id, "Label")` | Business Representation |
39
40### Application Layer
41
42| Macro | ArchiMate Element |
43|-------|-------------------|
44| `Application_Component(id, "Label")` | Application Component |
45| `Application_Service(id, "Label")` | Application Service |
46| `Application_Function(id, "Label")` | Application Function |
47| `Application_Interface(id, "Label")` | Application Interface |
48| `Application_Process(id, "Label")` | Application Process |
49| `Application_Interaction(id, "Label")` | Application Interaction |
50| `Application_Event(id, "Label")` | Application Event |
51| `Application_Collaboration(id, "Label")` | Application Collaboration |
52| `Application_DataObject(id, "Label")` | Application Data Object |
53
54### Technology Layer
55
56| Macro | ArchiMate Element |
57|-------|-------------------|
58| `Technology_Device(id, "Label")` | Technology Device |
59| `Technology_Node(id, "Label")` | Technology Node |
60| `Technology_SystemSoftware(id, "Label")` | System Software |
61| `Technology_Artifact(id, "Label")` | Technology Artifact |
62| `Technology_CommunicationNetwork(id, "Label")` | Communication Network |
63| `Technology_Path(id, "Label")` | Technology Path |
64| `Technology_Service(id, "Label")` | Technology Service |
65| `Technology_Process(id, "Label")` | Technology Process |
66| `Technology_Function(id, "Label")` | Technology Function |
67| `Technology_Interface(id, "Label")` | Technology Interface |
68
69### Motivation Layer
70
71| Macro | ArchiMate Element |
72|-------|-------------------|
73| `Motivation_Stakeholder(id, "Label")` | Stakeholder |
74| `Motivation_Driver(id, "Label")` | Driver |
75| `Motivation_Assessment(id, "Label")` | Assessment |
76| `Motivation_Goal(id, "Label")` | Goal |
77| `Motivation_Outcome(id, "Label")` | Outcome |
78| `Motivation_Principle(id, "Label")` | Principle |
79| `Motivation_Requirement(id, "Label")` | Requirement |
80| `Motivation_Constraint(id, "Label")` | Constraint |
81| `Motivation_Value(id, "Label")` | Value |
82
83### Strategy Layer
84
85| Macro | ArchiMate Element |
86|-------|-------------------|
87| `Strategy_Capability(id, "Label")` | Capability |
88| `Strategy_Resource(id, "Label")` | Resource |
89| `Strategy_CourseOfAction(id, "Label")` | Course of Action |
90| `Strategy_ValueStream(id, "Label")` | Value Stream |
91
92### Implementation Layer
93
94| Macro | ArchiMate Element |
95|-------|-------------------|
96| `Implementation_WorkPackage(id, "Label")` | Work Package |
97| `Implementation_Deliverable(id, "Label")` | Deliverable |
98| `Implementation_Plateau(id, "Label")` | Plateau |
99| `Implementation_Gap(id, "Label")` | Gap |
100| `Implementation_Event(id, "Label")` | Implementation Event |
101
102## Relationship Macros
103
104All relationships support directional suffixes: `_Up`, `_Down`, `_Left`, `_Right`.
105
106| Macro | ArchiMate Relationship | Line Style |
107|-------|------------------------|------------|
108| `Rel_Composition(from, to, "label")` | Composition | Solid + filled diamond |
109| `Rel_Aggregation(from, to, "label")` | Aggregation | Solid + open diamond |
110| `Rel_Assignment(from, to, "label")` | Assignment | Solid + circle→triangle |
111| `Rel_Realization(from, to, "label")` | Realization | Dotted + hollow triangle |
112| `Rel_Serving(from, to, "label")` | Serving | Solid + arrow |
113| `Rel_Triggering(from, to, "label")` | Triggering | Solid + filled triangle |
114| `Rel_Flow(from, to, "label")` | Flow | Dashed + filled triangle |
115| `Rel_Access(from, to, "label")` | Access | Dotted line |
116| `Rel_Access_r(from, to, "label")` | Access (read) | Dotted + arrow |
117| `Rel_Access_w(from, to, "label")` | Access (write) | Dotted + reverse arrow |
118| `Rel_Influence(from, to, "label")` | Influence | Dashed + arrow |
119| `Rel_Association(from, to, "label")` | Association | Solid line |
120| `Rel_Specialization(from, to, "label")` | Specialization | Solid + hollow triangle |
121
122## Quick Example
123
124```plantuml
125@startuml
126!include <archimate/Archimate>
127
128rectangle "Business" {
129 Business_Actor(customer, "Customer")
130 Business_Process(order, "Order Process")
131 Business_Service(orderSvc, "Order Service")
132}
133
134rectangle "Application" {
135 Application_Component(orderApp, "Order System")
136 Application_Service(orderAPI, "Order API")
137}
138
139rectangle "Technology" {
140 Technology_Node(server, "App Server")
141 Technology_Device(db, "Database Server")
142}
143
144Rel_Triggering(customer, order, "places order")
145Rel_Realization(order, orderSvc, "realizes")
146Rel_Serving(orderAPI, orderSvc, "serves")
147Rel_Realization(orderApp, orderAPI, "realizes")
148Rel_Assignment(server, orderApp, "runs on")
149Rel_Serving(db, server, "stores data")
150@enduml
151```
152
153## Diagram Types
154
155| Type | Purpose | Key Macros | Example |
156|------|---------|------------|---------|
157| Enterprise Landscape | Full B/A/T layered view | All layers | [enterprise-landscape.md](examples/enterprise-landscape.md) |
158| Application Integration | App-to-app data flows | `Application_*` | [application-integration.md](examples/application-integration.md) |
159| Technology Infrastructure | Infrastructure stack | `Technology_*` | [technology-infrastructure.md](examples/technology-infrastructure.md) |
160| Business Capability | Capability map | `Strategy_*`, `Business_*` | [business-capability.md](examples/business-capability.md) |
161| Migration Planning | Plateau-based roadmap | `Implementation_*` | [migration-planning.md](examples/migration-planning.md) |
162| Security Architecture | Security controls | `Technology_*`, `Motivation_*` | [security-architecture.md](examples/security-architecture.md) |
163| Data Architecture | Data flow & ownership | `Application_DataObject`, `Rel_Access_*` | [data-architecture.md](examples/data-architecture.md) |
164| DevOps Pipeline | CI/CD delivery chain | `Technology_*`, `Application_*` | [devops-pipeline.md](examples/devops-pipeline.md) |