This documentation is archived and is not being maintained.

Automating Visio to Solve Business Problems: Visio as a Solutions Platform

This content is no longer actively maintained. It is provided as is, for anyone who may still be using these technologies, with no warranties or claims of accuracy with regard to the most recent product version or service release.

Visimation, Inc.
Microsoft Certified Partner

October 2001

Applies to:
   Microsoft Visio 2002
   Microsoft Visio 2000

Summary: This article describes how you can create customized Visio solutions to meet specific business needs for the telecommunications, government, financial, manufacturing, insurance, healthcare, and automotive industries. (20 printed pages)


Customizing Visio
Modifying Visio Native Functionality
   ShapeSheets and Custom Properties
   Templates, Stencils and Masters
   Tailoring the User Interface: Menus, Toolbars, and Accelerators
Business Scenarios
Recommended Reading


A Microsoft® Visio® solution combines shapes and Automation to solve various business and technical problems, as well as improve productivity. The off-the-shelf Visio product contains numerous drawing templates that meet the basic needs of most users for creating organizational charts, space plans, flow charts, network diagrams, and more.

One of the main strengths of Visio products is that the platform enables developers to create customized Visio environments. This article demonstrates the flexibility of Visio products as a development platform by describing the following customized business solutions:








You can transform Visio from a drawing program into powerful integrated business solutions by modifying functionality native to Visio and by developing applications using Automation. These custom Visio solutions will run on any Visio 2002 or Visio 2000 edition. However, an application developed for Visio 2000 may need modifications when running with Visio 2002.

Using the native functionality in Visio as a launch pad for a custom solution, you can develop your application in less time—and with potentially more feature—than if you started from scratch with a traditional programming language. The Visio environment includes the intelligent and powerful functionality of SmartShapes® symbols, the ShapeSheet®, and templates. You can customize menu commands and toolbars, publish data to the Web, print properly formatted drawings, and integrate your solution with other applications. You can integrate customized Visio solutions with the following applications: Microsoft® Word, Microsoft® Excel, and ODBC (Open Database Connectivity) or LDAP (Lightweight Directory Access Protocol) databases like Microsoft® Access, Microsoft® SQL Server™, Oracle's database server, and Microsoft Active Directory™. You can develop applications using any programming language that supports Automation such as Microsoft Visual Basic® or C/C++. Visio solutions can also integrate with custom programs such as engineering analysis tools and rules-based product configuration applications.

Customizing Visio

For the purpose of this article, the term Automation refers to the extension of Visio functionality through custom development and integration. Through Automation, you can add new forms to Visio, connect externally to a database, create SmartShapes symbols enforcing rules and bounds on drawings, and integrate with other applications. You can use the Visio graphics engine, the core of Visio, for your own program's graphics, custom user interfaces, data management, and file management environments. The graphics engine also exposes Visio objects (for example, shapes, masters, menus, and toolbars), properties, methods, and events. Figure 1 shows the Visio development environment.

 Click here for larger image

Figure 1. A diagram of the Visio platform and its components (click for larger image.)

As a developer, you need to determine how much native Visio functionality can be used as the basis for your custom solution and how much new functionality you must develop. Typically, you'll get superior results in less time by leveraging the built-in functionality in Visio. If your solution is complex, however, you should consider developing a custom interface using Visual Basic (.DLL), VBA, or C++ (.VSL), to better control the look, feel, and functionality of the application and shapes.

Visio SmartShape symbols and ShapeSheet technology are great examples of built-in functionality that enables you to produce more effective applications, while reducing the amount of time and effort you spend writing code. For example, the developers of the Government Incident Command and Resource Management (ICRM) scenario described in this article specifically cite the Visio ShapeSheet paradigm as a major success factor that enabled them to create a complex application at a very low entry price point (acquisition, delivery, and development). In addition, ICRM is easy to deploy, in part because Visio is already widely used within governmental agencies, but also because Visio and ICRM are easy for an end user to learn.

The Title Block shapes and Custom Properties interface demonstrate how Visio provides a great base solution that can be extended to meet special requirements. For example, the standard Space Planning Template provides a title block shape, and you may edit the text in the title block by selecting the shape's custom properties and entering new text in the form. However, if you need a different layout or data set for your project's title block, you must create a custom title block shape and associated properties form. The base functionality in Visio products makes this task much easier than it would be to develop the feature from scratch.

Figure 2 shows samples of custom forms, title blocks, and navigator windows that you may create to tailor a solution.

 Click here for larger image

Figure 2. Creating custom forms, title blocks, and navigator windows (click for larger image.)

