nifdi

Nifdi Basics

Diagrams in nifdi behave like physical objects in the real world - they collide, push and stretch.

See these effects in action below:

Adding

Drag from the palette to add a new object.

You can place new objects anywhere, including:

  • Empty space
  • Between existing objects (if there is not enough room, neighbours will be pushed apart)
  • Inside an existing object (if there is not enough room, the container will be stretched)

Pushing

When you move an object horizontally or vertically it will push its neighbours to make space.

The pale yellow stripes show the block is currently snapped to the x or y axis.

The minimum space between adjacent objects in controlled by a margin which you can adjust.

Squeezing

If you move an object diagonally it will break free from its horizontal/vertical guides.

Once free it will no longer push objects in a single direction, instead squeezing itself into spaces inside and between objects.

This diagonal movement and squeezing allows you to quickly build a hierarchy of shapes, moving one inside another.

Duplicating

Use the + buttons that appear around each object to create a duplicate, placing it adjacent to the original.

Objects in the way will be pushed to make space, and any containing object will be stretched if needed.

For duplicating several times in quick succession, use the keyboard shortcuts Alt+↑, Alt+↓, Alt+← or Alt+→.

You can also duplicate an object by holding down the Alt key while dragging.

Connecting

Click and drag from a + button to create a connection.

You don't need to drag all the way to the other object, just drag towards the destination and release.

Scaling

Select an object and then use the handles at its edges to resize.

The contents will scale as needed, preserving their relative positions.

Typing

Select a box and start typing to place text content inside that selection.

Grouping

Cmd+G seals selected containers into group mode. Cmd+Shift+G opens them again.