• MicroStation Project Security App

    Big thanks to Barry Lothian for the basics of this code. 

    In the past, firms I've worked for have had vb in place that checks where you open files from and alerts you based on a level or security.

    Level 0

    Nothing happens. Pretty much a free for all.

    Level 1

    If a user tries to open a file from a location that is not defined by the project then a message box will open up alerting them to the error and suggesting…

  • Stu's Solution - A More Traditional Alternative

    OK, I admit it. This is one beast of a build and the collection of a LOT of work and work arounds, but what if you want to use something more traditional? No problems, it's very easy to use the same principles we have gone through to date in a much more simplified system if that's what works for you. the hta then becomes a way to manage users and take much of the hands on work out of the situation.

    To that end…

  • The Ultimate Portable Build - Part 3 - Scripting

    As you can gather by now, I don't like to edit delivered Bentley files and avoid using any installed directories when it comes to users files. To that end I've always used a custom area, something along the line of c:\Apps and had a series of batch files within the build do all the work for me. My aim has always to have CADmanage fill in the blanks and take the manual work out of setting up a lot of the build. To this…

  • The Ultimate Portable Build - Part 2 - The appl.cfg

    Hard part done. By using the location of CADmanage.hta as a start point, we've now been able to go ahead and set the variables for our critical locations, but what does this mean for the config files we've been using to date? Well the first of these that will need to be edited is the appl.cfg file that we use to trigger the location of _USTN_SITE. To date we've been setting a few hard coded locations at the top of the…

  • The Ultimate Portable Build - Part 1 - Relative Pathing hta

    The end goal of everything I've been doing has been to be able to deliver the ultimate portable build. Over the next series of blog's we'll be looking at how we can use relative pathing that is usually associated with html together with our hta file so we can have a build that can be copied or activated from just about any location or situation. To go with this series, download the cadmanage.hta linked in this blog…

  • Tech Tip - Turn off Rendered Views

    How many times have users come to you complaining they wait ages for a file to load only to find they have every model attached with rendering turned on. Drives me nuts as users just won't turn them off to speed up model loading. 

    Well, if they won't turn them off then we can. Another great addition to the autorun vb are a few lines that switch views back to wireframe:

    CadInputQueue.SendCommand "CHANGE VIEW WIREFRAME…

  • Dynamic Task Workflows

    Got to admit I was a little peeved with some of the changes to the GUI when XM first came out, but one of the changes I really like in V8i is the move to include Task Workflows in the interface. The big plus of Task Workflows over regular tasks is that they can be opened as a separate dialog and docked and be opened by a keyin:

    tasktoolbox open <task workflow name>

    For those of us who used to use barmenus extensively…

  • Controlling SM and AECOsim Section Files

    I have to admit it, I'm a bit fan of using the AutoRun vb when it comes to being able to control certain aspects of applications. One of those is a frustration I continue to have with Structural Modeller, now part of AECOsim, and the ability to lock what xml section files are available to users.

    While this little addition doesn't stop users from selecting another xml file, it does mean that they have to do it each…

  • Adding a Task Bar Icon to Our hta File

    A little bit of html knowledge is going to be a big help with hta files. One of the abilities within html is to use relative pathing to set the location on files, directories and more. These paths all relate back to where you're running your hta file from.

    For instance, as you may have noticed from our first example hta, once started there is no real icon for it on the Windows task bar. This may not worry many, but…

  • Build Kick Off - _USTN_SITE

    SPS_APPL.CFG, SITE.CFG it doesn't really matter what you call it, but this cfg files is the lynch pin for the whole system. The idea here is that any cfg file located in the \MicroStation\appl\ directory is read each time MicroStation or the verticals is loaded. The only issue I have come across so far, recently, is the need to copy the cfg file in custom locations if you're using power products that have been introduced…

  • How hta Changed the Way I Deliver Builds - Part 14 - Enable Button by Username

    The other day we looked at how to kill the build by adding a button that will delete the appl.cfg files. The only problem with this is that once you've added it to the hta, everyone can kill it and we all know how users love to find ways of working around things they don't like.

    Well, we can set up hta kill button so that it is only available to a few users.

    To the 'Sub Window_onload' we can add:

    If GetUsername…

  • BeyondCompare

    This is a great tool that allows you to compare and edit\copy\move files in directories. I use it a lot for keeping builds up to date across regions and between my development build and working build. Very handy tool and worth the small cost.


  • Startup hta

    There are more ways to use hta files than just with our CAD builds. One other way I use them is to start all my programs when starting Windows. Even at home this is a handy little tool. I have created a hta that sits in the Startup section in windows that starts Chrome, Notepad++, Mozilla and iTunes whenever I log into Windows. I also have a button on the hta to start Windows Explorer, but you could add anything you find…

  • Config Variable Equal to

    Funny how some things seem to fall through the cracks. When I first did a search on this no one seemed to be able to tell me how to do it. I eventually dug it up in a cfg file from an old build. 

    What I'm talking about if the ability to use '%if' over '%if defined' or '%if exists'. There are occasions where I want to trigger something if a variable equals a certain value.

    The way to do it is:

  • Tech Tip - Reset Styles

    It's a pet hate of mine. Users who think they can change fonts, colours etc to what ever they like in text and dimension styles. Well, if you're like me you have a standard set of styles that should be adhered to. If that's the case then there is another nice little addition to the autorun vb that you can use:

    CadInputQueue.SendCommand "dgnlib update textstyles"
    CadInputQueue.SendCommand "dgnlib…

  • Tech Tip - Config Loading

    A little one we'll go into detail on later, but if you want you have your cfg files load in a certain order from the one directory, then simply number them sequentially.

    ie. 10_folders
    70_<a surprise for later :-) >

    and so on. I always use multiples of 10 just in case I want to add another in between later :-)

  • The Build - Part 5 - All Aboard the cfg Ride - Running SS2 and SS3 as Separate Builds

    I've ended up having to go down this path as I have a client who asked for an AECOsim build added to what they already have running. Only issue is I need to have SS2 and Structural Modeller running as well on existing projects.

    Ran this through my head for a while and to be honest..... I cheated a bit :-)

    Bentley, in their infinite wisdom, have kept the version numbers the same between SS2 and SS3 so getting the single…

  • The Build - Part 4 - All Aboard the cfg Ride - Including Other Apps

    Now that we have the base to build from, how do we go about including other Bentley application as well as other apps from vendors like Axiom etc.? 

    Well, it's all about order, load and line order to be more precise. What we need to think through it whether an app is global (for all users), local (just for the office) or something that we need to be able to have overwritten or appended at the client or project level. this…

  • The Build - Part 3 - All Aboard the cfg Ride - Site cfg's

    Just a little addition to the cfg article yesterday.

    One for the options we looked at in our file:


    were the lines for including out 'site' cfg files:

    %if exists ($(SITE_STDS))
    %include $(SITE_STDS)*.cfg

    This area is set aside for each 'site' or office to use for including such things as printer name lists (used by standard apps), office discipline apps (not part of the global or company delivered…

  • The Build - Part 2 - All Aboard the cfg Ride

    As we get into the build configs, you'll start to see why the set up of the appl config is so important. Just to remind you, check out:


    As we do have a development build and a live build I do have a copy of each appl file kept in each build due to the different…

  • The Build - Part 1 - Standard Directories

    The hta is a great start point for any build, but what about the build itself? It's very important to put some time and effort into getting this right or you will end up with a mess that is hard to configure and even harder to maintain. The build I have now is an accumulation of 10 or so years work that I have tweaked and changed to better suit clients and my own thoughts. 

    As I have mentioned before in other articles…

  • How hta Changed the Way I Deliver Builds - Part 13 - Support Request Email

    Don't want to use Excel to have users create support requests. No stress, check out the tute below to create a link that opens up a blank email form:

    html - email links
    Creating an email link is simple. If you want people to mail you about your site, a good way to do it is place an email link with a subject line already filled out for them.

    HTML Email Link Code:
    <a href="mailto:email@tizag.com?subject=Feedback" >Email…

  • How hta Changed the Way I Deliver Builds - Part 12 - Excel Help and Change Requests

    I'm not a big fan of IT style Help Desk web sites where you have to log a call and wait for someone to contact you, if they do at all. I'm still a big fan of having the CAD Systems Group to be hands on and not a faceless entity. As such I've always preferred users call or email the support group direct, but there are times when you need more information for a help or change request. This is where I use some Excel files…

  • How hta Changed the Way I Deliver Builds - Part 11 - Multiple Software Install Locations

    For the next series of posts, download the hta example from:


    Up until new we've stay away from variable driven application and stayed with fixed paths to get familiar with what to do. The reality is often very different, especially if you are dealing with multiple office who are still doing their own thing. Don't get me…