<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://communities.bentley.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Converting UCM Macros to Basic</title><link>https://communities.bentley.com/products/programming/microstation_programming/f/microstation-programming---forum/94638/converting-ucm-macros-to-basic</link><description>For Microstation V8i, I have been given the assignment of converting several UCMs to Basic or Visual Basic. Since there is a manual for converting UCM to Basic, I decided that I would convert them to Basic. Then new macros could be created in VBA. I am</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>RE: Converting UCM Macros to Basic</title><link>https://communities.bentley.com/thread/283020?ContentTypeID=1</link><pubDate>Tue, 29 Apr 2014 23:58:05 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:5916c409-a31c-4760-81da-764f23356150</guid><dc:creator>Rod Wing</dc:creator><description>&lt;p&gt;[quote user=&amp;quot;Jon Summers&amp;quot;]&lt;/p&gt;
&lt;p&gt;[quote user=&amp;quot;RobertArnold&amp;quot;]It is good to take a step back and see what your UCM code is doing. &amp;nbsp;Then translate the concepts to VBA.[/quote]&lt;/p&gt;
&lt;p&gt;Excellent suggestion!&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;
&lt;p&gt;[/quote]&lt;/p&gt;
&lt;p&gt;I&amp;#39;ll second Robert&amp;#39;s suggestion. I&amp;#39;ve converted over 300 UCM&amp;#39;s to VBA&amp;#39;s for different clients. That is the exact approach I took, replace the functionality but redesign from scratch. You are needlessly making the job much more difficult if you are examining every line of UCM code to translate to VBA.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Converting UCM Macros to Basic</title><link>https://communities.bentley.com/thread/282989?ContentTypeID=1</link><pubDate>Tue, 29 Apr 2014 17:00:36 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:79fe9b3a-df57-4cc1-930d-9e5a31246056</guid><dc:creator>Jon Summers</dc:creator><description>&lt;p&gt;[quote user=&amp;quot;RobertArnold&amp;quot;]It is good to take a step back and see what your UCM code is doing. &amp;nbsp;Then translate the concepts to VBA.[/quote]&lt;/p&gt;
&lt;p&gt;Excellent suggestion! &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Converting UCM Macros to Basic</title><link>https://communities.bentley.com/thread/282982?ContentTypeID=1</link><pubDate>Tue, 29 Apr 2014 16:19:57 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:2fb1efe0-2d15-46e3-982f-8a7c3fadb72e</guid><dc:creator>RobertArnold</dc:creator><description>&lt;p&gt;Hi Elaine,&lt;/p&gt;
&lt;p&gt;Another suggestion... &amp;nbsp;UCM is a programming language with a bunch of very simple tools that can&amp;#39;t do much. &amp;nbsp;I was helping someone convert some UCMs to VBA. &amp;nbsp;First, he had tried to do automated conversions to BASIC, which produced unreadable, terrible code which was a major pain to work with. &amp;nbsp;Another thing I saw was these huge drawn out processes to do something very simple. &amp;nbsp;In UCM, to get the square root of &amp;quot;A&amp;quot; squared plus &amp;quot;B&amp;quot; squared, it was a 4 or 5 step process, rather than one line of code. &amp;nbsp;Also, point manipulation was done on X, then Y, then Z. &amp;nbsp;In VBA, that could be one command, and it definitely should be one Point3d variable rather than three un-named variables.&lt;/p&gt;
&lt;p&gt;What I&amp;#39;m trying to say is that it is good to take a step back and see what your UCM code is doing. &amp;nbsp;Then translate the concepts to VBA--not just a direct word-for-word conversion.&lt;/p&gt;
&lt;p&gt;--Robert&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Converting UCM Macros to Basic</title><link>https://communities.bentley.com/thread/282859?ContentTypeID=1</link><pubDate>Mon, 28 Apr 2014 19:45:06 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:2579a09c-a90d-4723-a1ef-65dbe89af6cf</guid><dc:creator>Jon Summers</dc:creator><description>&lt;p&gt;[quote user=&amp;quot;ElaineL&amp;quot;]I don&amp;#39;t need to be concerned about working units and UORs in converting CVT? [/quote]&lt;/p&gt;
&lt;p&gt;VBA provides the &lt;span style="font-family:courier new,courier;"&gt;Point3d&lt;/span&gt; and &lt;span style="font-family:courier new,courier;"&gt;Point2d&lt;/span&gt; data types for working with coordinates.&amp;nbsp; Normally, you work in Master Units, and don&amp;#39;t need to be concerned about UORs.&amp;nbsp; Because UCMs used UORs you often had to convert between the two.&amp;nbsp; You can assign a &lt;span style="font-family:courier new,courier;"&gt;Point3d&lt;/span&gt; the like this...&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:courier new,courier;"&gt;Dim point As Point3d&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new,courier;"&gt;point.X = 1.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new,courier;"&gt;point.Y = 2.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new,courier;"&gt;point.Z = 3.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Or, you might prefer the API, which offers useful methods like this...&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:courier new,courier;"&gt;Dim point As Point3d&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new,courier;"&gt;point = Point3dFromXYZ (1., 2., 3.)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Converting UCM Macros to Basic</title><link>https://communities.bentley.com/thread/282849?ContentTypeID=1</link><pubDate>Mon, 28 Apr 2014 18:26:55 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:fc21d562-675a-4799-9109-e8927b21c746</guid><dc:creator>Robert Hook</dc:creator><description>&lt;p&gt;MicroStation VBA&amp;#39;s default transform works in master unit values and UORs conversions should be minimized except where absolutely required by a method.&lt;/p&gt;
&lt;p&gt;The MicroStation objects (Attachement and ModelReference) provide the following convenience functions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;UORsPerMasterUnit&lt;/li&gt;
&lt;li&gt;UORsPerSubUnit&lt;/li&gt;
&lt;li&gt;UORsPerStorageUnit&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here is a sample showing how to take those numeric values and display them as strings, note that you can use Microsoft VBA&amp;#39;s &lt;strong&gt;&lt;em&gt;CStr()&lt;/em&gt;&lt;/strong&gt; function to convert a number to a string value if you need to store the result:&lt;/p&gt;
&lt;p&gt;Sub ActiveModelDisplayWorkingUnits()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Debug.Print &amp;quot;UORsPerMasterUnit: &amp;quot; &amp;amp; ActiveModelReference.UORsPerMasterUnit&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Debug.Print &amp;quot;UORsPerSubUnit: &amp;quot; &amp;amp; ActiveModelReference.UORsPerSubUnit&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Debug.Print &amp;quot;UORsPerStorageUnit: &amp;quot; &amp;amp; ActiveModelReference.UORsPerStorageUnit&lt;br /&gt;End Sub&lt;/p&gt;
&lt;p&gt;Lastly as many have mentioned already,&amp;nbsp;MicroStation BASIC, MicroStation User Commands (UCMs), and MicroCSL have all been deprecated prior to the MicroStation 8.1 version release and documented in some of the following references:&lt;/p&gt;
&lt;ul&gt;
&lt;li style="margin-top:0px;margin-bottom:0px;vertical-align:middle;"&gt;&lt;a href="ftp://ftp.bentley.com/pub/help/microstation/08010215en/html/microstation/readme.htm#MicroStationBASIC"&gt;MicroStation V8.1 Readme - MicroStation BASIC&lt;/a&gt; - Circa 2003&lt;/li&gt;
&lt;li style="margin-top:0px;margin-bottom:0px;vertical-align:middle;"&gt;&lt;a href="ftp://ftp.bentley.com/pub/help/microstation/08010215en/html/microstation/readme.htm#UCMSupport"&gt;MicroStation V8.1. Readme &amp;ndash; User Commands (UCMs)&lt;/a&gt; - Circa 2003&lt;/li&gt;
&lt;li style="margin-top:0px;margin-bottom:0px;vertical-align:middle;"&gt;&lt;a href="/products/microstation/w/microstation__wiki/3019.aspx"&gt;MDL Or MicroStation BASIC Choosing The Right Tool [TN]&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;HTH,&lt;br /&gt;Bob&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Converting UCM Macros to Basic</title><link>https://communities.bentley.com/thread/282847?ContentTypeID=1</link><pubDate>Mon, 28 Apr 2014 18:06:27 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:495db5f1-bd50-424a-bbf6-5c61456d03f8</guid><dc:creator>John Frampton</dc:creator><description>&lt;p&gt;[quote user=&amp;quot;John Frampton&amp;quot;]I highly recommend that you convert things to VBA over Basic. &amp;nbsp;I have never tried this so I do not know how successful it will be, start the VBA recorder and then run the UCM it should record the playback of the UCM depending on how complex, it may help you get what you need.[/quote]&lt;/p&gt;
&lt;p&gt;I just want to mention again that I highly recommend that any new end user customization be done in VBA.&amp;nbsp; I would hate to see you have to do the work twice if you choose to convert things to Basic.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Converting UCM Macros to Basic</title><link>https://communities.bentley.com/thread/282845?ContentTypeID=1</link><pubDate>Mon, 28 Apr 2014 17:54:46 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:42f0f1c6-49ed-4a47-97b8-6d44f9826dd5</guid><dc:creator>Elaine Li</dc:creator><description>&lt;p&gt;In &amp;quot;UCM-to-Basic.pdf&amp;quot; it says that CVT converts between working units and UORs and stores the result in var1. If var1 is a character string, the conversion is from UORs (Units of Resolution) to working units and then I would need to find the equivalent in VBA.&lt;/p&gt;
&lt;p&gt;However, in VBA I did do something similar to what you showed in your reply, except made them const. So I don&amp;#39;t need to be concerned about working units and UORs in converting CVT? &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Converting UCM Macros to Basic</title><link>https://communities.bentley.com/thread/282823?ContentTypeID=1</link><pubDate>Mon, 28 Apr 2014 14:50:31 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:a443f87e-e6ac-41d4-898c-5fecb6ca8c06</guid><dc:creator>Jon Summers</dc:creator><description>&lt;p&gt;[quote user=&amp;quot;ElaineL&amp;quot;]CVT A0 = &amp;#39;.25&amp;#39;&lt;/p&gt;
&lt;p&gt;Is there something different about the MIcroStation V8&lt;em&gt;i&lt;/em&gt; version compared to the older version so that I don&amp;#39;t need to translate CVT to the VBA counterpart?[/quote]&lt;/p&gt;
&lt;p&gt;There&amp;#39;s a lot different.&amp;nbsp; &lt;em&gt;CVT&lt;/em&gt; is a conversion instruction: the quoted string is converted to a decimal and stored in register A0.&lt;/p&gt;
&lt;p&gt;VBA has more explicit assignments:&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:courier new,courier;"&gt;Dim decimalNumber As Double&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new,courier;"&gt;decimalNumber = 1.234&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;The TCB registers &lt;span style="font-family:courier new,courier;"&gt;Ax&lt;/span&gt; are globally-available storage slots.&amp;nbsp; Those UCM slots don&amp;#39;t know or care what&amp;#39;s stored in them: an integer number, floating point number, or a 3D point.&amp;nbsp; A VBA variable is local to your macro, and is usally declared to store a certain type of data.&amp;nbsp;That makes VBA much safer to use.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Converting UCM Macros to Basic</title><link>https://communities.bentley.com/thread/282817?ContentTypeID=1</link><pubDate>Mon, 28 Apr 2014 14:30:02 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:d9752a3a-8c4c-4a10-b5ff-720e84ca9ee6</guid><dc:creator>Elaine Li</dc:creator><description>&lt;p&gt;Thank you, caddcop. I&amp;#39;ve been using &amp;quot;Microstation-UCM-REF15.pdf&amp;quot; and &amp;quot;UCM-to-Basic.pdf&amp;quot; to understand the UCM code, but I don&amp;#39;t have the &amp;quot;MicroStation Productivity book.&amp;quot; What I&amp;#39;m not clear about is CVT:&lt;/p&gt;
&lt;p&gt;CVT	A0 = &amp;#39;.25&amp;#39;&lt;/p&gt;
&lt;p&gt;CVT	A1 = &amp;#39;.625&amp;#39;&lt;/p&gt;
&lt;p&gt;CVT	A2 = &amp;#39;.5&amp;#39;&lt;/p&gt;
&lt;p&gt;CVT	A3 = &amp;#39;.125&amp;#39;&lt;/p&gt;
&lt;p&gt;When I used the counterpart of this using Basic, the graphic didn&amp;#39;t work correctly. But when I ignored it, it did. I converted the UCM code to VBA ignoring CVT and it also works.&lt;/p&gt;
&lt;p&gt;Is there something different about the MIcrostation 8vi version compared to the older version the illustrators are using, Microstation SE O5.07.01.22, so that I don&amp;#39;t need to translate CVT to the VBA counterpart?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Converting UCM Macros to Basic</title><link>https://communities.bentley.com/thread/282799?ContentTypeID=1</link><pubDate>Mon, 28 Apr 2014 13:05:12 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:2f92222b-ae11-4bdf-a8eb-7bb83ece0418</guid><dc:creator>caddcop</dc:creator><description>&lt;p&gt;I recently found my copy of the MicroStation Productivity book. It lists many of the register and/or tcb variables that UCM&amp;#39;s used. If you need any explanation of some of these to determine what the code was doing, I can help.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Converting UCM Macros to Basic</title><link>https://communities.bentley.com/thread/276433?ContentTypeID=1</link><pubDate>Thu, 27 Feb 2014 21:10:34 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:2b351beb-418d-4fb9-8714-e5dc7e2292b9</guid><dc:creator>Elaine Li</dc:creator><description>&lt;p&gt;Thanks, Jon. I appreciate you giving me your reasons for prefering VBA to MDL for converting from UCM.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Converting UCM Macros to Basic</title><link>https://communities.bentley.com/thread/276006?ContentTypeID=1</link><pubDate>Tue, 25 Feb 2014 14:40:43 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:990c14f5-456d-4447-9d97-fd1e14d46b6c</guid><dc:creator>Jon Summers</dc:creator><description>&lt;p&gt;[quote user=&amp;quot;ElaineL&amp;quot;]Should I prefer VBA to MDL?[/quote]&lt;/p&gt;
&lt;p&gt;Yes.&amp;nbsp; VBA provides a convenient &lt;em&gt;rapid application development&lt;/em&gt; (RAD) tool.&amp;nbsp; You can post snippets of code here that people can test and comment upon.&amp;nbsp; As your goal is to convert UCMs, which are usually quite small, it&amp;#39;s likely that many people will be able to help.&lt;/p&gt;
&lt;p&gt;MDL is closer to the metal.&amp;nbsp; It&amp;#39;s not a RAD.&amp;nbsp; It would be overkill for converting UCMs.&amp;nbsp; &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Converting UCM Macros to Basic</title><link>https://communities.bentley.com/thread/276003?ContentTypeID=1</link><pubDate>Tue, 25 Feb 2014 14:27:54 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:265f9f69-b7c4-47b7-b31d-af14145a62e9</guid><dc:creator>Elaine Li</dc:creator><description>&lt;p&gt;I&amp;#39;ve decided that I will not convert the UCMs to Basic after all. Now that I&amp;#39;m more famililar with the translations it will be easier to use VBA. But I want to consider MDL as well. No one replied that MDL would be a good option and I was wondering why that is. I have a C/C++ background. Should I prefer VBA to MDL?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Converting UCM Macros to Basic</title><link>https://communities.bentley.com/thread/276001?ContentTypeID=1</link><pubDate>Tue, 25 Feb 2014 14:24:35 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:1a485162-33eb-4629-a3aa-b7f5603e45ec</guid><dc:creator>Elaine Li</dc:creator><description>&lt;p&gt;I was unable to find ucm2basic.ma. I looked in the directory where the ma files are for the older version of Microstation. Awhile ago I had read online that there was a bat file called ucm2basic that Bentley could provide and I called them. But they told me that this was no longer available. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Converting UCM Macros to Basic</title><link>https://communities.bentley.com/thread/275005?ContentTypeID=1</link><pubDate>Sat, 15 Feb 2014 15:07:03 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:5c092b26-e37c-4a73-8339-512437430afb</guid><dc:creator>Budlite</dc:creator><description>&lt;p&gt;no one here can help you if you don&amp;#39;t supply the UCM&amp;#39;s to examine......period.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Converting UCM Macros to Basic</title><link>https://communities.bentley.com/thread/274997?ContentTypeID=1</link><pubDate>Sat, 15 Feb 2014 07:17:41 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:3b546239-77da-4094-aa63-322d0f55d5f0</guid><dc:creator>Jon Summers</dc:creator><description>&lt;p&gt;[quote user=&amp;quot;ElaineL&amp;quot;]That mean that UCMs can&amp;#39;t be completely converted to Microstation BASIC? [/quote]&lt;/p&gt;
&lt;p&gt;Keep in mind that UCMs support even fewer features of MicroStation V8.&amp;nbsp; BASIC provides more than UCMs, and VBA provides more still and is not obsolescent.&lt;/p&gt;
&lt;p&gt;For example, consider levels.&amp;nbsp; In V8, levels are named (in MicroStation SE they are numbered).&amp;nbsp; There is no restriction on the number of levels (in SE, there are 63).&amp;nbsp; VBA can handle an arbitrary number of named levels; BASIC can&amp;#39;t, UCMs can&amp;#39;t.&lt;/p&gt;
&lt;p&gt;But that introduces another question: What will your organisation do with an unlimited number of named levels?&amp;nbsp; Will they change their way of working (everyone who moved to V8 successfully embraced that change)?&amp;nbsp; If &lt;em&gt;levels&lt;/em&gt; influences their way of working, should the UCM functionality also accommodate those changes?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Converting UCM Macros to Basic</title><link>https://communities.bentley.com/thread/274995?ContentTypeID=1</link><pubDate>Sat, 15 Feb 2014 04:42:50 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:0c8d90e6-8317-440e-bcee-72cd63bc6483</guid><dc:creator>Elaine Li</dc:creator><description>&lt;p&gt;Thanks, Jon. Then if Microstation BASIC does not support all the features of Microstation (of any version?), does that mean that UCMs can&amp;#39;t be completely converted to Microstation BASIC? &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Converting UCM Macros to Basic</title><link>https://communities.bentley.com/thread/274968?ContentTypeID=1</link><pubDate>Fri, 14 Feb 2014 17:55:21 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:ea821662-e5b9-4cac-899d-109412051c3b</guid><dc:creator>Robert Hook</dc:creator><description>&lt;p&gt;Elaine, the process you are describing is what I consider to be a typical &amp;quot;Migration Project&amp;quot;. &amp;nbsp;There are several options and considerations in the process that should be evaluated before being able to project how long your migration project will take.&lt;/p&gt;
&lt;p&gt;Here are some considerations:&lt;/p&gt;
&lt;p&gt;How has the Product changed? &amp;nbsp;In your case MicroStation SE (5.7) to MicroStation V8i 8.11 has change drastically in capabiities and workflows. &amp;nbsp;These points are fundamental in your approach.&lt;/p&gt;
&lt;p&gt;MicroStation V7 had 63 levels and the V7 design file format. &amp;nbsp;MicroStation V8 has a new format, capabilities, workflows, and nearly limitless levels, models, styles (line, text, dimension), etc. &amp;nbsp;For one, your UCM unless the most simple will not work in MicroStation V8. &amp;nbsp;MicroStation BASIC being older also has the similar limitations and both would require several and/or extreme hacks to accomplish something that a more modern MicroStation VBA could handle with ease. &amp;nbsp;MicroStation VBA has its (smaller) set of limitations, but can be augmented with MicroStation MDL (C/C++ programming language APIs) to enhance VBA, or offer functionality in a stand-alone manner.&lt;/p&gt;
&lt;p&gt;The first part of such a daunting task is to ask some of these questions from the CAD admin/operators:&lt;/p&gt;
&lt;p&gt;1. How many programs are there?&lt;/p&gt;
&lt;p&gt;2. What do they do?&lt;/p&gt;
&lt;p&gt;3. Does the Product NOW offer this functionality?&lt;/p&gt;
&lt;p&gt;4. Have the workflows in the product changed making the older way ineffecient or obsolete?&lt;/p&gt;
&lt;p&gt;5. How many programs do we need to migrate?&lt;/p&gt;
&lt;p&gt;6. Do we only need to migrate some or all the code/featurs of the customization forward?&lt;/p&gt;
&lt;p&gt;7. What programming language(s) are required?&lt;/p&gt;
&lt;p&gt;8. Do I have the experience necessary to perform some or all the work defined as being required?&lt;/p&gt;
&lt;p&gt;9. Can I meet the projected deadlines?&lt;/p&gt;
&lt;p&gt;10. Will I have adequate time to test each app, feature, and (new) workflow and validate everthing is working?&lt;/p&gt;
&lt;p&gt;There are more considerations along the way, but these steps above are generic and apply to any software product that provides customization/programming options.&lt;/p&gt;
&lt;p&gt;I would recommend to evaluate the existing functionality and find it, or find out how to accomplish it in the new product. &amp;nbsp;Use MicroStation VBA since it is relatively easy to learn and prototype functionality quickly. &amp;nbsp;TIP: Plenty of sample code in the VBA Help document - Alt F11, F2 (object browser), Search for something - e.g. Cell, then hilite an item displayed in the results and Press F1 - noting &amp;quot;Example&amp;quot; hyperlinks for sample code. &amp;nbsp;Lastly, if the deadline(s) are imperative I would recomend that you consider contacting our Bentley Profession Services group since they are already fully equipped to handle and meet your customization needs. &amp;nbsp;Here is some contact information for convenience.&lt;/p&gt;
&lt;p&gt;Bentley Professional Services (BPS) - For Bentley product customization services&lt;/p&gt;
&lt;p&gt;Web: &amp;nbsp;&lt;a href="http://www.bentley.com/en-US/Services/Bentley+Professional+Services/" target="_blank"&gt;www.bentley.com/.../Bentley+Professional+Services&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;E-mail: &amp;nbsp;bentley.consulting@bentley.com&lt;/p&gt;
&lt;p&gt;Wish you the best in your efforts and please make sure to use the Be Communities to help you find your way and help with any specific programming questions you may have.&lt;/p&gt;
&lt;p&gt;HTH,&lt;/p&gt;
&lt;p&gt;Bob&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Converting UCM Macros to Basic</title><link>https://communities.bentley.com/thread/274940?ContentTypeID=1</link><pubDate>Fri, 14 Feb 2014 14:05:15 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:b02a1c38-c9b2-4218-925b-119713be3c04</guid><dc:creator>John Frampton</dc:creator><description>&lt;p&gt;From the MicroStation FAQ.&lt;/p&gt;
&lt;p&gt;Question: Will MicroStation BASIC macros work in MicroStation V8i (SELECTseries 3)?&lt;/p&gt;
&lt;p&gt;Answer: MicroStation BASIC is supported in MicroStation V8i. However, MicroStation BASIC has not been enhanced and is likely to be unsupported in future versions. Bentley recommends migrating existing MicroStation BASIC code to Visual Basic or Visual Basic for Applications.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Converting UCM Macros to Basic</title><link>https://communities.bentley.com/thread/274935?ContentTypeID=1</link><pubDate>Fri, 14 Feb 2014 13:46:14 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:3e067547-96d6-41c6-bb38-86332dbf48c6</guid><dc:creator>Phil Chouinard</dc:creator><description>&lt;p&gt;Could you provide a sample UCM? That might help with suggestions and ideas of things to do to help you achieve what you have been asked.&lt;/p&gt;
&lt;p&gt;BTW, to add to the suggestions of going straight to VBA, although you may not be familiar with it, it will likely be the fastest way to accomplish what you are looking to do. Further, subsequent maintenance of the customizations will be MUCH easier than dealing with something that is &amp;quot;converted&amp;quot; from one &amp;quot;language&amp;quot;&amp;nbsp;to another and then &amp;quot;converted&amp;quot; to another. I speak from experience there.&lt;/p&gt;
&lt;p&gt;This is not meant to insult, it is merely to provide perspective (from someone who has &amp;quot;been there&amp;quot;...)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Converting UCM Macros to Basic</title><link>https://communities.bentley.com/thread/274933?ContentTypeID=1</link><pubDate>Fri, 14 Feb 2014 13:16:59 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:9559a17d-b74a-4b55-9a61-e9a585f3babc</guid><dc:creator>Jon Summers</dc:creator><description>&lt;p&gt;[quote user=&amp;quot;Budlite&amp;quot;] If you are already familiar with basic ...[/quote]&lt;/p&gt;
&lt;p&gt;[quote user=&amp;quot;ElaineL&amp;quot;] I am just learning Microstation [/quote]&lt;/p&gt;
&lt;p&gt;If Elaine is a MicroStation beginner, it&amp;#39;s unlikely that she&amp;#39;s familiar with a macro language that&amp;#39;s unique to MicroStation (that applies equally to UCMs and to BASIC).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;It&amp;#39;s a surreal management belief that someone who is new to a product can simultaneously learn how to customise that product.&amp;nbsp; Should we suppose that Elaine&amp;#39;s manager hires secretarial staff and then instructs them to write Word VBA programs to automate their mail-shots?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Converting UCM Macros to Basic</title><link>https://communities.bentley.com/thread/274929?ContentTypeID=1</link><pubDate>Fri, 14 Feb 2014 12:20:19 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:9f9e254a-530c-482e-aa0b-292a2d797864</guid><dc:creator>Budlite</dc:creator><description>&lt;p&gt;What Jon says is all true but that does not help you if you do not know how to program in VBA. If you are already familiar with basic then using it as an interim step may be be your solution while you learn VBA, or better yet, learn MDL. Look for ucm2basic.ma which will convert, with comments included telling you what doesn&amp;#39;t work so that you may look for a solution within basic. Most ucm&amp;#39;s were quite simple due to the fact that ucm&amp;#39;s were highly limited so chances are that a rewrite may not be all that difficult. There are still some of us around that can read and understand ucm syntax. There&amp;#39;s also a good chance that someone else has already written something that will work for you or could be easily modified but without access to the ucm&amp;#39;s no one would know.&lt;/p&gt;
&lt;p&gt;jchavins@aol.com&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Converting UCM Macros to Basic</title><link>https://communities.bentley.com/thread/274907?ContentTypeID=1</link><pubDate>Fri, 14 Feb 2014 07:35:28 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:e8115654-ebf3-45f9-bc79-86f85fbe97ed</guid><dc:creator>Jon Summers</dc:creator><description>&lt;p&gt;[quote user=&amp;quot;ElaineL&amp;quot;]I&amp;#39;m pretty sure I can&amp;#39;t post anything online from work[/quote]&lt;/p&gt;
&lt;p&gt;UCMs are pretty much write-only code.&amp;nbsp; There aren&amp;#39;t too many people around who understand them.&amp;nbsp; One approach would be to document their functionality, and re-implement that functionality in whatever language.&amp;nbsp; That process may also reveal that some UCMs written for older versions of MIcroStation have been superseded by the functionality provided by newer versions of MicroStation.&amp;nbsp; In other words, some of your UCMs may be redundant.&lt;/p&gt;
&lt;p&gt;[quote user=&amp;quot;ElaineL&amp;quot;]I thought there was a good chance that I would be told not to use Basic - instead of answering my question[/quote]&lt;/p&gt;
&lt;p&gt;As you have discovered, UCMs are obsolete in MIcroStation V8&lt;em&gt;i&lt;/em&gt;.&amp;nbsp; There&amp;#39;s a good chance that BASIC will also go the way of the Dodo in a future version of MicroStation.&amp;nbsp; BASIC does not support all features of MicroStation; in contrast, VBA comprehensively supports MicroStation.&amp;nbsp; VBA is implemented also in commonplace products such as Word and Excel: consequently you can solicit help from people outside the MicroStation community.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Converting UCM Macros to Basic</title><link>https://communities.bentley.com/thread/274881?ContentTypeID=1</link><pubDate>Fri, 14 Feb 2014 00:46:23 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:5d21ab24-8cae-4e84-b845-a0f8ec3cdbe7</guid><dc:creator>Elaine Li</dc:creator><description>&lt;p&gt;From looking at the Forum, I thought there was a good chance that I would be told not to use Basic - instead of answering my question. Although, I really understand why you are saying not to convert to Basic after trying to work with it for awhile. I will take a look at converting one of the UCM Macros into Basic and see what&amp;#39;s involved.&lt;/p&gt;
&lt;p&gt;In the meantime, is this correct that Macros can&amp;#39;t be called with parameters from a Basic Macro? &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Converting UCM Macros to Basic</title><link>https://communities.bentley.com/thread/274880?ContentTypeID=1</link><pubDate>Fri, 14 Feb 2014 00:37:53 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:0501b917-d77c-468d-8ccf-be531eb31bf8</guid><dc:creator>Elaine Li</dc:creator><description>&lt;p&gt;Thanks. What is the name of the mdl to convert UCMs to Basic? I&amp;#39;m pretty sure I can&amp;#39;t post anything online from work.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>