You create new Visio functionality by writing macros with VBA and add-ons with Visual Basic, C++, or other Microsoft development tools. Macros and add-ons may control a shape or an application's behavior by automating specific functionality.

For example, an add-on can:

  • Perform repetitive tasks.
  • Help with creating or analyzing a drawing.
  • Transfer data between a drawing and an external source.

Add-ons and macros can also enforce rules on a drawing page, displaying messages that help the user to correctly configure objects, assemblies, and processes. Add-ons are used to satisfy the furniture, equipment, and modeling requirements described within the National Bank Branch Modeling Tool scenario.

You can create a macro as a public procedure in a VBA module and the macro will run in the same memory space (process) as Visio; the code is actually contained within the drawing file. Add-ons can be created as COM Executables (.EXE) that are launched within Visio or as a stand-alone application, or you can develop an add-on using C++, called a .VSL file. Many of the automated components in Visio products are written in C++ and perform faster because the component runs in the Visio process.

Modifying Visio Native Functionality

This section briefly describes some of the functionality native to Visio, such as SmartShapes symbols, the ShapeSheet window, templates, custom properties, and database connectivity that you modify or build on to create your own customized solutions. There are many other Visio features in addition to those described within this article that you can use to enhance your application. For more information on Visio development capabilities, see the Recommended Reading section.


Shapes are drawing components used to construct or assemble a diagram. The end user simply drags the shape to a drawing page. A shape can represent a real-world object, or an easily recognized symbol, so that a user quickly understands what object to select and how an object should be used. Visio SmartShapes symbols, generally referred to as shapes, may contain programmed intelligence that enables them to behave on a drawing page as you expect the real-world object to behave. For example, a shape representing a computer system or a piece of office furniture can be built to represent standard industry dimensions, and they can be locked against resizing so that a user cannot inadvertently change the shape's dimensions.

Use the following methods to customize a shape and its behavior, defining how the shape appears on the screen, how the shape responds when you select it, and how its text behaves:

  • Define Custom Properties, available from the shape's shortcut menu.
  • Modify formulas in a shape's ShapeSheet spreadsheet.
  • Add a command to a shape's or drawing page's shortcut menu.
  • Associate an event with a shape. For example, you can define an action to occur when the user double-clicks the shape.
  • Write a program that uses Automation to control your shapes. For example, create a Visio drawing automatically or populate a form that is displayed to the user from data in an ODBC compliant database.

Consider the following tips when you create customized SmartShapes symbols:

  • Depending on the complexity of your application, shape design and creation can be a significant part of your development effort. You can build a more flexible solution that requires less coding and maintenance in the long run if you carefully design your shapes. Put as much functionality as possible into your shapes but do not make them unnecessarily complex or layer them too deeply. Decide how the shape is to be used in the application and design as much intelligence into the shape as possible. However, very complex shapes can take longer to display when dragged onto the drawing page.
  • Avoid adding behaviors to a shape that are inconsistent with the shape's expected role because doing so may confuse your user. For example, in a manufacturing scenario, some equipment may only be installed in a vertical orientation, and enabling the user to rotate that shape may result in drawings that don't make sense. In some cases, a simpler shape is better, and may actually perform better in Visio than a more complicated shape.
  • Ensure that the shape is correctly sized and oriented with regard to other shapes on the drawing page. Make sure the shape connects correctly to other shapes and that you prevent shapes that have no relationship from being inadvertently connected by the user. Consider whether one shape can fit inside another shape on the drawing page, and if so, establish rules restricting the user from resizing the smaller shape.
  • Ask the user how the shape will be used in the application. Will the shape portray an asset (a patrol car, for example)? Do you want informational shapes, and if so, can the information be represented in a Text box instead? How many different ways will the shape be used within the product?
  • You can create new shapes in several ways. You can draw the new shape freehand using the Visio drawing tools, or you can import graphics from other programs, convert metafiles into shapes, or scan images to use as shapes. You can also use Shape Operations to create more advanced shapes not easily drawn with the arc and line drawing tools found on the toolbar in Visio products. Shape Operations lets you merge together multiple simple shapes, like squares and triangles, into a single more complex shape using commands like Combine, Intersect, Join, Trim and Subtract.

ShapeSheets and Custom Properties

