Skip to content

Commit 0cdb109

Browse files
committed
Did some much required TLC on the Archimate PlantUML Macros
- Reworked the macros to not use define and definelong, instead use procedures as per the documentation - Introducting Theming capability and added 5 themes + the default theme. - Added DevContainer support to make developing and using the service easier - Add nesting capability on most of the Archimate components.
1 parent e271625 commit 0cdb109

12 files changed

+1260
-174
lines changed

.devcontainer/devcontainer.json

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
2+
// README at: https://github.com/devcontainers/templates/tree/main/src/docker-in-docker
3+
{
4+
"name": "PlantUml Dev Container",
5+
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
6+
"image": "plantuml/plantuml-server:jetty",
7+
"features": {
8+
"ghcr.io/devcontainers/features/docker-in-docker:2": {
9+
"version": "latest",
10+
"enableNonRootDocker": "true",
11+
"moby": "true"
12+
}
13+
},
14+
// Use 'forwardPorts' to make a list of ports inside the container available locally.
15+
// "forwardPorts": [],
16+
// Use 'postCreateCommand' to run commands after the container is created.
17+
//"postCreateCommand": "docker run -d -p 8080:8080 plantuml/plantuml-server:jetty",
18+
"customizations": {
19+
"vscode": {
20+
"extensions": [
21+
"jebbs.plantuml"
22+
]
23+
// "settings": {
24+
// "plantuml.exportFormat": "png",
25+
// "plantuml.render": "PlantUMLServer",
26+
// "plantuml.server": "http://localhost:8080",
27+
// "plantuml.diagramsRoot": "png",
28+
// "plantuml.exportOutDir": "png"
29+
// }
30+
}
31+
}
32+
// Configure tool-specific properties.
33+
// "customizations": {},
34+
// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
35+
// "remoteUser": "root"
36+
}

Archimate.puml

Lines changed: 720 additions & 171 deletions
Large diffs are not rendered by default.

samples/Archimate-Elements.wsd

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
@startuml
22
!include ../Archimate.puml
3+
!theme archimate-saturated from ../themes
34

45
title Archimate Example - Elements
56

@@ -35,7 +36,6 @@ Application_Event(AE_01, "Application Event")
3536
Application_Service(AS_01, "Application Service")
3637
Application_DataObject(AD_01, "Data Object")
3738

38-
3939
Technology_Node(TN_01, "Node")
4040
Technology_Device(TD_01, "Device")
4141
Technology_SystemSoftware(TSS_01, "System Software")
@@ -59,13 +59,12 @@ Physical_Material(PM_01, "Material")
5959
Motivation_Stakeholder(MS_01, "Stakeholder")
6060
Motivation_Driver(MD_01, "Driver")
6161
Motivation_Assessment(MA_01, "Assessment")
62-
Motivation_Goal(MG_01, "Goal")
6362
Motivation_Outcome(MO_01, "Outcome")
6463
Motivation_Principle(MP_01, "Principle")
6564
Motivation_Requirement(MR_01, "Requirement")
6665
Motivation_Constraint(MC_01, "Constraint")
6766
Motivation_Meaning(MM_01, "Meaning")
68-
Motivation_Value(MV_01, "Value with some longer text\nand multiline\nand more")
67+
Motivation_Value(MV_01, "Value")
6968

7069
'Implementation Elements
7170
Implementation_WorkPackage(IWP_01, "Work Package")

samples/Archimate-InternetBrowser.wsd

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
@startuml
22
!include ../Archimate.puml
3+
!theme archimate-saturated from ../themes
34

45
title Archimate Sample - Internet Browser
56

samples/Archimate-Overview.wsd

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
@startuml
22
!include ../Archimate.puml
3+
!theme archimate-saturated from ../themes
34

45
title Archimate Overview
56

samples/Archimate-Relationships.wsd

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
@startuml
22
!include ../Archimate.puml
3+
!theme archimate-handwriting from ../themes
34

45
title Archimate Example - Relationships
56

samples/Archimate-Sample01.wsd

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
@startuml
22
!include ../Archimate.puml
3+
!theme archimate-saturated from ../themes
34

