plantuml-stdlib / archimate-plantuml Goto Github PK
View Code? Open in Web Editor NEWPlantUML macros and other includes for Archimate Diagrams
License: MIT License
PlantUML macros and other includes for Archimate Diagrams
License: MIT License
The technology-process
while a valid Archimate item doesn't exist as a valid sprite, per this diagram (listsprite
):
It's possible to use process
however to recreate a valid looking entity:
PlantUML code:
@startuml
!includeurl https://raw.githubusercontent.com/ebbypeter/Archimate-PlantUML/master/Archimate.puml
title Archimate Overview
'LAYOUT_AS_SKETCH
'LAYOUT_LEFT_RIGHT
'LAYOUT_TOP_DOWN
Grouping(B_Group,"Business"){
Business_Process(BProcess, "Business Process")
}
Grouping(T_Group, "Technology"){
Technology_Process(TProcess, "Technology Process")
archimate #TECHNOLOGY "Working Technology Process" <<process>>
archimate #TECHNOLOGY "Non-Working Technology Process" <<technology-process>>
}
@enduml
It could be addressed by a simple change in the include define for that macro, (line 104) from:
!define Technology_Process(e_alias, e_label) archimate #TECHNOLOGY "e_label" <<technology-process>> as e_alias
to:
!define Technology_Process(e_alias, e_label) archimate #TECHNOLOGY "e_label" <<process>> as e_alias
I know it doesn't look as nice, but it would fix an error in one of your samples - https://github.com/ebbypeter/Archimate-PlantUML/blob/master/samples/Archimate-Overview.wsd without need to change the code in that sample however.
Hey can we have grouping by Archimate Component?
Let's say I have requirement to create catalog of many Business Services. Each Business Services consist of many Business Process.
Thanks for an eminently useful package. I have a small request:
For the Technology_Service, possible to add a "flat" version of the node graphic?
E.g.:
!define Technology_Node_f(e_alias, e_label) rectangle #TECHNOLOGY "e_label" <<$archimate/technology-node>> as e_alias
This will allow similar look to diagrams created with Archi.
Is it possibe to implement Rel_Composition_Nest ? Similar question from 2020 is here:
https://forum.plantuml.net/12302/extra-direction-nesting-structural-relationships-archimate
thanx
After all the PR merges some things have broken, several things have reverted, other need to be updated, and some other things were broken before and I just found them:
First thank you so much for this piece of software!
Second I have a small question regarding the access arrow.
How do I actually use Rel_Access and specify the directions?
5.2.2 Access Relationship in
https://pubs.opengroup.org/architecture/archimate3-doc/chap05.html
Thank you
would love to include your macros here:
https://github.com/kiebor/PlantUml-Language-Service
It's very similar to the proposal I set out for plantuml archimate syntax early on:
Thanks in advance.
Relation "Influnce" should be "Influence"
I'd like to reopen #38 to get an implementation into the code.
I am not asking for every component to offer a macro for nesting.
Also, I have no idea how you could implement this. Like, can a macro leave an open { at the end?
So you could do
Application_ComponentNesting(MyAppComp,"My AppComponent)
Application_Function(...)
Application_Function(...)
NestEnd
If it's possible to give examples that show an answer to #38 without requiring that you abandon all the Archimate macros inside your nesting, that would also be fine.
Thanks!
Several of us have been making an effort to bring together the projects and people who feed sprites into the official plantuml-stdlib.
We've been doing this under https://github.com/plantuml-stdlib/, with the go-ahead of Arnaud Roques (creator of PlantUML)
This ticket is to ask whether you would be interested in joining that effort and/or migrating this project to the PlantUML-StdLib organization.
The main reason for asking is to see if, by joining forces, we can make sure that any sprites already added to the official plantuml-stdlib remain maintained.
So, what do you think?
Equipment and facility should be Nodes, as seen in https://www.goodea.eu/archimate/reference/
Why can't we build something that we can define the layers like in the attached image and place the objects in them?
Maybe we can use some syntax like below?
archimate {
business "Business" as bs {
passive {
}
behavior {
}
active {
}
}
application "Application" as app {
passive {
}
behavior {
}
active {
}
}
technology "Technology" as tech {
passive {
}
behavior {
}
active {
}
}
physical "Physical" as phys {
passive {
}
behavior {
}
active {
}
}
}
}
@startuml
left to right direction
skinparam nodesep 4
!include <archimate/Archimate>
Rel_(i5, j5, Access_rw_RIGHT, "<~~>")
Rel_Access_rw(i4, j4, Access_rw_WRONG)
Rel_Access_w(i3, j3, Access_w)
Rel_Access_r(i2, j2, Access_r)
Rel_Access(i1, j1, Access)
@enduml
You can see
Update the ReadMe.md with Background, usage, how to get started etc...
Just a quick note to thank you.
Its a fabulous project and something that we have been looking for.
Hi @Potherca,
if all integrated stdlibs are requested, Archimate-PlantUML
references the moved "https://github.com/ebbypeter/Archimate-PlantUML" and the version is 0.0.1.
@startuml
stdlib
@enduml
Best regards
Helmut
PS.: It could be that other urls should be updated too
Does it possible to make Assignment relation looking closer to Archimate Standart - with black and smaller circle at starting end ?
Archimate PlantUML looking
Archimate Standart looking
(source: https://pubs.opengroup.org/architecture/archimate3-doc/chap05.html#_Toc10045314)
I am using the last release of plantUML
PlantUML version 1.2019.01 (Sat Feb 09 23:32:04 CST 2019)
(GPL source distribution)
Java Runtime: OpenJDK Runtime Environment
JVM: OpenJDK 64-Bit Server VM
Java Version: 1.8.0_191-b12
Operating System: Linux
OS Version: 4.19.7
Default Encoding: UTF-8
Language: en
Country: US
Machine: mymachine
PLANTUML_LIMIT_SIZE: 4096
Processors: 4
Max Memory: 1,847,590,912
Total Memory: 124,780,544
Free Memory: 119,906,768
Used Memory: 4,873,776
Thread Active Count: 1
The environment variable GRAPHVIZ_DOT has not been set
Dot executable is /usr/bin/dot
Dot version: dot - graphviz version 2.40.1 (20161225.0304)
Installation seems OK. File generation OK
I am trying to use the code from plantuml's guide almost verbatim:
@startuml Internet Browser Example
!includeurl https://raw.githubusercontent.com/ebbypeter/Archimate-PlantUML/master/Archimate.puml
title "Archimate Sample - Internet Browser"
' Elements
Business_Object (businessObject , "A Business Object ")
Business_Process(someBusinessProcess ," Some Business Process ")
Business_Service(itSupportService , "IT Support for Business (Application Service )")
Application_DataObject(dataObject , "Web Page Data \n 'on the fly '")
Application_Function(webpageBehaviour , "Web page behaviour ")
Application_Component (ActivePartWebPage , "Active Part of the web page \n 'on the fly '")
Technology_Artifact (inMemoryItem ,"in memory / 'on the fly ' html/javascript ")
Technology_Service(internetBrowser , "Internet Browser Generic & Plugin ")
Technology_Service(internetBrowserPlugin , "Some Internet Browser Plugin ")
Technology_Service(webServer , "Some web server ")
'Relationships
Rel_Flow_Left(someBusinessProcess , businessObject , "")
Rel_Serving_Up(itSupportService , someBusinessProcess , "")
Rel_Specilization_Up(webpageBehaviour , itSupportService , "")
Rel_Flow_Right(dataObject , webpageBehaviour , "")
Rel_Specilization_Up(dataObject , businessObject , "")
Rel_Assignment_Left (ActivePartWebPage , webpageBehaviour , "")
Rel_Specilization_Up(inMemoryItem , dataObject , "")
Rel_Realization_Up(inMemoryItem , ActivePartWebPage , "")
Rel_Specilization_Right (inMemoryItem ,internetBrowser , "")
Rel_Serving_Up(internetBrowser , webpageBehaviour , "")
Rel_Serving_Up(internetBrowserPlugin , webpageBehaviour , "")
Rel_Aggregation_Right (internetBrowser , internetBrowserPlugin , "")
Rel_Access_Up(webServer , inMemoryItem , "")
Rel_Serving_Up(webServer , internetBrowser , "")
@enduml
But the code doesn't compile:
lockywolf@delllaptop:~/InternetBrowserExample$ java -jar ../.emacs.d/plantuml.jar -v DrMe.iuml
(0.000 - 119 Mo) 114 Mo - PlantUML Version 1.2019.01
(0.004 - 119 Mo) 114 Mo - GraphicsEnvironment.isHeadless() false
(0.004 - 119 Mo) 114 Mo - Forcing resource load on OpenJdk
(0.103 - 119 Mo) 114 Mo - Found 1 files
(0.103 - 119 Mo) 114 Mo - Working on /home/lockywolf/InternetBrowserExample/DrMe.iuml
(0.141 - 119 Mo) 113 Mo - Setting current dir: .
(0.141 - 119 Mo) 113 Mo - Setting current dir: /home/lockywolf/InternetBrowserExample
(0.148 - 119 Mo) 113 Mo - Using default charset
(0.154 - 119 Mo) 113 Mo - Reading from DrMe.iuml
(0.156 - 119 Mo) 113 Mo - Creating AParentFolderRegular /home/lockywolf/InternetBrowserExample
(0.183 - 119 Mo) 112 Mo - Using default charset
(1.561 - 119 Mo) 98 Mo - Reading from https://raw.githubusercontent.com/ebbypeter/Archimate-PlantUML/master/Archimate.puml
(2.314 - 119 Mo) 97 Mo - Using default charset
(2.314 - 119 Mo) 97 Mo - Reading from https://raw.githubusercontent.com/ebbypeter/Archimate-PlantUML/master/Archimate.puml
(2.695 - 119 Mo) 93 Mo - Reading file: DrMe.iuml
(2.697 - 119 Mo) 93 Mo - name from block=Internet Browser Example
(2.697 - 119 Mo) 93 Mo - Checking=Internet Browser Example
(2.697 - 119 Mo) 93 Mo - f=Internet Browser Example
(2.698 - 119 Mo) 93 Mo - Relative, so let's change it
(2.698 - 119 Mo) 93 Mo - f=/home/lockywolf/InternetBrowserExample/Internet Browser Example
(2.698 - 119 Mo) 93 Mo - It's not a directory
(2.699 - 119 Mo) 93 Mo - Internet Browser Example is not taken as a directory
(2.700 - 119 Mo) 93 Mo - We are going to put data in /home/lockywolf/InternetBrowserExample/Internet Browser Example[0]
(3.758 - 150 Mo) 57 Mo - Creating file: /home/lockywolf/InternetBrowserExample/Internet Browser Example.png
(3.871 - 150 Mo) 47 Mo - Creating image 731x132
(3.925 - 150 Mo) 38 Mo - Ok for com.sun.imageio.plugins.png.PNGMetadata
(4.009 - 150 Mo) 38 Mo - Number of image(s): 1
Error line 9 in file: /home/lockywolf/InternetBrowserExample/DrMe.iuml
Some diagram description contains errors
The image, however, has a different error on it:
skinparam defaultTextAlignment center
What to do?
As can be seen in https://www.goodea.eu/archimate/reference/
The association relationhip can be undirected by default, but also directed. As seen in https://pubs.opengroup.org/architecture/archimate3-doc/chap05.html#_Toc10045321
The directed version it should present a half-arrowhead, but that one isn't available in plantuml, so the next best solution is to mantain consistency with the rest of the dependency relationships and use the same arrowhead as them.
And to avoid confusion with the serving relationship my proposal is to thick the body of the association relationship. As seen in the following diagram (which already has the corrections from PR #19)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.