Everything in Visio—every document, page, style, shape, group, master, and program object—has an associated ShapeSheet spreadsheet where information about the object is stored. The information in this spreadsheet defines the object's unique behavior, characteristics, and capabilities such as geometry, orientation, text, height, width, angle, color, and more. You can enter mathematical formulas into ShapeSheet cells to control the way an object behaves in certain situations. ShapeSheet cells contain formulas or values that are recalculated dynamically as the user manipulates the object. For example, when you draw a shape on a drawing page, the geometry of the shape is stored within the shape's ShapeSheet as a collection of horizontal and vertical locations (called vertices) connected by lines. If you move or resize the shape, the vertex information is updated in the ShapeSheet.

As a shape developer, you have precise control over the appearance and behavior of the shapes you create. You can change a shape's default behavior and enhance the behavior by editing the shape's ShapeSheet either manually from within the ShapeSheet window or programmatically from within your application. You can also develop forms that enable a user to manipulate ShapeSheet information through an interface that they can understand. The Custom Properties form is an example of a native Visio form that enables editing of the Custom Properties cells in the ShapeSheet, without the need to view the ShapeSheet itself.

Tip   To add the Show ShapeSheet command to an object's right-click shortcut menu, click Options on the Tools menu. In the Options dialog box, click the Advanced tab, and then select Run in Developer Mode. Click OK.

All ShapeSheet cells have a unique name that you can reference within other ShapeSheet cells or your Automation code. This eliminates the need to programmatically navigate through an entire ShapeSheet section searching for a particular reference. You can also create user-defined cells within a ShapeSheet, creating a working area where you can enter formulas for reference by other cells or add-ons.

You may add custom properties to an individual shape, a master, or a page. The custom property data is stored in the object's ShapeSheet and you can add or edit these Custom Properties with the Define Custom Properties dialog box or programmatically through the ShapeSheet. Custom property data is used to supplement the graphical data in your drawing, to generate reports, and to associate data with an external data source, like a database or .XML file.

Templates, Stencils, and Masters

In many (but not all) custom Visio applications, you typically begin a drawing by opening a template. Templates provide a designated set of predefined Visio settings and stencils, and may also define a custom user interface with modified menus and toolbars. Templates are particularly effective when you are creating multiple drawing files that need a consistent look, to streamline a drawing process, or when creating a custom solution that will be distributed to users. Templates contain pointers to associated stencils that hold your master shapes. When a user opens a template, the stencils linked to that template also open.

Stencils are predefined containers holding master shapes. A master shape, commonly called a master, is a shape that you use repeatedly to create or modify drawings by dragging the master from the stencil onto a drawing page. The shape on the drawing page is an instance of the master. The advantage of masters is that they enable complex, predefined shapes to be used repeatedly without redrawing the shape each time it is needed. You can create customized stencils and add custom masters to the stencil by dragging the shape on to an open stencil. For example, you can manipulate the stencils and masters through your application programming, dragging shapes from a stencil to a drawing page, or retrieving the names of all docked stencils opened within a template.

Tailoring the User Interface: Menus, Toolbars, and Accelerators

You can tailor the Visio user interface by adding menu items and toolbar buttons that are needed for a special application, or by removing existing items and buttons that you don't want to be available while your application is running. To add or remove existing menu items and toolbar buttons, use the Toolbars Customize command available from the View menu. Or, add custom menu items, tools and accelerators (shortcut keys) to your solution by writing code that accesses the UIObject objects or by creating a custom user-interface file, a .VSU file, which contains the menus and tools you need for your solution. You can also create shortcut menus that contain context-sensitive commands, displayed when a user right-clicks a shape.

Database Connectivity

Once you have defined custom properties for a shape, you can link the data associated with a shape to a database by establishing connections between shapes and database records. The Database Wizard can automatically link the shapes and the data listed in the User-defined Cells and Custom Properties sections of a ShapeSheet to databases created using ODBC-compliant applications like Microsoft Access, Microsoft SQL Server, and Oracle's database server. The Database Wizard stores the primary key information for the database fields that are linked to ShapeSheet cells.

Your application can control when a database is updated or synchronized with a drawing, and you can extract data from the database as the data is needed. For example, you would do this to generate a report or to create drawings that are graphical representations of database tables.

Business Scenarios

The business scenarios described in this section show how Microsoft Visio enables you to link graphics with data to model real-world conditions to solve diverse business and technical problems. Although this article covers only a few industry examples, Visio is a great platform for other custom applications too, such as facilities management, sales automation, knowledge-based systems, architecture/engineering/construction (AEC), and computer-aided design (CAD).

Telecommunications—Fiber Optic Record Management System

The problem

A major telecommunications service provider needed a more effective way to ensure that their technicians have up-to-the minute data on their fiber-optic cable line and customer services infrastructure. They first approached this problem by creating and manually maintaining a database of information on customers, cable locations, capacity, circuits, and other cable data. Engineers manually created diagrams to document each cable's start and end point between Central Office (CO) locations. The drawings also contained other manually added information such as the total and available capacity, and the number of circuits and customers serviced per cable line.

