Having shapes that work intelligently is one of the most powerful aspects of Visio. A lot of the built in templates take full advantage of that and react to changes that users make to shape data or by dragging the control handles without requiring code. Most of the time this is exactly what people want to see (you can tell because you don’t even notice this happening). For example, in the Rack Diagram template, the shapes in the stencil snap in to the rack and show the correct “U” size as you resize them manually (similarly, if you type in a “U” size in Shape Data the shape will automatically resize.
This can sometimes be a source of problems, however, when users want to do something to the shape that the designer did not originally consider. In the case of the rack shapes, a customer recently posted to the newsgroups asking how to set up a rack server that was 1.5 U. When you use the shapes, they automatically round the entered value to whole numbers. There are other cases of behaviors where the user has to “fight” Visio to get the behavior or look that they want. The same thing can happen when you use shapes created by third parties.
If you come across this issue, here are a few tips for things to look at to help fix the issue:
Remember that sometimes shape designers have disallowed particular operations for a reason, particularly in more technical drawings. When you change shapes to allow certain operations, you might break the intended behavior, particularly if the solution includes a code component.
This also is something to think about when you are designing your own shapes if you expect that others will use them. Make sure that you are not overly rigid in locking down behaviors unless the template really requires it – your users will thank you for it.
Next post, I’ll give a specific example of how to override the behavior of a particular shape: the rack diagram shapes to allow them to accept non-whole “U” sizes.