I am starting a new VBA project for our group to place call-outs & notes that are NOT dimension styles. I am defining the call-outs as a text field with a frame around it using predefined symbols, e.g. circle/ellipse, box, diamond(rotated box), hex and triangle.
I the past v8 versions Bill Stienbock wrote an mdl application called "drafting tools" in which our organization relies on very very heavily. The problem with using dimension styles is the use of annotation scale for the scaling of the objects. This also affects the text size in our designs since all of our projects dating back to 1992 are setup in the same way. Models are drawn 1:1 with borders / title-blocks are scaled up to a standard size 1/4in to 1ft etc....
I am looking for a method or library within uStn that would have these shapes that can be called via a VBA project to place call-outs & notes in a design file. Maybe the detailing symbols application could be used as a starting point with another dgnlib created with the types of symbols used and second toolbar??
Any input or examples of placing calls that are not dimension styles would be much appreciated. More info on Detailing Symbols MDL is also appreciated.
USTN: 08.11.09.919 (SS10)
OS: Win10 64bit
a few quick comments and thoughts:
Steven W said:I am starting a new VBA project
Based on your information I am not sure whether it's the right tool.
Typical workflow, before any software development project is started, contains, among others, balancing between required result (mandatory and "nice to have" features) and tools+technologies that have to be used to reach the defined aim.
In your case, it's about to know exactly (example in DGN file) how notes have to looks like and be structured, and evaluation whether it can be created using what API.
Steven W said:I am defining the call-outs as a text field
Do you mean "text place holder", linked with e.g. element property, dynamically changing when the property changes? Or "text field" is just a normal text, automatically filled by the application?
It's crucial question, because I think there is no API that can be used to created text field and to link it with element in V8i, and even in CONNECT Edition, it's available in C++ API only.
Steven W said:The problem with using dimension styles is the use of annotation scale for the scaling of the objects.
I do not think so. The annotations scaling is a feature only, that can be switched off (to not place dimension as annotation). So when it does not work as required, it's simple to define style in a proper way and to place a dimension without annotation flag.
Steven W said:I am looking for a method or library within uStn that would have these shapes
I do not understand this, because at the beginning of your text I thought you are starting a project that will create such library (e.g. in a form of cell library), or these shapes will be drawn by code.
Steven W said:Any input or examples of placing calls that are not dimension styles would be much appreciated.
I think you should provides examples what your requirements are at first (DGN file required). The text description is simply not enough.
Also, taking into account V8i has become less and less supported and migration to CE is recommended, a question is whether it makes sense to invest probably a lot of time to solve functionality, that is (at least partially) available in CE as a standard tool. MicroStation CE allows to define detailing symbols library, and even when it's prepared for standard callouts (border, section etc.), maybe it covers your requirements also. Or at least, it can be used as an inspiration ;-)
Labyrinth Technology | dev.notes() | cad.point
Thanks for your input.
The new VBA project is to replace the old "Drafting Tools" mdl. This tool is used heavily in our design process; it communicates about 1/3 of the design info on each sheet. With custom symbols and note blocks providing the rest of the info. Our firm provides schematic designs to Architectural firm nation wide (US) for electrical power, lighting, lighting control, Low Voltage systems like fire alarm, public address and backup generator power for healthcare facilities. During the 35 years of business Microstation has been used since 1995 because of the ease of use. Custom tools have been developed over the years to streamline the design process for the firm. The one tool that has the biggest impact is the mdl Drafting Tools developed by Bill Steinbock for uStn v8.
1. The first step is to research the community for inputs and best practice to approach this project.
2. The text frames or call-out symbols used can be defined by code or accessed via a library already built-in to the uStn environment would be the first option. The second option would be to create a library then add it to the environment or workspace.
3. Text blocks will be an additional part with ability to have a small note blocks and one of the 3 types of leaders attached.
See the attached example for use in a design sheet.
Drafting Tools Example.dgnPDF
MPS Engineering Inc
Steven W said:The new VBA project is to replace the old "Drafting Tools" mdl
Why do you need to replace that MDL?
Regards, Jon Summers LA Solutions
Yes, when you try to recompile the old mdl code in the v8i environment you get a number of errors about the b-spline function. Since Bentley is no longer is supporting the tool and some of its functions have been add to other tools in v8i.
My user base is asking for a "simplified" interface and functionality like the old drafting tools when placing notes and call-outs which consist about 1/3 of the information in our design sheets. Plus we use active scale vs. annotation scale for our text, symbols and other items placed on the design sheets.
I have put together a set of dimension styles to place call-outs and notes but these are driven by the annotation scale which causes workflow issues between old vs new projects.
So my thought is if the symbols used for the dimension styles are located in a library that can be call by vba then use the library and put together a simplified interface then use the scale function based on active scale of the drawing. The other option would be to create the needed symbols, e.g. text frame shapes, arrowheads, etc...
See the attached dgn or pdf for examples.
All, a little Update
I have been working on this project an have made good headway. The infrastructure as call it of the project is working great. This part is passing of the Global arrays and variables between the three user forms and Module1.
I have run into a few issues with how to call some of the internal uStn objects using vba.
1. How to tell VBA to read a system path, e.g. "_USTN_SITE\Data" Instead of hard coding the path
2. How to tell VBA to read in the list of the standard line weights.
3. How to tell VBA to read in the list of the standard line styles.
4. How to tell VBA to read in the standard color table.
The user form below holds all properties for the application.
Any help would be greatly appreciated.
please follow the best practices and do not break one from the main rules: Evey discussion has to be about one topic. In another words: New question -> new post!
So please post your questions as separated post. But honestly, at first you should use MicroStation VBA help and search this forum, because I am pretty sure all topics are described in help and also discussed in the past.
Plus, when you will decide to post the question anyway, explain a bit more what you want to achieve. In some cases (e.g. standard weights or styles) I do not quite understand what you are asking about, because they are "standard", so they are always 0 - 7 and 0 - 31 and the values can be hardcoded.
Steven W said:How to tell VBA to read a system path, e.g. "_USTN_SITE\Data"
Read this article about Configuration Variables and VBA. Post any questions on a new thread.