1+ ' Archimate-PlantUML
2+ ' Version 0.1
3+ ' Url will come here...
4+
5+ ' Styling
6+ ' ##################################
7+ !define TECHN_FONT_SIZE 12
8+ !define ELEMENT_FONT_COLOR #FFFFFF
9+
10+ skinparam defaultTextAlignment center
11+ skinparam wrapWidth 400
12+ skinparam maxMessageSize 150
13+
14+ skinparam Arrow {
15+ Color #000000
16+ FontColor #000000
17+ FontSize 12
18+ }
19+ skinparam Folder <<grouping>> {
20+ Shadowing true
21+ StereotypeFontSize 0
22+ FontColor #444444
23+ BorderColor #444444
24+ BorderStyle dashed
25+ }
26+ skinparam Folder <<group>> {
27+ Shadowing true
28+ FontColor #444444
29+ BackgroundColor lightgrey
30+ }
31+ skinparam rectangle <<boundary>> {
32+ Shadowing false
33+ StereotypeFontSize 0
34+ FontColor #444444
35+ BorderColor #444444
36+ BorderStyle dashed
37+ }
38+
39+ ' Layout
40+ ' ##################################
41+ !definelong LAYOUT_AS_SKETCH
42+ skinparam backgroundColor #EEEBDC
43+ skinparam handwritten true
44+ skinparam defaultFontName "Comic Sans MS"
45+ center footer <font color=red>Warning:</font> Created for discussion, needs to be validated
46+ !enddefinelong
47+ !define LAYOUT_TOP_DOWN top to bottom direction
48+ !define LAYOUT_LEFT_RIGHT left to right direction
49+
50+ ' Layout Helpers
51+ ' ##################################
52+ !define Lay_D (e_from , e_to ) e_from - [hidden ]D - e_to
53+ !define Lay_U (e_from , e_to ) e_from - [hidden ]U - e_to
54+ !define Lay_R (e_from , e_to ) e_from - [hidden ]R - e_to
55+ !define Lay_L (e_from , e_to ) e_from - [hidden ]L - e_to
56+
57+ ' Boundaries
58+ ' ##################################
59+ !define Boundary (e_alias , e_label ) rectangle "==e_label" <<boundary >> as e_alias
60+ !define Boundary (e_alias , e_label , e_type ) rectangle "==e_label\n<size:TECHN_FONT_SIZE>[e_type]</size>" <<boundary >> as e_alias
61+
62+ ' Elements
63+ ' ##################################
64+ 'Strategy Elements
65+ !define Strategy_Resource (e_alias , e_label ) archimate #STRATEGY "e_label" <<strategy - resource >> as e_alias
66+ !define Strategy_Capability (e_alias , e_label ) archimate #STRATEGY "e_label" <<strategy - capability >> as e_alias
67+ !define Strategy_CourseOfAction (e_alias , e_label ) archimate #STRATEGY "e_label" <<strategy - course - of - action >> as e_alias
68+
69+ 'Business Elements
70+ !define Business_Actor (e_alias , e_label ) archimate #BUSINESS "e_label" <<business - actor >> as e_alias
71+ !define Business_Role (e_alias , e_label ) archimate #BUSINESS "e_label" <<business - role >> as e_alias
72+ !define Business_Collaboration (e_alias , e_label ) archimate #BUSINESS "e_label" <<business - collaboration >> as e_alias
73+ !define Business_Interface (e_alias , e_label ) archimate #BUSINESS "e_label" <<business - interface >> as e_alias
74+ !define Business_Process (e_alias , e_label ) archimate #BUSINESS "e_label" <<business - process >> as e_alias
75+ !define Business_Function (e_alias , e_label ) archimate #BUSINESS "e_label" <<business - function >> as e_alias
76+ !define Business_Interaction (e_alias , e_label ) archimate #BUSINESS "e_label" <<business - interaction >> as e_alias
77+ !define Business_Event (e_alias , e_label ) archimate #BUSINESS "e_label" <<business - event >> as e_alias
78+ !define Business_Service (e_alias , e_label ) archimate #BUSINESS "e_label" <<business - service >> as e_alias
79+ !define Business_Object (e_alias , e_label ) archimate #BUSINESS "e_label" <<business - object >> as e_alias
80+ !define Business_Contract (e_alias , e_label ) archimate #BUSINESS "e_label" <<business - contract >> as e_alias
81+ !define Business_Representation (e_alias , e_label ) archimate #BUSINESS "e_label" <<business - representation >> as e_alias
82+ !define Business_Product (e_alias , e_label ) archimate #BUSINESS "e_label" <<business - product >> as e_alias
83+
84+ 'Application Elements
85+ !define Application_Component (e_alias , e_label ) archimate #APPLICATION "e_label" <<application - component >> as e_alias
86+ !define Application_Collaboration (e_alias , e_label ) archimate #APPLICATION "e_label" <<application - collaboration >> as e_alias
87+ !define Application_Interface (e_alias , e_label ) archimate #APPLICATION "e_label" <<application - interface >> as e_alias
88+ !define Application_Function (e_alias , e_label ) archimate #APPLICATION "e_label" <<application - function >> as e_alias
89+ !define Application_Interaction (e_alias , e_label ) archimate #APPLICATION "e_label" <<application - interaction >> as e_alias
90+ !define Application_Process (e_alias , e_label ) archimate #APPLICATION "e_label" <<application - process >> as e_alias
91+ !define Application_Event (e_alias , e_label ) archimate #APPLICATION "e_label" <<application - event >> as e_alias
92+ !define Application_Service (e_alias , e_label ) archimate #APPLICATION "e_label" <<application - service >> as e_alias
93+ !define Application_DataObject (e_alias , e_label ) archimate #APPLICATION "e_label" <<application - data - object >> as e_alias
94+
95+ 'Technology Elements
96+ !define Technology_Node (e_alias , e_label ) archimate #TECHNOLOGY "e_label" <<technology - node >> as e_alias
97+ !define Technology_Device (e_alias , e_label ) archimate #TECHNOLOGY "e_label" <<technology - device >> as e_alias
98+ !define Technology_SystemSoftware (e_alias , e_label ) archimate #TECHNOLOGY "e_label" <<technology - system - software >> as e_alias
99+ !define Technology_Collaboration (e_alias , e_label ) archimate #TECHNOLOGY "e_label" <<collaboration >> as e_alias
100+ !define Technology_Interface (e_alias , e_label ) archimate #TECHNOLOGY "e_label" <<technology - infra - interface >> as e_alias
101+ !define Technology_Path (e_alias , e_label ) archimate #TECHNOLOGY "e_label" <<technology - communication - path >> as e_alias
102+ !define Technology_CommunicationNetwork (e_alias , e_label ) archimate #TECHNOLOGY "e_label" <<technology - network >> as e_alias
103+ !define Technology_Function (e_alias , e_label ) archimate #TECHNOLOGY "e_label" <<technology - function >> as e_alias
104+ !define Technology_Process (e_alias , e_label ) archimate #TECHNOLOGY "e_label" <<technology - process >> as e_alias
105+ !define Technology_Interaction (e_alias , e_label ) archimate #TECHNOLOGY "e_label" <<interaction >> as e_alias
106+ !define Technology_Event (e_alias , e_label ) archimate #TECHNOLOGY "e_label" <<event >> as e_alias
107+ !define Technology_Service (e_alias , e_label ) archimate #TECHNOLOGY "e_label" <<technology - infra - service >> as e_alias
108+ !define Technology_Artifact (e_alias , e_label ) archimate #TECHNOLOGY "e_label" <<technology - artifact >> as e_alias
109+
110+ 'Physical Elements
111+ !define Physical_Equipment (e_alias , e_label ) archimate #PHYSICAL "e_label" <<physical - equipment >> as e_alias
112+ !define Physical_Facility (e_alias , e_label ) archimate #PHYSICAL "e_label" <<physical - facility >> as e_alias
113+ !define Physical_DistributionNetwork (e_alias , e_label ) archimate #PHYSICAL "e_label" <<physical - distribution - network >> as e_alias
114+ !define Physical_Material (e_alias , e_label ) archimate #PHYSICAL "e_label" <<physical - material >> as e_alias
115+
116+ 'Motivation Elements
117+ !define Motivation_Stakeholder (e_alias , e_label ) archimate #MOTIVATION "e_label" <<stakeholder - filled >> as e_alias
118+ !define Motivation_Driver (e_alias , e_label ) archimate #MOTIVATION "e_label" <<driver >> as e_alias
119+ !define Motivation_Assessment (e_alias , e_label ) archimate #MOTIVATION "e_label" <<assessment >> as e_alias
120+ !define Motivation_Goal (e_alias , e_label ) archimate #MOTIVATION "e_label" <<goal >> as e_alias
121+ !define Motivation_Outcome (e_alias , e_label ) archimate #MOTIVATION "e_label" <<motivation - outcome >> as e_alias
122+ !define Motivation_Principle (e_alias , e_label ) archimate #MOTIVATION "e_label" <<principle >> as e_alias
123+ !define Motivation_Requirement (e_alias , e_label ) archimate #MOTIVATION "e_label" <<requirement >> as e_alias
124+ !define Motivation_Constraint (e_alias , e_label ) archimate #MOTIVATION "e_label" <<constraint >> as e_alias
125+ !define Motivation_Meaning (e_alias , e_label ) archimate #MOTIVATION "e_label" <<meaning >> as e_alias
126+ !define Motivation_Value (e_alias , e_label ) archimate #MOTIVATION "e_label" <<value >> as e_alias
127+
128+ 'Implementation Elements
129+ !define Implementation_WorkPackage (e_alias , e_label ) archimate #IMPLEMENTATION "e_label" <<workpackage - filled >> as e_alias
130+ !define Implementation_Deliverable (e_alias , e_label ) archimate #IMPLEMENTATION "e_label" <<deliverable - filled >> as e_alias
131+ !define Implementation_Event (e_alias , e_label ) archimate #IMPLEMENTATION "e_label" <<event >> as e_alias
132+ !define Implementation_Plateau (e_alias , e_label ) archimate #IMPLEMENTATION "e_label" <<plateau >> as e_alias
133+ !define Implementation_Gap (e_alias , e_label ) archimate #IMPLEMENTATION "e_label" <<gap - filled >> as e_alias
134+
135+ 'Other Elements
136+ !define Other_Location (e_alias , e_label ) archimate #OrangeRed "e_label" <<location >> as e_alias
137+ !define Junction_Or (e_alias , e_label ) circle #black "e_label" as e_alias
138+ !define Junction_And (e_alias , e_label ) circle #whitesmoke "e_label" as e_alias
139+ !define Grouping (e_alias , e_label ) Folder "e_label" <<grouping >> as e_alias
140+ !define Group (e_alias , e_label ) Folder "e_label" <<group >> as e_alias
141+
142+ ' Relationships
143+ ' ##################################
144+ !define Rel_ (e_sourceAlias , e_targetAlias , e_label , e_direction = "") e_sourceAlias e_direction e_targetAlias : "e_label"
145+
146+ !define Rel_Composition (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "-* ")
147+ !define Rel_Composition_Up (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "-UP -* ")
148+ !define Rel_Composition_Down (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "-DOWN -* ")
149+ !define Rel_Composition_Left (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "-LEFT -* ")
150+ !define Rel_Composition_Right (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "-RIGHT -* ")
151+
152+ !define Rel_Aggregation (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "- o ")
153+ !define Rel_Aggregation_Up (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "-UP - o ")
154+ !define Rel_Aggregation_Down (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "-DOWN - o ")
155+ !define Rel_Aggregation_Left (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "-LEFT - o ")
156+ !define Rel_Aggregation_Right (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "-RIGHT - o ")
157+
158+ !define Rel_Assignment (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "o -> ")
159+ !define Rel_Assignment_Up (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "o -UP -> ")
160+ !define Rel_Assignment_Down (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "o -DOWN -> ")
161+ !define Rel_Assignment_Left (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "o -LEFT -> ")
162+ !define Rel_Assignment_Right (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "o -RIGHT -> ")
163+
164+ !define Rel_Specilization (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "-|> ")
165+ !define Rel_Specilization_Up (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "-UP -|> ")
166+ !define Rel_Specilization_Down (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "-DOWN -|> ")
167+ !define Rel_Specilization_Left (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "-LEFT -|> ")
168+ !define Rel_Specilization_Right (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "-RIGHT -|> ")
169+
170+ !define Rel_Serving (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "-> ")
171+ !define Rel_Serving_Up (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "-UP -> ")
172+ !define Rel_Serving_Down (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "-DOWN -> ")
173+ !define Rel_Serving_Left (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "-LEFT -> ")
174+ !define Rel_Serving_Right (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "-RIGHT -> ")
175+
176+ !define Rel_Association (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "- ")
177+ !define Rel_Association_Up (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "-UP - ")
178+ !define Rel_Association_Down (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "-DOWN - ")
179+ !define Rel_Association_Left (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "-LEFT - ")
180+ !define Rel_Association_Right (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "-RIGHT - ")
181+
182+ !define Rel_Flow (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , ".>> ")
183+ !define Rel_Flow_Up (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , ".UP .>> ")
184+ !define Rel_Flow_Down (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , ".DOWN .>> ")
185+ !define Rel_Flow_Left (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , ".LEFT .>> ")
186+ !define Rel_Flow_Right (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , ".RIGHT .>> ")
187+
188+ !define Rel_Realization (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , ".|> ")
189+ !define Rel_Realization_Up (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , ".UP .|> ")
190+ !define Rel_Realization_Down (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , ".DOWN .|> ")
191+ !define Rel_Realization_Left (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , ".LEFT .|> ")
192+ !define Rel_Realization_Right (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , ".RIGHT .|> ")
193+
194+ !define Rel_Triggering (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "->> ")
195+ !define Rel_Triggering_Up (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "-UP ->> ")
196+ !define Rel_Triggering_Down (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "-DOWN ->> ")
197+ !define Rel_Triggering_Left (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "-LEFT ->> ")
198+ !define Rel_Triggering_Right (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "-RIGHT ->> ")
199+
200+ !define Rel_Access (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , ".> ")
201+ !define Rel_Access_Up (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , ".UP .> ")
202+ !define Rel_Access_Down (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , ".DOWN .> ")
203+ !define Rel_Access_Left (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , ".LEFT .> ")
204+ !define Rel_Access_Right (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , ".RIGHT .> ")
205+
206+ !define Rel_Influnce (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "-> ")
207+ !define Rel_Influnce_Up (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "-UP -> ")
208+ !define Rel_Influnce_Down (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "-DOWN -> ")
209+ !define Rel_Influnce_Left (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "-LEFT -> ")
210+ !define Rel_Influnce_Right (e_From , e_To , e_label = "") Rel_ (e_From , e_To , e_label , "-RIGHT -> ")
0 commit comments