These methods were very labor- and time-intensive and prone to errors, especially because information is quickly out of date. Perhaps worse, the carrier can lose money and customers if a technician inadvertently uses an out-of-date drawing when making customer and cable provisioning decisions.

The solution

The solution was to create two custom applications. First, a customer service order application was created, using a traditional programming language that enables a user to enter customer service data directly into a database when a service rep takes a customer's order. Next, Visimation, Inc. (a Microsoft Visio Premier Partner), created a Visio-based application that interfaces with the same database and automatically produces accurate drawings of fiber-optic cable and customer utilization data.

Perhaps the biggest benefit of this solution is that it provides meaningful drawings in minutes from up-to-date and reliable information. The drawings show the latitude and longitude coordinates for the COs, with lines depicting the fiber-optic cables connecting each CO. Text positioned next to a cable line displays additional data about the fiber optic cable (as shown in Figure 3). The user can customize the shapes on the drawing page—for example, the shapes that represent the COs (boxes or circles), and can produce reports of specific drawing information. For example, the service rep can create a report of the number of cables assigned per CO-based on geographic locations (region, state, and so on).

 Click here for larger image

Figure 3. Connections between fiber-optic lines and Central Offices (click for larger image.)

Visimation used the built-in capabilities offered by Visio, such as SmartShapes symbols and ShapeSheets, to significantly shorten the project's development time. The Visio application required one dedicated developer for approximately one staff month of time. In comparison, Visimation estimates that developing this application using traditional programming tools would have required four to five times the effort and resource.

A developer could further extend this application by enhancing the Visio interface to enable a user to edit the fiber-optic cable data directly on the drawing page. For example, the user could disconnect a cable from one CO and reconnect it to another CO on the drawing page by simply moving the line representing the cable between the COs. This enhancement could be developed in approximately two months time with one experienced Visio developer.

Telecommunications—Network Outage and Resolution Tool

The problem

In the globally competitive world of financial trading, a leading worldwide investment-banking firm needed to provide financial services to its customers around the clock. To guarantee this level of service to its customers, the firm's IT Network Operations Center (NOC) must be able to guarantee that their systems and network are also available 7 days a week, 24 hours a day. This means that the time IT needs to identify and resolve network outages must be minimized.

The solution—phase 1

The IT team chose Visio to aid in network outage resolution because Visio is already deployed in the firm for network documentation. Visio is the de facto standard for network documentation in many industries because of its ease of use and flexibility.

The IT team created Visio network drawings of their existing and planned network topology. They added free-form text boxes on the network diagrams to hold device information like the Internet Protocol (IP) address and the physical location of the device. When they received a device alert from their networking monitoring software, IT would search for Visio drawings containing the IP address indicated as the troubled device. By reviewing the drawings, they could determine what routers or switches were affected by the problem.

While the Visio drawings are valuable for this purpose, the IT team was not educated on the best way to structure the data so it could be quickly searched and the data retrieved. Instead of entering equipment data as properties, they simply added the data into free-form text blocks that are not linked to the equipment shapes. As the number of drawings grew, it became more difficult to locate the files they needed to troubleshoot a problem.

The solution—phase 2

The IT team engaged Visimation to create a tool that would enable the NOC to find and retrieve the needed Visio files within seconds. Because there were already 5,000 drawings in use, re-creating the drawings to properly structure the data was not practical. Visimation solved the problem with an application that cataloged the text on their Visio network drawings. The cataloging system scanned each drawing for freeform text, and created an HTML (Hypertext Markup Language) file containing any text found on a drawing plus a link to that drawing. A standard HTML search engine is integrated with the solution. The user locates the network drawings, including the troubled device, by entering device attributes like IP address or location into the search engine's Keyword field. The search produces a list of HTML documents containing data that match the search criteria entered by the user. When the user clicks an item, Visio launches and opens the associated network drawing for display.

The solution is enhanced with the Microsoft Visio Network Equipment (VNE) shapes and additional intelligent SmartShapes symbols. VNE shapes are designed to model specific manufacturer property data associated with each device. They can store information about network device model numbers, manufacturer information, and device descriptions. Customized SmartShapes symbols can hold the additional network information that the IT NOC team is currently entering as freeform text and, when devices are added to a drawing, the associated text is entered into a database and linked to the device shape.

Enhancements under development will enable the user to enter additional information into a form linked to a database to simplify the creation and retrieval of data for network design, implementation, and troubleshooting.

