Q: It seems that link auto-routing does not work when there is a big background shape in the diagram. How can I fix this?

A: Set the Obstacle property to false:

backgroundShape.Obstacle = false

Q: Is it possible to prevent the auto routing to not move the origin or destination anchor of the link. It is vital that the links stay at the anchor points that the user set.

A: Setting Anchoring to Keep:

	   Diagram.RoutingOptions.Anchoring = Keep
will do that.

Q: Is it possible to keep a change history of a workflow and compare two versions?

A: If you need to show the differences between two revisions of the same document, you could implement a change log and show the differences as a list of log entries recorded between some dates.

Enable the Diagram.UndoManager property and the UndoManager.UndoEnabled property and handle the Diagram.ActionRecorded event. In the event handler, create a log entry based on the command being recorded. Add a time-stamp to each record so you can compare the document revision dates with the log records times.

You can make the collection of log entries serializable and store it in the Diagram.Tag.

Another possibility is to assign unique IDs to each DiagramItem.Tag. Then you can compare the document revisions by checking whether items with some ID exist in both versions, so you know if a DiagramItem has been added or removed. If items with some ID exist in both documents, you can further compare their property values, for example, Text, Bounds, and so on.

Q: How to associate custom data with the items in the diagram (nodes and links)?

A: You can create your own class that derives from ShapeNode and add an ID property to it. To let users create items of your type, set the view.Behavior to Custom and the view.CustomNodeType to typeof(your_node_class). For an example showing how to use custom types with FlowChart.NET, check the IconNodes sample project.

A more simple solution is to assign the id to the item's Tag property. An additional "bonus" is that you will be able to use the FindNode method of Diagram to search for nodes by their tag/ID.

Q: Where can I get a library of hydraulic, pneumatic and electrical symbols for FlowChart.NET?

A: At this time we do not provide such symbols. Instead you could create your own Shape definitions whose Image property is set to a bitmap or metafile representing the respective symbol. For example, check the symbol library sample "LogicGates", installed in the Flowchart.NET Samples folder.