45
title Archimate Sample - Requirement & Application Services
56

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
!$PUML_THEME = "archimate-alternate"
2+
!$THEME = "archimate-alternate"
3+
4+
!$STRATEGY_FILLCOLOR = "#e5a82e"
5+
!$BUSINESS_FILLCOLOR = "#f8da62"
6+
!$APPLICATION_FILLCOLOR = "#92b8c4"
7+
!$TECHNOLOGY_FILLCOLOR = "#9fb394"
8+
!$PHYSICAL_FILLCOLOR = "#PHYSICAL"
9+
!$MOTIVATION_FILLCOLOR = "#b3a8b8"
10+
!$IMPLEMANTATION_FILLCOLOR = "#e9a7a1"
11+
!$OTHER_FILLCOLOR = "#bababa"
12+
!$JUNCTIONOR_FILLCOLOR = "#WhiteSmoke"
13+
!$JUNCTIONAND_FILLCOLOR = "#Black"
14+
!$GROUP_FILLCOLOR = "#ffc73f"
15+
!$FOLDER_LINECOLOR = "#4f4f4f"
16+
!$RELATIONSHIP_LINECOLOR = "#Black"
17+
!$RELATIONSHIP_FONTCOLOR = "#Black"
18+
!$RELATIONSHIP_FONTSIZE = 10
19+
20+
!$TITLE_FONTSIZE = 14
21+
!$DEFAULT_FONT = "Verdana"
22+
!$DEFAULT_FONTSIZE = 12
23+
24+
skinparam defaultFontName $DEFAULT_FONT
25+
skinparam defaultFontSize $DEFAULT_FONTSIZE
26+
skinparam defaultTextAlignment center
27+
skinparam wrapWidth 600
28+
skinparam maxMessageSize 150
29+
skinparam StereotypeAlignment right
30+
31+
skinparam title {
32+
FontSize $TITLE_FONTSIZE
33+
}
34+
skinparam Arrow {
35+
Color $RELATIONSHIP_LINECOLOR
36+
FontColor $RELATIONSHIP_FONTCOLOR
37+
FontSize $RELATIONSHIP_FONTSIZE
38+
}
39+
skinparam Folder<<grouping>> {
40+
Shadowing true
41+
StereotypeFontSize 0
42+
BorderColor $FOLDER_LINECOLOR
43+
BorderStyle dashed
44+
}
45+
skinparam Folder<<group>> {
46+
Shadowing true
47+
StereotypeFontSize 0
48+
BackgroundColor $GROUP_FILLCOLOR
49+
}
50+
skinparam rectangle<<boundary>> {
51+
Shadowing false
52+
StereotypeFontSize 0
53+
BorderColor $FOLDER_LINECOLOR
54+
BorderStyle dashed
55+
}
56+
skinparam node {
57+
StereotypeAlignment right
58+
}
59+
skinparam cloud {
60+
StereotypeAlignment right
61+
}
62+
skinparam frame {
63+
StereotypeAlignment right
64+
}
65+
skinparam archimate {
66+
StereotypeAlignment right
67+
RoundCorner<<strategy-capability>> 25
68+
RoundCorner<<strategy-course-of-action>> 25
69+
RoundCorner<<strategy-value-stream>> 25
70+
RoundCorner<<business-process>> 25
71+
RoundCorner<<business-event>> 25
72+
RoundCorner<<business-function>> 25
73+
RoundCorner<<business-interaction>> 25
74+
RoundCorner<<business-event>> 25
75+
RoundCorner<<business-service>> 25
76+
RoundCorner<<application-function>> 25
77+
RoundCorner<<application-interaction>> 25
78+
RoundCorner<<application-process>> 25
79+
RoundCorner<<application-event>> 25
80+
RoundCorner<<application-service>> 25
81+
RoundCorner<<technology-function>> 25
82+
RoundCorner<<technology-process>> 25
83+
RoundCorner<<technology-interaction>> 25
84+
RoundCorner<<technology-event>> 25
85+
RoundCorner<<technology-infra-service>> 25
86+
RoundCorner<<implementation-workpackage>> 25
87+
RoundCorner<<implementation-event>> 25
88+
DiagonalCorner<<motivation-stakeholder>> 12
89+
DiagonalCorner<<motivation-driver>> 12
90+
DiagonalCorner<<motivation-assessment>> 12
91+
DiagonalCorner<<motivation-goal>> 12
92+
DiagonalCorner<<motivation-outcome>> 12
93+
DiagonalCorner<<motivation-principle>> 12
94+
DiagonalCorner<<motivation-requirement>> 12
95+
DiagonalCorner<<motivation-constraint>> 12
96+
}
97+
skinparam usecase {
98+
BorderColor #000000
99+
}
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
!$PUML_THEME = "archimate-handwriting"
2+
!$THEME = "archimate-handwriting"
3+
4+
!$STRATEGY_FILLCOLOR = "#f5deaa"
5+
!$BUSINESS_FILLCOLOR = "#ffffb5"
6+
!$APPLICATION_FILLCOLOR = "#b5ffff"
7+
!$TECHNOLOGY_FILLCOLOR = "#c9e7b7"
8+
!$PHYSICAL_FILLCOLOR = "#PHYSICAL"
9+
!$MOTIVATION_FILLCOLOR = "#ccccff"
10+
!$IMPLEMANTATION_FILLCOLOR = "#ffe0e0"
11+
!$OTHER_FILLCOLOR = "#edcfe2"
12+
!$JUNCTIONOR_FILLCOLOR = "#WhiteSmoke"
13+
!$JUNCTIONAND_FILLCOLOR = "#Black"
14+
!$GROUP_FILLCOLOR = "#ffc73f"
15+
!$FOLDER_LINECOLOR = "#5c5c5c"
16+
!$RELATIONSHIP_LINECOLOR = "#Black"
17+
!$RELATIONSHIP_FONTCOLOR = "#Black"
18+
!$RELATIONSHIP_FONTSIZE = 10
19+
20+
!$TITLE_FONTSIZE = 14
21+
!$DEFAULT_FONT = "Comic Sans MS"
22+
!$DEFAULT_FONTSIZE = 12
23+
24+
skinparam backgroundColor #EEEBDC
25+
skinparam Handwritten true
26+
skinparam defaultFontName $DEFAULT_FONT
27+
skinparam defaultFontSize $DEFAULT_FONTSIZE
28+
skinparam defaultTextAlignment center
29+
skinparam wrapWidth 600
30+
skinparam maxMessageSize 150
31+
skinparam StereotypeAlignment right
32+
center footer <font color=red>Warning:</font> Created for discussion, needs to be validated
33+
34+
skinparam title {
35+
FontSize $TITLE_FONTSIZE
36+
}
37+
skinparam Arrow {
38+
Color $RELATIONSHIP_LINECOLOR
39+
FontColor $RELATIONSHIP_FONTCOLOR
40+
FontSize $RELATIONSHIP_FONTSIZE
41+
}
42+
skinparam Folder<<grouping>> {
43+
Shadowing true
44+
StereotypeFontSize 0
45+
BorderColor $FOLDER_LINECOLOR
46+
BorderStyle dashed
47+
}
48+
skinparam Folder<<group>> {
49+
Shadowing true
50+
StereotypeFontSize 0
51+
BackgroundColor $GROUP_FILLCOLOR
52+
}
53+
skinparam rectangle<<boundary>> {
54+
Shadowing false
55+
StereotypeFontSize 0
56+
BorderColor $FOLDER_LINECOLOR
57+
BorderStyle dashed
58+
}
59+
skinparam node {
60+
StereotypeAlignment right
61+
}
62+
skinparam cloud {
63+
StereotypeAlignment right
64+
}
65+
skinparam frame {
66+
StereotypeAlignment right
67+
}
68+
skinparam archimate {
69+
StereotypeAlignment right
70+
RoundCorner<<strategy-capability>> 25
71+
RoundCorner<<strategy-course-of-action>> 25
72+
RoundCorner<<strategy-value-stream>> 25
73+
RoundCorner<<business-process>> 25
74+
RoundCorner<<business-event>> 25
75+
RoundCorner<<business-function>> 25
76+
RoundCorner<<business-interaction>> 25
77+
RoundCorner<<business-event>> 25
78+
RoundCorner<<business-service>> 25
79+
RoundCorner<<application-function>> 25
80+
RoundCorner<<application-interaction>> 25
81+
RoundCorner<<application-process>> 25
82+
RoundCorner<<application-event>> 25
83+
RoundCorner<<application-service>> 25
84+
RoundCorner<<technology-function>> 25
85+
RoundCorner<<technology-process>> 25
86+
RoundCorner<<technology-interaction>> 25
87+
RoundCorner<<technology-event>> 25
88+
RoundCorner<<technology-infra-service>> 25
89+
RoundCorner<<implementation-workpackage>> 25
90+
RoundCorner<<implementation-event>> 25
91+
DiagonalCorner<<motivation-stakeholder>> 12
92+
DiagonalCorner<<motivation-driver>> 12
93+
DiagonalCorner<<motivation-assessment>> 12
94+
DiagonalCorner<<motivation-goal>> 12
95+
DiagonalCorner<<motivation-outcome>> 12
96+
DiagonalCorner<<motivation-principle>> 12
97+
DiagonalCorner<<motivation-requirement>> 12
98+
DiagonalCorner<<motivation-constraint>> 12
99+
}
100+
skinparam usecase {
101+
BorderColor #000000
102+
}

0 commit comments

Comments
 (0)