Monday, January 26, 2015

Exporting MS Project Data to GEXF Network Graph Format

Background

MS Project is a commonly used tool to do project planning and tracking. It provides a large set of tools and last but not least visualizes project tasks in the form of Gantt charts or project netowrk diagrams.
However, at least me I find the Gantt chart visualization of a project plan with more than 100 lines quite inconfortable, one workaround is to print the plan out as large posters. But even then I find it very difficult to find tasks which are not properly linked or even not linked to other tasks (I call them "tramps") at all.
From my software experiences I know network graphs a bit and I learned to love the network graph visualizer "Gephi" and the network graph exchange format GEXF. So my idea was to create an export VBA script to export MS Project data from our project plans to GEXF, visualze these with Gephi and see what one can learn from this.

Results

Here the project network colored by inbound edges:

 
Same graph colored by tasks status:
green = Done
red = delayed
yellow =  in the future





The Script

The following vba script can be used in MS Project 2010 directly to export MSP project data to GEXF. Please adjust the output path and file name to your needs.
The script creates the following GEXF information:
  • The tasks/lines in the project plan define the nodes of the network graph
  • Edges are defined by the task dependencies
  • I added the task status as attribute of a node
  • The outline tasks are interpreted as hierarchy nodes
The source code can be found on github, visit the following link:
https://github.com/wolfig/MSP_Export_GEXF/blob/master/exportGEXF.vba

I hope you ca use this script for your own purposes - keep on geekin'