The IT NOC team could also use the AutoDiscovery and Layout (AD&L) solution in Visio Enterprise 2000 or Visio Enterprise Network Tools 2002 to collect network SNMP (Simple Network Management Protocol) device information and to produce detailed diagrams of network topology.

By cataloging the text on their network diagrams and using an HTML search engine to locate desired network diagrams, the IT NOC team can quickly and easily troubleshoot network problems, helping them to attain their 7x24 availability goal.

Government—Incident Command and Resource Management (ICRM)

The problem

Any large scale local, state, or national incident can involve the participation of multiple governmental agencies, from local police and fire departments to national security agencies. The events can be natural disasters (tornados, hurricanes, floods) or tragedies such as the bombing of the Oklahoma City Federal Building or the World Trade Center Building. Coordinating responses and resources between multiple government agencies is a very complicated process. Typically, communication and strategic planning on incidents is accomplished by bringing various groups together in the same room. Here, they "whiteboard" the processes, the location of support teams and other incident information, and share ideas on how to manage the incident. Information is manually produced and not easily shared between multiple players involved in incident management roles.

The solution

To solve this problem, ScenPro, Inc., a Texas-based small business that specializes in informatics application development, created a Visio and Visual Basic application called ViewPort. ViewPort is an interactive tool developed to support Incident Commanders, Planners, and Responders with the management, visualization, and documentation of special events and incident response. The tool was developed under funding from the Defense Advanced Research Project Agency (DARPA) and augments the manual communication and strategic practices used by the responding agencies. ViewPort translates what might have been drawn on a whiteboard into an electronic and graphical medium using Visio. It creates a picture of the incident area along with the resources deployed, using SmartShapes symbols to depict incident management elements.

Here's an example of how ViewPort is used: A squad car and a fire truck have a ViewPort client installed in the vehicles, along with related area maps. As an incident unfolds, the on-scene supervisors can communicate the related responses by dragging and dropping shapes to a ViewPort area map that is transmitted to a back-end database server (installed locally or anywhere in the nation). Communication between the clients and the server is via HTTP over dial-up modems or a wireless connection. As the ViewPort clients located in the vehicles are transmitting information (incident responses) from the field to the central database, an Incident Commander located in City Hall or an Emergency Operations Center (EOC) is viewing the updated information from the same database. The commander can better manage the operation and the deployed resources because ViewPort provides a full view of the incident (see Figure 4). In addition, the commander can easily share this view with other agencies as needed. The system can report on incident related traffic jams, and hotspots and curfew zones for a riot, and ViewPort can generate information for press releases. ViewPort can also publish database information to a Web page in predefined formats.

 Click here for larger image

Figure 4. Police, Security, and Medical team locations at an event (click for larger image.)

Because ViewPort is built using Visio and Visual Basic, development time was significantly shorter than if a traditional programming language had been used. At its peak, the ViewPort application required three full-time developers, compared to the 15 to 20 developers ScenPro estimates it would have required using traditional programming methods. In addition, a specific instance of a ViewPort prototype can be developed in one to two weeks, ensuring that customer requirements are confirmed early in the development cycle.

The ScenPro developers reduced their shape development time by creating many similarly designed base shapes. Then they modified the base shapes by creating new instances and gave each new shape a unique graphic layer. For example, they initially created a master shape representing a fire truck shape, and created instances from this master to represent the various types of fire trucks, such as a ladder truck or an engine truck.

ScenPro cited the powerful Visio ShapeSheet paradigm as being a critical feature that enabled them to develop ViewPort with less resource, yet with so much functionality. The only alternative that ScenPro considered to create ViewPort is a formal Geographic Information Systems (GIS). GIS products are typically more expensive than Visio, and more complex to use. Building ViewPort on a GIS platform would have increased the initial development and long-term maintenance costs associated with supporting ViewPort.

A sister application to ViewPort called MedView, also based on Visio and Visual Basic, was used during the 1999 Seattle World Trade Organization (WTO) incident. MedView created a visual model of data logged at local hospitals, enabling health department officials to monitor for possible indications of a bio-attack. For example, MedView monitored and graphically depicted when the statistical rate of a particular syndrome exceeded a defined threshold. In addition to the Seattle WTO, MedView, ViewPort, and Visio were used at the Republican and Democratic National Conventions, as well as the 2001 Presidential Inauguration.

Financial—a National Bank Branch Modeling Tool

The problem

