Even though it was only recently acquired by Microsoft, Visio has for a long time been deeply integrated into Windows. Visual Basic for Applications is built in, and Visio exposes a complete object model so that other applications can control its features programmatically. Developers can use Visio as a front-end for custom applications. For example, an office designer might use it to plan where staff will sit, calculate the cost and initiate an order for furniture. A Visio shape is a sophisticated drawing object, with a huge range of formatting options and the ability to be merged and grouped.
Shapes also support data and events.
In Visio's office layout shapes, for instance, each item has custom properties to supply an inventory number and an owner. Events fire when shapes are added to a diagram, clicked or modified. Shapes can also be categorised into layers, so you can show or hide selected objects. Visio connectors are equally sophisticated. You can specify connection points and routing behaviour, so that connectors reposition themselves intelligently as a diagram grows.