{"id":1613,"date":"2018-08-24T07:46:50","date_gmt":"2018-08-24T14:46:50","guid":{"rendered":"https:\/\/developer.microsoft.com\/en-us\/office\/blogs\/?p=1613"},"modified":"2021-10-18T11:28:00","modified_gmt":"2021-10-18T18:28:00","slug":"intelligent-diagrams","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/intelligent-diagrams\/","title":{"rendered":"Intelligent Diagrams in Visio"},"content":{"rendered":"<p>This is the sixth topic in a series discussing the essential features that make up the Visio application.<\/p>\n<p><b><strong>Essential Feature:\u00a0 Extensibility <\/strong><\/b><\/p>\n<p>Part of the original vision for Visio was that you could use it to make almost any kind of drawing.\u00a0 Rather than focus on being just a flowcharting application or just a floor plans application, Visio chose to be a general purpose diagramming and drawing application.\u00a0 The features built into the product covered the basics of working with shapes on a page.<\/p>\n<p>However, the Visio architects determined that it would be quite useful for specific types of diagrams to have more specialized behavior.\u00a0 Developers can supplement the generic diagramming experience with functionality that is tailored to the drawing type, making Visio a great Organization Chart application and a great HVAC ductwork application and a great Database Modeling application.<\/p>\n<p>One of the interesting aspects of Visio&#8217;s extensibility story is that the shipping product itself contains over one hundred add-ons to the core drawing engine that utilize the automation interface.\u00a0 These add-ons range from simple utilities like the Area &amp; Perimeter add-on to the robust behaviors in Organization Charts or UML diagrams.\u00a0 Many of the features people use every day in Visio are not general features of Visio but are actually capabilities provided by add-ons.\u00a0 One of the great benefits of using the Visio API for our own features is that it is well-tested before any Visio product goes out the door.<\/p>\n<p>The real power in Visio extensibility story though is the breadth of automation options available to developers.\u00a0 Here are some of the more common ways to build on the Visio platform:<\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"173\"><b><strong>Extensibility Mechanism <\/strong><\/b><\/td>\n<td width=\"377\"><b><strong>Description <\/strong><\/b><\/td>\n<\/tr>\n<tr>\n<td width=\"173\">Visio Add-on<\/td>\n<td width=\"377\">Special C++ dynamic link library<\/td>\n<\/tr>\n<tr>\n<td width=\"173\">COM Add-in<\/td>\n<td width=\"377\">Standard extensibility interface across Microsoft Office.\u00a0 These may be developed in any programming language that supports COM Automation as well as any managed language.<\/td>\n<\/tr>\n<tr>\n<td width=\"173\">VBA<\/td>\n<td width=\"377\">Visual Basic for Applications built into the Visio product<\/td>\n<\/tr>\n<tr>\n<td width=\"173\">Visio Drawing Control<\/td>\n<td width=\"377\">ActiveX control for inserting a Visio surface into your application<\/td>\n<\/tr>\n<tr>\n<td width=\"173\">XML File Format<\/td>\n<td width=\"377\">Full fidelity file format for Visio documents in XML structure<\/td>\n<\/tr>\n<tr>\n<td width=\"173\">Custom Shapes and Stencils<\/td>\n<td width=\"377\">User-created content with powerful set of custom behaviors possible<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The Visio drawing platform gets richer with each release, and fortunately there is a great resource to cover it all.\u00a0 The <a href=\"http:\/\/msdn.microsoft.com\/office\/understanding\/visio\/tools\/default.aspx\">Visio SDK<\/a> was initially released with Visio 2002 and has been updated for Visio 2003 and the upcoming Visio 2007 as well.\u00a0 It&#8217;s available free on MSDN for download.\u00a0 There is a lot to learn and take advantage of with Visio extensibility.\u00a0 Look for more posts on this topic in the future.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is the sixth topic in a series discussing the essential features that make up the Visio application.<\/p>\n","protected":false},"author":69200,"featured_media":25159,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[77],"class_list":["post-1613","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-microsoft-365-developer","tag-visio"],"acf":[],"blog_post_summary":"<p>This is the sixth topic in a series discussing the essential features that make up the Visio application.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/1613","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/users\/69200"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/comments?post=1613"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/1613\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media\/25159"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media?parent=1613"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/categories?post=1613"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/tags?post=1613"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}