A national bank that was rapidly expanding into new territories needed a more efficient way to design new bank branch offices in different geographic locations. The bank needed to ensure that each branch's design was consistent with the company's standards, while letting the branch tailor the office layout and services to meet the special needs of their customers. Finally, the bank needed to minimize the costs associated with building and remodeling new branch offices.

The solution

Visimation proposed a solution with a customized Visio application, called the Model Bank, that combined a custom Visio user interface and integration with Microsoft Access. The solution automated the process of configuring a branch on a drawing page, including placement of furniture, number of ATMs, vault and safety box locations, and any other device, service, or item commonly located within a bank branch.

The Visio user interface displays several options to the user: Check in or Check out a diagram, Uncheck out a diagram, Create a title with the Title Block Editor, and Save the data to the database. Three Model Bank drawing templates were designed with customized stencils holding approximately 20 Visio SmartShapes symbols representing generic bank devices and other objects. When the user opens a template, they see a Title Block Editor, which is a simple form for the user to enter the diagram's Title information. The title information is used for cataloging and for searching within the Access database, where all the bank branch layout information is stored.

Each design template provides a base branch design that the user modifies by moving shapes or adding shapes from the stencil to the drawing page. This enables the user to tailor the floor plan and device layouts. For example, a branch designer can choose the number of ATMs inside and external to the branch, the interior arrangement of furniture, and vault and safety box locations. Each SmartShape symbol is linked to its relevant physical information, such as size, scale, dependencies among items, and geometric information, preventing the user from inadvertently resizing shapes incorrectly, or from placing two incompatible items together on the drawing page.

Because every branch's design data is stored in a central database, the information is available to the corporate facilities planning office, enabling that office to more quickly assess future planning needs. Facilities can click on a bank branch and view the interior layout of the branch.

To enhance this application in the future, the Bank could integrate the application with a mapping engine product like Microsoft® MapPoint®, enabling them to diagram geographic and demographic data. For example, a map diagram could show the geographical proximity between branches or the locations of competitor banks. A bank planner with point and click access to the Visio layout drawings from MapPoint could more easily decide how to distribute bank resources among the number of branches serving a geographic area.

Manufacturing—Automated Parts Configuration for Sales Proposals

The problem

Anthro Corporation, a leading manufacturer of modular computer and office furniture, needed to simplify and refine the process it used to design cart and workstation configurations for their customers. Their existing process involved sales reps discussing basic and add-on furniture configurations with customers over the phone or in person. The sales rep then created a customer sales proposal, containing a sketch of the desired furniture configuration. This manual process frequently resulted in a cycle requiring multiple revisions and reviews of the furniture sketch by the customer. In addition, because the sketches were not accurate, it was easy for the sales rep to inadvertently miss adding a necessary part to the sales proposal. Anthro Corp. turned to Visio for a solution.

The solution

The solution was to automate the drawing of the furniture design. Visimation added two of the furniture product lines to a database and developed a Visio application that included a custom template containing a user interface, customized Visio stencils, and SmartShapes symbols representing the modular furniture and associated parts. As shapes are placed on the drawing page, special rules are applied enforcing part sizes, scales, and part dependencies—for example, how the part shapes fit together. The user interface lets the sales rep select the add-ons requested by the customer. Figure 5 shows a form enabling the sales rep to create a customized cart, selecting the types of casters, the width and height of the cart, and the type and color of the cart's surface.

 Click here for larger image

Figure 5. Automated parts configuration for sales proposals (click for larger image.)

Once the furniture design is completed, a properly formatted final copy may be printed for inclusion in the sales proposal showing the furniture from: the top, front, and side. Visio prints a text summary of the furniture name and model number, including all base and add-on part numbers to accompany the diagram. The sales rep can fax the diagram to the customer in a matter of minutes, confirming the configuration and completing the sale, with less effort and time than was required with the previous process.

The ShapeSheet functionality in Visio enabled development of furniture shapes that enforce proper configuration details, such as including all necessary parts within the proposal and ensuring that sizes and shapes are accurate. The benefits Anthro received by creating a customized Visio solution included reduction of their sales and proposal development costs, more accurate proposals, and perhaps most importantly, better and faster service for their customers.

Manufacturing—Automated Design of Mechanized Control Panels

The problem

A global leader in the controls systems industry builds factory automation products and control panels for home appliances, HVAC systems, and commercial applications. They sell these controls to the producers of consumer and commercial equipment. One of the systems they build includes the dials, LEDs, and buttons that are used in the production of consumer and commercial products—for example, your kitchen oven's control panel. Although control panels look simple, they are complex products, and each producer has a different design. It is very difficult to describe a control panel well enough to produce an accurate prototype, and frequently the design process required several prototype iterations of customer review and revision before a panel was correctly designed.

