Features request #1
Y4cine
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Now that the base is set. I want to elaborate on helper functions.
The base library is intended for people who know Visio's object model and will be very fast when operating with the provided handles on the base objects.
The helper functions however will be a set functions, that are beyond the usual and fast manipulation of the Visio objects. Things you don't do every day and forget about how to do it.
Here is a list of thoughts:
Creating rows in the user and prop section, with all necessary tests.
Not a big deal in itself, but handling all the ifsectionexsists, ifcellexists, adding the label to prop rows (important but often forgotten), and subtle stuff like the sort order, the visibility and the like.
This part would also include checking for values depending on the prop row type, which is not alway obvious.
Also handling different unit types in Visio (UI - universal units, inches and millimeters)
batch processes for fast processing - visio has these batch operations where you pass an array with shape IDs, cell address and so on. You can read an write to such arrays. Very fast, but also very sensitive to variable section structures (prop, user, geometriy and so on)
transform shapesheet cells in properties - thats a neat one, but only nice to have. Instead of writing shape.Cells("Width").ResultUI and .Formula you just address the cell by shape.Width as getter and setter. More difficult than you would expect, but I worked a solution out for it.
SetGetStates - that is not only neat but also IMPORTANT. You have basically a rather complex drawing and set highlights of different kinds and different texts in shapes depending on scenarios. You begin be saving the original state, then for each scenario you modify certain properties of shapes (color, line weight, ... what ever), store the modifications in a file (Excel, JSON or other), then you generate report documents by switching from state to state, exporting to bitmap. This is actually a very big deal, because these modifications don't depend on a certain state of the document. The states adjust themselves to what ever the drawing evolves into. Absolutely not to neglect when handling big documents and defining such scenarios. Drawing over existing documents is a dead end.
SmartShapeManager - also a neat one. You basically compare a smartshape to a virgin shape and document the differences. This documentation can then be used as definition of the smartshape and can be used to build such a shape up from the definition. The definition being a Excel or JSON file can also be edited separately to make adjustments. Important and definiteley a missing in the base functionality of Visio.
LayerManager
The layer managment in Visio is poor when compared to Autocad and the like. Well have a nicer solution. Probably with a GUI - tkinter or PyQt?
PythonVBA translater - Python being so fast and good, it is my primary tool for fast prototyping. When it comes to distributing code, VBA is better because I can embed it in templates and stencils. Converting Python to VBA is however not trivial to myself. A converter would be nice.
I would be very interested on getting your opinion on the points and suggestions what I may or should add (or remove).
What are features, that you wish were in the standard features set of Visio?
Beta Was this translation helpful? Give feedback.
All reactions