All of my Visio solutions contain custom masters because this is the best way to create smart shapes that respond to user’s needs. This usually means creating Shape Data, User-defined Cells and Action rows that govern aspects of the shape with formulas designed to provide an efficient user interface. As a developer I sometimes forget that other users may not perform the same actions as I do, and can accidently undo all my intended behaviour. For example, in recent testing of a visual stream mapping system that I am working on, my carefully constructed master-shape relationship was being broken by grouping some of them together, thus changing their behavior and hiding them from some of the custom functions. The reason given was to that they want to create copies and this seemed like a reasonable way to do it. Now, I have known that this is bad ever since my original Visio developer training back in 1996, so I always avoid doing this, and erroneously thought that other would know this too. I was wrong to be so myopic, so I explored how I can best prevent this and other user actions that could break the intended master-shape relationship.
[Read more…] about Protecting the integrity of custom Visio mastersProducts
My Visio Books and Old pre-C# Work
We, as a family, are in the process of de-cluttering our house for hopefully a move closer to the south coast, so I decided to take a photo of my Visio books collection, and as you can see, back in the mid-1990’s, I started reading and learning from other peoples works, and then progressed to writing my own from 2007. This shows how mature the Visio desktop product is, and as very little has been removed, then each book has something to learn.

Migrating from Lucidchart to Visio?
My fellow Visio MVP, Michel Laplane, and I recently converted and transformed 15k Lucidchart documents to Microsoft Visio for a large multi-national organization. This was approximately 4 years after they had moved from Visio to Lucidchart! I do not know the full reason behind these changes in technology, and I do not have a particular dislike of Lucidchart, but my passion is Visio, so I was willing to assist SohoDragon in this migration for their client. The Lucidchart application is solely a web-based diagramming system with the documents stored in AWS, so perhaps it does not fit easily within the corporate compliance architecture of Microsoft Azure, Teams and SharePoint. Microsoft Visio though has the same files for both the desktop and web editions, although there are some restrictions in the size and features of editing Visio document in the web. However, all the M365 users will have the ability to view and comment of the Visio documents that they have permission for. Visio Plan 1 or Plan 2 subscriptions will be required for editing the migrated documents because they have not been created with the templates provided in Visio for M365, and Visio documents which have any page with over a thousand shapes will currently only be editable in the Visio desktop edition. The Lucidchart documents needed to be audited, exported and transformed into Visio documents, and then uploaded to similar folders in SharePoint, where user permissions could be applied. We decided to use multiple secure Windows VMs to process the documents and then upload them to SharePoint before the VMs were deleted.

How SVG in Visio can cause a Shape.BoundingBox(…) error
I have used Visio’s Shape.BoundingBox(…) for many, many years and I cannot ever recall it failing, but I have now managed to create some shapes that cause it to error. This caused many hours of confusion, so I nearly abandoned using the method, until I discussed it with my fellow Visio MVP, John Goldsmith (see VisualSignals), and together we examined the cause. It came down to a badly formed sub-shape within the shape that had zero dimension … and in fact had an incomplete ShapeSheet. If you look at the screenshot below, then you may notice that there is no Shape Transform section! That is a mandatory section, and should always exist … so how did this happen?

Post-Processing Paste from Clipboard in Visio
One of my current Visio VSTO add-in projects requires me to react to users pasting custom shapes in the Visio page from the clipboard. The process involves registering the ExitScope event and then checking the Clipboard contents. Initially, I was merely testing for a line in the DataObject that started with the word “Visio “, but then testing revealed that copying and pasting text from one shape to another was also getting processed, so then I added a further check that the line also finished with the word ” Shapes”. This works fine, but then I got to wonder if I could also post-process tables copied and pasted from Excel because the standard paste maintains font settings but omits the tabs and line feeds, making the text unusable without serious manual editing. This article explains how this can done.

The importance of #layers in Visio for Power BI
Judging by the number of downloads of my free Visio and Power BI GuIde, there is an increasing recognition of this great feature. I recently started to prepare an example for someone, but found that their sample Visio document has just over the 1,000 shape limit, so what can you do about that? The answer is to modify the master shapes so only the top level of the group has a # symbol at the start. This ensures that only the shapes on these layers are counted. In this particular example the count of shapes was reduced from 1,084 to 278 … well within the limit!
So, how is this done? Well, this can be done manually by editing each master shape. In this following example the shape count is reduced from 6 to 1 using this method, and there are 45 instances of this master shape on the page. so that makes 45*5=225 less shapes just by editing this one master.
[Read more…] about The importance of #layers in Visio for Power BI