The manufacturer needed to shorten their design and development process timeline from 18 to 6 months to maintain their competitive advantage within the industry without compromising the quality of output for which they are known. They also wanted to control costs by designing as much as possible with virtual models rather than physical ones.

The solution

Visimation created a control panel visual application using Visio and Visual Basic that models exactly how a completed control panel will look and operate when it is manufactured (see Figure 6). The application enables the designer and customer to change the appearance of the prototype in real time.


Figure 6. Automated visual modeling tool for control panels

The first step was to capture the product configuration knowledge in a database. Next, Visimation used Visual Basic to create a custom user interface with a Design Editor that lets the user interactively design and program the control panels. The tool includes stencils containing customized control panel shapes for the LEDs, dials, sliders, buttons, and other controls using VisioSmartShape symbols. Visio menus and toolbars were customized to accommodate application specific tasks. The user interface enables the designer to add standard objects to the drawing page to quickly lay out a panel design. The panel can be modified by varying the physical and logical characteristics of the control —for example, changing the control's shape, color, and displayed text. This diagram can be reviewed and modified in real time, giving the customer an immediate visual representation of their panel.

The application does more than show how the panel will look; it can also demonstrate how each shape on the panel will function. The Design Editor provides the user with a dialog box of selectable options that when selected, generate the code required to cause a particular behavior to occur. As a user manipulates or selects a shape on the page, the shape acts like a real control, executing the expected behavior when the real dial is used. For example, the application can simulate the response when the household chef sets the temperature and timer on an oven for baking the evening's dinner.

Figure 7 shows the architecture of the Visio and Visual Basic control panel application. A multi-threaded COM server is at the center of the solution, communicating between Visio, the interfaces to the attached hardware devices, and a programmable component that simulates control functionality. With this configuration, turning dials and clicking buttons in the Visio model (running on a personal computer) will operate the connected appliance to simulate the real control panel.


Figure 7. Architecture of the Control Panel Visual Modeling application

The manufacturing company shortened the development cycle of control panels from concept to production by approximately 50 percent, largely by reducing the need for physical prototypes.

Insurance Industry—Visual Modeling for Insurance Fraud Analysis

The problem

Insurance claim fraud is widespread and costs taxpayers and our healthcare system potentially billions of dollars per year. Expediting the research necessary to uncover insurance fraud can save insurance companies and their customers a significant amount of money.

Typically, insurance companies and law enforcement agencies rigorously maintain a database of information collected from clients filing insurance claims, some representing potentially fraudulent incidents. The data is manually entered and includes information such as an individual's name, social security number, and birth date. Descriptions of the properties involved in the incident are also collected—for instance, real estate descriptions, bank accounts, vehicle information, and more. Researchers sift through the database information when fraud is suspected. The analysis process relies upon a researcher's ability to uncover commonalities between multiple concurrent or past claim cases, and building the supporting facts necessary to prove that fraud is taking place. It is very difficult, however, to find relationships from just a collection of printed information. A visual representation highlighting possible relationships or similarities would help to identify potential fraud.

The solution

The solution involved integrating the insurance claim database with a Visio customized user interface. The researcher indicates through the interface the cases that are under examination for possible fraud. The Visio engine analyzes the case information, and draws a diagram depicting the details in the cases being analyzed, emphasizing suspicious relationships. For example, the diagram would highlight the people shapes, if the same person or related people filed the claim incidents. The Visio application contains a stencil of customized shapes for each claim item—for example, a doctor, a car, or a person shape. By varying the thickness or types of lines drawn between shapes, the strength of a potential relationship between items is illustrated. No line is drawn if a relationship does not appear to exist. Text next to a line lists common or similar information.

Here's an example of how the Fraud Analysis Visual Modeling tool is used: a researcher enters case numbers for multiple accidents involving pedestrians that were hit by an automobile. The application analyzes all the case data, and if similarities are found between the cases, it automatically generates a diagram from the database information showing possible relationships between the accidents. For example, the drawing will contain Person and Car symbols representing the drivers and the cars that hit a pedestrian, as well as symbols representing the pedestrians, the hospitals, and doctors that treated the pedestrians.

The Fraud Analysis application finds the following similarities after analyzing the data: a pedestrian's and driver's social security numbers are within 10 digits of one another, and the same doctor's name appears on several of the driver/pedestrian accidents. The drawing shows a solid, thick line between the driver and pedestrian symbols, with the SSN noted next to the line. The doctor's shape is colored yellow denoting that the doctor is involved in multiple insurance claims.

