Several people have posted in the newsgroups about Visio moving shapes around unexpectedly - particularly when documents are opened or saved. This random behavior can be infuriating to users. Perhaps more frustrating is that Visio may continue moving shapes around after the user has "fixed up" their diagram again. This post looks at automatic behaviors and tries to shine some light on the issues.
Perhaps the most common automatic activity in Visio is connector routing. Visio ensures that connectors stay glued to shapes when those shapes are moved around the page. Visio also finds the optimum route for connectors that will avoid other shapes along the path. Finally line jumps are added to connectors that cross over other connectors. Historically, crazy connector routing has been a frequent complaint, but routing logic has gotten significantly better over time. Recent versions of Visio do a pretty good job with routing. While users may object to the routes chosen, there are very few reports of routes randomly changing in the diagram.
If you are encountering routing issues in your diagram, you might find this earlier post helpful. You can also reduce the number of situations where connector routes are changed. Go to Format > Behavior and then the Connector tab and adjust the Reroute property. Reroute = Never means that Visio will maintain glue but never recompute the route to optimize it.
The second type of automatic behaviors involve Visio solutions. In this case we are referring to the Visio add-ons that provide extra capabilities for individual diagram types. For example, the Organization Chart solution is responsible for providing features such as dropping subordinates on top of managers, generating a diagram using the Organization Chart Wizard or synchronizing organizations across pages. You may not think of these capabilities as add-ons because Visio tries to make the functionality seem as integrated as possible with the core diagramming features.
Most frequently we hear about random shape movement with the Organizational Chart and Cross-functional diagram types. However, users have reported issues with a number of diagrams such as Gantt Charts and Timelines too. The root cause for random shape movement is that a diagram has solution managing the position of shapes, and something is triggering that solution to make it move shapes around the page. These solutions get in trouble when they fail to realize that a shape’s current position has been designated by the user and is no longer under the complete control of the solution.
Visio’s solutions that manage the position of shapes on the page can tolerate varying degrees of customization by the user. Sometimes it is okay for a shape to be in a different location than what the solution wants, and sometimes the solution is not capable of leaving a shape in a different location. Many problems arise when the user takes additional steps to prevent automatic behavior such as grouping shapes, replacing connectors with regular lines or disconnecting connectors. This increases the likelihood that the “proper shape arrangement” according to the solution is not at all what the user intends.
There are two basic approaches to correcting a diagram that is “misbehaving”. You can try to make the solution understand the diagram again. This typically involves removing non-standard shapes and using the ones provided in the template. It also means restoring connections between shapes using connectors and not lines. The other approach is to disable the “intelligent” behavior of the solution and work with the diagram using core Visio capabilities only. Depending on the drawing type and level of complexity in the diagram you may want the second option, although this is a more drastic measure.
For Organization Charts, the typical cleanup is to delete the connections between shapes and then drop each subordinate on top of their manager again. For Cross-functional Flowcharts, the typical cleanup is to drag each process shape outside the swimlanes and then drag them back in. Unfortunately, none of these remedies is guaranteed. There may be no way for a user to correct some situations.
To disable a solution, you need to disable the Persisted Events that get stored in the document and trigger the solution whenever the document is opened in Visio. Persisted Events can only be managed programmatically or through Visio’s XML file formats. The Persisted Events tool in the Visio SDK is a great way to modify Persisted Events. For those looking for something simpler, try pasting the VBA macros below into your document. Run DisablePersistedEvents to turn off solution behavior for the document. Run EnablePersistedEvents to turn solution behavior back on.
Public Sub DisablePersistedEvents()
Dim vsoEvent As Visio.Event
For Each vsoEvent In ThisDocument.EventList
If vsoEvent.Persistent = True Then
vsoEvent.Enabled = False
Public Sub EnablePersistedEvents()
vsoEvent.Enabled = True
Visio provides automatic behaviors to make diagrams much easier to create and manage. When the automatic behavior matches your expectations, Visio feels like a very powerful tool. When Visio seems to have a mind of its own, it becomes a frustrating application to work with. The Visio Product Team is definitely interested in your experiences good or bad with the automatic behaviors in the application. Your feedback helps us understand where we need to improve.
I strongly prefer to decide these things myself. I have been using Visio since it's very first version, and I know Vision very well. It is just frustrating when Vision suddenly decides to "destroy" my layout. Good thing, though, that this can be turned off. Default should be "No automatic behaviors".
I agree, Visio deciding to make its own layout decisions makes user experience frustrating to say the least!
I had an issue with shapes jumping around when resizing swimlanes in UML activity diagrams and just wanted to post that in Viso 2007 what worked for me was if you go under Format>Behavior>Placement, I changed the Placement Behavior to "Lay out and route around".
Correction I meant to say "Don't layout and route around."
... Microsoft has always thought they know better than you what you need. But that is a common behavior of all world dominance dreamers.
I know best whats best for me, pronto. Microsoft knows nothing. Just give me the options. The methode for turning of rerouting above only works for selected line, not all the others. Are there any global settings???
How do I easilly shut off the automatic behaviors? It is impossible to make a three sided anything without Visio thinking I want a square. I do not want a square. This is a time waisting format for my use.
I have NEVER been so frustrated while using a MicroSoft product in my entire life!!!! I have recreated these swimlanes 5 times, being extremely careful of anchoring my arrows, placing my shapes in the correct position to begin with so I didn't have to move anything and NO MATTER WHAT I DO - Those lines and shapes just rearrange themselves usually right as I'm just about finished. I don't think I'll EVERY be able to deliver these swimlanes!!!!PLEASE FIX THIS ASAP!!!!!!!!!!!
The routing controls - and the inability to turn off automated placement - is about as helpful as testicle cancer; I'm not a programmer and having been using Visio for almost 20 years, so this is *INFURIATING*!!
Please, give us a patch to turn this off!!
I couldn't agree more with the general spirit of the previously left comments. After so many years of experience in UX, the product choices should be clear as a spring water. Let the users turn the placement behaviour function permanently off.
Automatic things are useless if they cannot be turned off! Connectors rerouting is aweful! Please make it simple!
Glabal settings for setting routing and placment options are needed. This is driving me nuts. Why does Microsoft have to dumb down everything and make it virtually unusable?
I am writing this partially for my convenience (so i can find it later when i forget) and partially for other people infuriated by Visio auto-align problem.
Someone else posted this so I am just repeating: find the 'Page Setup' (can vary in location, but on my Visio 2010 it on the Design ribbon). Click to expand the Page Setup (that small thingy in the bottom right corner). The 'Page Setup' dialog should appear. Go to the 'Layout and Routing' tab, uncheck the 'Move shapes away on drop'.
I have avoided Visio like the plague since January 2012, but today I decided I would give it another chance. I spent 8 hours developing a great lookand and very informative cross functional flow chart that I was going to use to code a major new module with tonight. Once I had it basically done, I noticed a small typo and fixed it and saved the document. When I re-Opened the document a few minutes later - yes! Once again I've been SCREWED by Microsoft! Dang it! This drawing looks as if it has gone through a blender. Can you at least have the software ASK ME BEFORE IT SCREWS UP EIGHT HOURS OF WORK ?!?!?!?!?!?!?!?!?!?!?
As some have said make wrecking the data be OFF BY DEFAULT!!!!!!!!!
cross-functional diagram is a pain to move on a page ... it screws up the layout everytime it is moved.
Using Visio 2010. Its like wrestling with a bunch of Microsoft developer nerds who think they know best how to make my diagram. AND, do you idiots realise how ridiculous it is having hundreds of buttons and drop down lists spread all over the place so it is impossible to find anything. I hate you all.