tags:

views:

728

answers:

4

I have some sort of a table describing a graph of dependencies. Is there any easy way to convert it into a MS Visio diagram?

Like a .CSV format for Excel...

If it is not possible with MS Visio, then is there any software which draws a diagram from a list of graph dependencies?

Thank you.

+2  A: 

graphviz is pretty much geared for this sort of thing. I assume you're on Windows since you asked about Visio, so here are the Windows binaries for it.

John Feminella
+5  A: 

If your using a newer version of Visio (2003+) you should use the Reverse engineer tool for databases to start your diagram. It will suck all the db tables and relationships into shapes that you can then modify.

Here is a link that will walk you thru the feature: http://office.microsoft.com/en-us/visio/HA101154851033.aspx

Tj Kellie
A: 

Not sure if that helps, but ARIS Express (http://www.ariscommunity.com/aris-express) has a feature called smart design. You enter your data as a spreadsheet and it automatically generates the diagram. Works for process models, but also for data models or organisational charts.

ARIS Community
A: 

I wrote a powershell module that may be able to help you.

It works something like this:

PS> Import-Module VisioPS
PS> New-VisioApplication
PS> New-Drawing
PS> Draw-FlowChart "d:\\flowchart.xml"

Here is a sample of XML format

<autolayoutdrawing>
  <page>
    <renderoptions
      usedynamicconnectors="true"
      scalingfactor="20"
    />
    <shapes>
      <shape id="n1" label="FOO1" stencil="server_u.vss" master="Server" url="http://microsoft.com" />
      <shape id="n2" label="FOO2" stencil="server_u.vss" master="Email Server" url="http://contoso.com"/&gt;
      <shape id="n3" label="FOO3" stencil="server_u.vss" master="Proxy Server" url="\\isotope\public" />
      <shape id="n4" label="FOO4" stencil="server_u.vss" master="Web Server">
        <customprop name="prop1" value="value1"/>
        <customprop name="prop2" value="value2"/>

      </shape>
      <shape id="n5" label="FOO4" stencil="server_u.vss" master="Application Server" />
    </shapes>

    <connectors>
      <connector id="c1"  from="n1" to="n2" label="LABEL1" />
      <connector id="c2" from="n2" to="n3" label="LABEL2" color="#ff0000" weight="2" />
      <connector id="c3" from="n3" to="n4" label="LABEL1" color="#44ff00" />
      <connector id="c4" from="n4" to="n5" label="" color="#0000ff" weight="5"/>
      <connector id="c5" from="n4" to="n1" label="" />
      <connector id="c6" from="n4" to="n3" label="" weight="10"/>
    </connectors>

  </page>

</autolayoutdrawing>
  • The VisioPS module is part of my VisioAutomation library on CodePlex
  • This module only works with PowerShell 2.0
  • This module is experimental
  • VisioPS uses MSAGL to perform the layout for the nodes
  • You could easily take your table of dependencies and create the XML needed
  • If you look closer at the code in my library, you can also directly create the objects necessary to do the rendering without having to go through the XML at all.