Generate a Model

Use a .dragon1 File for generating models

Suppose you need to create a model really fast and you want to do it nice and easy, then Dragon1 has a few options for you to do that. One of them is to generate a model using a .dragon1 file (JSON structured) and the Dragon1 Viewer application.

If you are new to models, read this page on what is a model first.

A .dragon1 file can be created quickly by hand as a text file in Notepad and from there it can be uploaded to the Viewer to watch it.
In Dragon1 many example visualizations provide a .dragon1 file containing the model's data. Those files can be downloaded and edited to fit the needs. Also external systems can generate a .dragon1 File and use the Viewer API, as simple as providing or embedding an Url to it:


With the Dragon1 Viewer application, a model can be generated, viewed, filtered, matched and compared with attribute values and with other models or it can be checked for compliance with other types of models.

dragon1 example of a generated model

An example of a generated model in the Viewer.

How To Generate a Model

We have made it very easy to generate a model on Dragon1.

The steps to generate a model are:

  • Download an example .dragon1 File here.
  • Edit the .dragon1 file in notepad. For instance, change the title and the names of the entities or add attribute values.
  • Go to the Viewer
  • Upload the edited file using the upload button
  • You now see a forced directed graph generated from the file
  • Click the canvas to stop the movement
  • Drag some shapes. (Now the X.Y positions of the shapes are generated in memory. If you download the .dragon1 file from the Viewer you will see the X, Y positions.
  • Click on a shape
  • Now you see the attributes of the entity you clicked.
  • Click on the name of the shape in the left bar. And edit the name. If you download the .dragon1 file from the Viewer you will see the changed name in the file.
  • Click the Layout button at the right bottom of the Viewer and choose the layered group layout for the model. Now the viewer looks for groups of data and visualizes the groups as a stack and positions the items as part of the group inside the group.
  • Edit the .dragon1 file again and set colors for some shapes and add a rule (like explained below). And add attribute values that match or mismatch with the rule.
  • Upload the file and use the Report button to analyze the model.

Dragon1 allows you to create a model by hand and it allows you to generate a model using a specialized JSON definition, that you can create using any text editor. The structure of the JSON is specified on the 'What is a .dragon1 File?' page.

You can copy-and-paste the example below in a text file, then save it with a '.dragon1' extension.

{"class":"model","id":"1", "name":"Dragon1 ArchiModel", "language":"dragon1", "author":"Mark Paauwe", "date":"January 20, 2020", "version":"1.0"},

{"class":"organization","name":"demo organization","id":"1"},

{"class":"group","name":"business layer","id":"1"},
{"class":"group","name":"application layer","id":"2"},
{"class":"group","name":"IT infrastructure layer","id":"3"},


{"class":"object","type":"data","name":"service level agreement","id":"1"},
{"class":"database","type":"oltp","name":"my repository","id":"1"},

{"class":"server","type":"file","name":"file server","id":"1"},
{"class":"network","type":"public","name":"my cloud","id":"1"},

{"class":"relationship", "id":"1", "modelid":"1", "sourceclass":"organization","sourceid":"1","targetclass":"group", "targetid":"1", "type":"association"},
{"class":"relationship", "id":"1", "modelid":"1", "sourceclass":"organization","sourceid":"1","targetclass":"group", "targetid":"2", "type":"association"},
{"class":"relationship", "id":"1", "modelid":"1", "sourceclass":"organization","sourceid":"1","targetclass":"group", "targetid":"3", "type":"association"},

{"class":"relationship", "id":"1", "modelid":"1", "sourceclass":"group","sourceid":"1","targetclass":"actor", "targetid":"1", "type":"association"},
{"class":"relationship", "id":"2", "modelid":"1", "sourceclass":"group","sourceid":"1","targetclass":"product", "targetid":"1", "type":"association"},
{"class":"relationship", "id":"3", "modelid":"1", "sourceclass":"group","sourceid":"1","targetclass":"service", "targetid":"1", "type":"association"},
{"class":"relationship", "id":"4", "modelid":"1", "sourceclass":"group","sourceid":"1","targetclass":"process", "targetid":"1", "type":"association"},

{"class":"relationship", "id":"1", "modelid":"1", "sourceclass":"actor","sourceid":"1","targetclass":"product", "targetid":"1", "type":"association"},
{"class":"relationship", "id":"1", "modelid":"1", "sourceclass":"product","sourceid":"1","targetclass":"service", "targetid":"1", "type":"association"},
{"class":"relationship", "id":"1", "modelid":"1", "sourceclass":"service","sourceid":"1","targetclass":"process", "targetid":"1", "type":"association"},

{"class":"relationship", "id":"5", "modelid":"1", "sourceclass":"group","sourceid":"2","targetclass":"service", "targetid":"1", "type":"association"},
{"class":"relationship", "id":"6", "modelid":"1", "sourceclass":"group","sourceid":"2","targetclass":"application", "targetid":"1", "type":"association"},
{"class":"relationship", "id":"7", "modelid":"1", "sourceclass":"group","sourceid":"2","targetclass":"object", "targetid":"1", "type":"association"},
{"class":"relationship", "id":"8", "modelid":"1", "sourceclass":"group","sourceid":"2","targetclass":"database", "targetid":"1", "type":"association"},

{"class":"relationship", "id":"1", "modelid":"1", "sourceclass":"process","sourceid":"1","targetclass":"service", "targetid":"2", "type":"association"},
{"class":"relationship", "id":"1", "modelid":"1", "sourceclass":"service","sourceid":"2","targetclass":"application", "targetid":"1", "type":"association"},
{"class":"relationship", "id":"1", "modelid":"1", "sourceclass":"application","sourceid":"1","targetclass":"object", "targetid":"1", "type":"association"},
{"class":"relationship", "id":"1", "modelid":"1", "sourceclass":"object","sourceid":"1","targetclass":"database", "targetid":"1", "type":"association"},

{"class":"relationship", "id":"9", "modelid":"1", "sourceclass":"group","sourceid":"3","targetclass":"client", "targetid":"1", "type":"association"},
{"class":"relationship", "id":"10", "modelid":"1", "sourceclass":"group","sourceid":"3","targetclass":"server", "targetid":"1", "type":"association"},
{"class":"relationship", "id":"11", "modelid":"1", "sourceclass":"group","sourceid":"3","targetclass":"platform", "targetid":"1", "type":"association"},
{"class":"relationship", "id":"11", "modelid":"1", "sourceclass":"group","sourceid":"3","targetclass":"network", "targetid":"1", "type":"association"}

Dragon1 supports 200+ entity classes. A full list of entity classes can be found on 'Overview of Entity Classes' page.

Use the Viewer

In the left menu pane click on 'Viewer', then click on on the 'Upload .dragon1 file' button in the top right corner. An open file dialog appears. Select your .dragon1 file and 'Open'. The file will be loaded in the Viewer. Inside the Viewer, you can rearrange the entities to get the result you desire.

dragon1 example of a generated model

An example of a generated model in the Viewer.

Add a Rule to the .dragon1 File

Dragon1 provides a unique feature that you can put rules in a .dragon1 File or rules in the repository and have your model checked on these rules. Here we only discuss rules in a .dragon1 File.

A rule definition in a .dragon1 File looks like this:

[{"class":"rule", "id":"1", "type":"security", "name":"All necessary software updates are executed", "rule-event":"onclick", "rule-condition":" application.softwareupdateversion = softwareupdate.version and = softwareupdate.applicationid","action":"IF match shape.fill = 'green' ELSE shape.fill = 'red '" }]

These .dragon1 File rules enable you to create a list that can check the quality of your processes and applications and the quality of the data you are using the generate and visualize the model.

Viewer API for Viewing Models

You can use the Viewer in any browser to generate and analyze a model that you stored on any web server. By entering: and then the Url of the specific model, the model is loaded directly.

For example:

Create a model by hand?

If you want to learn how to create a model using the Architecture Repository, Visual Designer or the Data Dashboard you can go here.

Advanced Analyses Feature

The Dragon1 Viewer supports analyzing a model that you are watching. Meaning you can match or compare it with other (reference) models or check compliance of the model with regards to rules. To do this click on the Report button and select the report you need.