Previously as I was developing my VisioAutomation library I made two blog posts that showed how to automatically draw Visio diagrams using MSAGL.

  • The first post was about a program called “MakeFlowChart.exe”. It was a standalone tool that read an input XML file and then rendered that flowchart in Visio.
  • The second post was about a demo program called “DemoMSAGLToVisio” which showed how to programmatically do the same thing in code.

Since those two posts, a lot has changed in the codebase and I forgot to let people know what the current story is.

CREATING FLOWCHARTS FROM XML

This is now done via the VisioPS powershell module.

1. Launch Powershell 2.0

2. Type "Import-module .\VisioPS.dll"

3. Type "Draw-Flowchart c:\foo.xml" - to load and draw the flowchart described in foo.xml

The samples and the schema for the XML file is described in this Visio diagram can be found here:

https://skydrive.live.com/redir.aspx?cid=1ff099edb1c7ebfa&resid=1FF099EDB1C7EBFA!1421&parid=1FF099EDB1C7EBFA!1409

 

PROGRAMMATICALLY CREATING DIAGRAMS WITH MSAGL

The code is part of a library called “VisioAutomation.DOM”. Rather than pasting the code here, download the source code from http://visioautomation.codeplex.com and look for the “TestVisioAutomation” project. Inside it you’ll find a unit test called “AutoLayoutTests” – these unit tests show how to use objects in the “VisioAutomation.DOM.AutoLayout” namespace. These classes are the ones that interface to MSAGL to do the drawing.