A similar application could be developed to automate the diagramming of crime and accident scene reports for law enforcement officials.

Healthcare—Automated Design of Stacked Surgical Trays

The problem

A national supplier of custom healthcare surgical trays wanted to automate the design of multi-stacked surgical trays, enabling hospitals and physicians to order customized trays used in medical procedures. Automating the design of the trays could reduce the assembly process and associated storage costs, because only those parts in high demand need to be held in inventory at the assembly site.

The solution

The solution Visimation proposed to the healthcare manufacturer involved creating a custom Visio interface enabling a user to enter in a surgical procedure name and any special tools or additional requirements needed for a surgery. Custom stencils with SmartShapes would be created representing the trays, utensils, instruments, gauze, needles, drugs, cloths, and other items required for each phase of surgery. A medical database, integrated with Visio, would contain data on the tools and supplies needed for each surgical procedure, enabling the Visio application to produce a diagram depicting the medical items to be placed on each layer of the tray stack. For example, a specific surgical procedure may require a surgical tray with three layers, each layer containing the tools and items needed during a particular phase of the operation. The completed Visio diagrams of the stacked trays are then sent to production, where the trays are produced according to the drawings. The fully equipped and stacked trays are shrink-wrapped and shipped to the healthcare facility that ordered the trays.

Automotive—Automated Supply Chain Mapping

The problem

An international producer of cars, trucks, and buses wanted to improve their supply chain process by documenting how raw materials, parts, assemblies, and sub-assemblies travel to their manufacturing facilities. They also wanted to identify ways to improve their supply chain process, and to effectively communicate the processes and possible methods of improvements to both internal groups and external vendors supplying their materials.

The solution

The manufacturer chose Visio as the platform for developing a custom supply chain application. A set of Visio templates, stencils and custom SmartShapes symbols specific to supply chain management were developed enabling an electronic model of a process to be created (see Figure 8).

 Click here for larger image

Figure 8. Supply Chain drawing with custom stencil and shape properties displayed (Click for larger image.)

The interface was developed with Visual Basic, including tailored context menus, forms, toolbars, and accelerator (shortcut) keys. The menu commands include the ability to undo custom actions, a document management system (DMS) where documents can be checked in or checked out, a tool to verify compliance with drawing standards, path highlighting, and more. The shapes are programmed to streamline the process of creating supply chain diagrams and to store data in a Microsoft Access database.

The custom templates and stencils standardize the appearance of the supply chain drawings, helping to minimize the major variations of style that often result when multiple people contribute diagrams. Custom shapes, with customizable features, were created for events such as Inspection Measurement and Packaging. Shape behaviors control how the shapes interact. For example, shape behavior can govern how multiple shapes are connected or attached, whether a shape's size can be modified, and the action that occurs when a user deletes a shape that has already been connected to other shapes on the drawing page.

Figure 9 shows how users can create Group Associations between shapes to represent Opportunities, Bottlenecks, Supply Chain Risks, and Lead-times.

 Click here for larger image

Figure 9. Creating a Group Association Shape for selected process items (click for larger image.)


Developers can create powerful integrated business solutions by modifying native Visio functionality and by developing applications using Microsoft ActiveX® controls. Through Automation you can add new forms to Visio, connect externally to an ODBC or LDAP database, create SmartShape symbols enforcing rules and bounds on drawings, and integrate with other applications like Microsoft Word, Microsoft Excel, and more. You can develop applications using programming languages that support Automation such as Microsoft Visual Basic and Microsoft Visual C++.

As demonstrated by the broad array of business scenarios described within this article, developers can transform Visio from a robust drawing program into a tool that solves real-world business problems, leading to tangible benefits for companies. Examples of these benefits include reducing the time for network troubleshooting, improving the accuracy and timeliness of sales proposal generation, and streamlining the design and development of automated manufacturing controls. The Visio development platform enables you to solve almost any business or technical problem, as well as improve productivity, in less time and for a lower entry and delivery price than is typically required using traditional programming languages.

Recommended Reading

Developing Microsoft Visio Solutions,
Microsoft Corporation, Microsoft Press, June 2001.

Visio 2002 Developer's Survival Guide,
Graham Wideman, Trafford Publishing, June 2001.

Visio Developer Center on MSDN Online

For more information about SmartShapes, see "Using SmartShapes technology to develop shapes"

For more information about ShapeSheet, see "The ShapeSheet Window"

About Visimation:
Visimation is a Microsoft Certified Partner who specializes in Microsoft Visio consulting, custom development, training, and services.