CynefinDiagram Class

A diagram of the Cynefin framework: the complex, complicated, chaotic and clear domains as four quadrants separated by wavy boundaries, the confusion domain in their center, items placed in the domains, and transitions between the domains (Mermaid cynefin-beta). The domains are always at the same place: complex at the top left, complicated at the top right, chaotic at the bottom left and clear at the bottom right.

public sealed class CynefinDiagram : Diagram
Inheritance
Diagram CynefinDiagram

Constructors

NameDescription
CynefinDiagram()Initializes a new instance of the CynefinDiagram class, with the padding of Mermaid, 40 pixels.

CynefinDiagram()

CynefinDiagram.cs

Initializes a new instance of the CynefinDiagram class, with the padding of Mermaid, 40 pixels.

public CynefinDiagram()

Properties

NameDescription
BoundaryAmplitudeGets or sets how much the boundaries between the domains wave, in pixels; 0 draws straight lines. The default is 8.
ColorsGets the colors and sizes that replace the ones of the theme (the cynefin theme variables of Mermaid).
HeightGets or sets the height of the diagram, without the padding, in pixels. The default is 600.
ItemsGets the items. The items of a domain are drawn from the top in their order; the confusion domain shows three of them, and the number of the others.
SeedGets or sets the seed of the waves of the boundaries: the same seed always draws the same waves. 0, the default, uses a fixed seed (Mermaid derives it from the identifier of the SVG element, so its waves change between pages).
ShowDomainDescriptionsGets or sets a value that indicates whether the decision model and the practices of each domain are written below its name. The default is true.
TransitionsGets the transitions between the domains.
WidthGets or sets the width of the diagram, without the padding, in pixels. The default is 800.

BoundaryAmplitude

CynefinDiagram.cs

Gets or sets how much the boundaries between the domains wave, in pixels; 0 draws straight lines. The default is 8.

public double BoundaryAmplitude { get; set; }

Property value

double

Exceptions

ArgumentOutOfRangeException
The value is not between 0 and 50.

Gets the colors and sizes that replace the ones of the theme (the cynefin theme variables of Mermaid).

public CynefinTheme Colors { get; }

Property value

CynefinTheme

Gets or sets the height of the diagram, without the padding, in pixels. The default is 600.

public double Height { get; set; }

Property value

double

Exceptions

ArgumentOutOfRangeException
The value is not between 1 and 10000.

Gets the items. The items of a domain are drawn from the top in their order; the confusion domain shows three of them, and the number of the others.

public IList<CynefinItem> Items { get; }

Property value

IList<CynefinItem>

Gets or sets the seed of the waves of the boundaries: the same seed always draws the same waves. 0, the default, uses a fixed seed (Mermaid derives it from the identifier of the SVG element, so its waves change between pages).

public int Seed { get; set; }

Property value

int

ShowDomainDescriptions

CynefinDiagram.cs

Gets or sets a value that indicates whether the decision model and the practices of each domain are written below its name. The default is true.

public bool ShowDomainDescriptions { get; set; }

Property value

bool

Gets the transitions between the domains.

public IList<CynefinTransition> Transitions { get; }

Gets or sets the width of the diagram, without the padding, in pixels. The default is 800.

public double Width { get; set; }

Property value

double

Exceptions

ArgumentOutOfRangeException
The value is not between 1 and 10000.

Methods

NameDescription
AddItem(CynefinDomain, DiagramText)Adds an item to a domain.
AddTransition(CynefinDomain, CynefinDomain, DiagramText?)Adds a transition between two domains.

AddItem(CynefinDomain, DiagramText)

CynefinDiagram.cs

Adds an item to a domain.

public CynefinItem AddItem(CynefinDomain domain, DiagramText label)

Parameters

domain CynefinDomain
The domain.
label DiagramText
The text of the item.

Returns

CynefinItem The item.

AddTransition(CynefinDomain, CynefinDomain, DiagramText?)

CynefinDiagram.cs

Adds a transition between two domains.

public CynefinTransition AddTransition(CynefinDomain from, CynefinDomain to, DiagramText? label = null)

Parameters

from CynefinDomain
The domain the movement starts from.
to CynefinDomain
The domain the movement goes to.
label DiagramText?
The text drawn on the arrow, or null for none.

Returns

CynefinTransition The transition.