This project is read-only.

About the project and one question

Jul 19, 2012 at 2:39 PM


Nice initiative to post little bit more info about dealing with VDX format, thank you :)

Currently I'm working on export/import from/to Visio using VDX format and I'm struggling around Containers, and shapes that have ability to behave as Containers(SwimLane, Application form dialog, etc). What my problem is, it seems that there is no info about if one shape is contained with another, I can't find that info in VDX file(for example, Rectanlge is dragged and dropped into SwimLane) and I need that info for my application.


Do you have some insights or info how to get that data from VDX?

Thank you


Jul 25, 2012 at 1:31 PM

I did a vba demo project for working with containers (vbaAppConnect) that is posted over on Chris' site. The issue you're facing is that there is a lot of code that MS uses to manipulate containers, and it is often tied to the template that the user is using. The API's are a big help, but unfortunately that doesn't work in the XML arena. The XML code is going to have to duplicate the process of determining what shapes are at a specific pinx/piny and their 'level' (the Z axis). Part of the analysis of course is going to have to include opening each of the shapes and examining the 'user' section for the flags that are appropriate for the containers/lists (User.msvStructureType, etc.).



Jul 25, 2012 at 2:54 PM

yes, unfortunately I see that is the case...and there are other problems too around which I'm, another question that I wanted to ask you, from your experience,  how much exactly is common import/export task(few shapes  contained with some container and connected by connectors) easier to do without using VDX file but using some kind of automation or library that can work with .VSD directly...

I suppose structure/model is not too much different, only I could get more info in some cases that could help me write better code for managing import or export process...?



Jul 25, 2012 at 4:47 PM

Let's start with the fact that Visio 2013 uses the Open Office package which is entirely XML, and it isn't the same schema as the predecessors. The only reason I can conceive of attempting to work with the raw XML is a desire to not use the Visio API which is available within Visual Studio and VBA. This effort would be on a system that does not have Visio installed (necessary for some of the existing libraries). These existing libraries significantly ease the burden of working with the files programmatically.

As part of the v2013 Beta I am going to release another package this week similar to the xmlVisio solution. It will have a similar 'explorer' as the xmlVisio solution and will also include a simple document creation set of tasks to show how the new files may be created totally from XML. That's not how I would start into a Visio project, I would use the native APIs.




Aug 1, 2012 at 7:51 PM

"I did a vba demo project for working with containers (vbaAppConnect) that is posted over on Chris' site."

Can you post a link to app?

Thank you