Tinderbox Forum

Map View and Mind Map like Presentation

Hi, I am using tinderbox often to analyze existing system landscapes in the starting phase of bigger IT projects. What I am looking for actually is an idea to represent the systems, applications running on these systems, changes on these systems and applications and their dependencies on a flat level like a mind map.

The collecting of information I will do in outline view because of the given hierarchy. But presenting the dependencies it would be easier to show all components on same level.

Only idea I have so far is to use agents to collect all notes and create a map view based on the agent.

So, my question is, if this would be the best approach or maybe someone here has a better idea or solved something similar before ?

Thanks four your support.

That is a good idea and a common practice. Something like this – the agent “Map Level” in the example finds descendedFrom("Notes");

Of course your own containers, and the agent, will be very sophisticated.

A map of an agent container (i.e., “Map Level” in the example), by default rearranges itself when the agent refreshes. See Re-Arrangeable Agent Maps. To control that use the $CleanupAction attribute, whose value you set to none for the agent.

Screenshot of Tinderbox (12-6-20, 5-00-34 AM)

It’s also possible to invert the process – have all the notes in a master container and use agents (each of which is mapped) to pick out sub-categories.

A hidden benefit of @PaulWalters’ solution is it also moves what may be a big map out of the root (highest (outline) level of the document). If not using an agent, I’d thus suggesting making big maps in a container and not just in the first (root) map as is presented when you start a new TBX.

If you want to see itrems linked in the map, don’t create links in the map but use the originals. The background rationale is getting into the weeds, but trust me, linking originals notes as opposed to aliases will make your map’s linking more persistent.

. I’m not trying to hide anything, but just avoiding getting-started overload. more on linking and aliases can be read about here.

1 Like

Good point @mwra

As a general matter – I always create this structure in new Tinderbox documents:

Root-level containers for:

  • Notes
  • Agents [for documents that use them]
  • Prototypes
  • Templates
  • Code [for documents that have code notes]

There’s nothing prescriptive about this – other than the advice to segregate “types” of content into dedicated containers, and keep one’s working data (the “notes”) out of the root.

1 Like

Thanks @mwra, @PaulWalters for your insights. I will try it in next days following your suggestions, especially regarding cleanupaction attribute and linking of the originals !

One topic left is a way of kind of automatic layout generation using X,Y coordinates of the note dependent of the notes directly linked to. Any idea regarding this ? I expect I have to use X,Y attribute of the note and adding kind of fix distance to it?! Just want to avoid implementing a second layer of graph layout generation…


While auto layout sounds attractive – and the math is certainly doable – the problem is the math. Consider

  1. $Xpos and $Ypos for a note and its alias in an agent container are not the same – the maps can have different layouts. So the calculations would have to focus on the aliases {X,Y} in the example earlier in this post.
  2. As @mwra suggested, it’s best to consider links between original notes. Since there is no obviously discernible mapping between {X,Y} for originals and {X,Y} for aliases, whatever math takes into account links in the original would probably need some sort of intermediate numeric attributes to calculate the effect on map layout in the map made of aliases.
  3. I believe (without proof – just supposition) that auto-layout can be fragile because it has to take account of numerous exogenous factors: note dimensions, anchor points for links (not calculable), etc.

I don’t mean to scare you off from this – it is a very interesting puzzle. But, auto-layout might be more time consuming than just manually setting up the map you want.**

** Consider that auto-layout based on figure metadata is not common feature of many graphical applications. OmniGraffle might be an exception – and even there the effort to work out the math is not trivial.

Don’t overlook Tinderbox’s force-directed layout method, aka ‘dance’. See more here. It might fit your needs.

Before writing any code in this context, do ask yourself, is this a strict hierarchy? IOW, do all items have one, and only one parent. If not, I’d revisit the plan. It’s not impossible but a little harder than in the minds-eye, where everything looks cool and lays out perfectly.

If it is a strict hierarchy, why not view it in Outline or Chart views. Of not, and it all relationships (inlcuding parent/child outline nesting) are implemented with links, try https://www.acrobatfaq.com/atbref8/index/Windows/DocumentWindow/Viewpane/Hyperbolicview.html.

1 Like

Thanks Paul, these thoughts regarding complexity and effort were preventing me to start.

I will start with the manual approach and will proceed step by step. For me part of the Tinderbox approach and will try to use this as an possibility for more thinking about the dependencies.

In the end, I like Tinderbox because not everything is done automatically. This offers more freedom to me.

1 Like

Unfortunately it is only in the „Material“ world a fixed structure (System - applications - Feature). But business objects and business projects will not necessarily follow it.

Will for sure take a look on this! Thanks!


So ‘dance’ may work for the former and might save a lot of action code. :slight_smile:

Keep in mind Smart Adornments that can help with gathering notes, and other affordances of Map views that can help with understanding the map – subtitles, captions, colors, textures, badges, etc.

If whatever you come up with is shareable in any way – please post an image here so that others who are looking to do a similar task can see a concrete example.

1 Like