Customization Blog Series: Keyboard Shortcuts

Keyboard shortcuts are another way of quickly accessing specific ribbon groups or tools. Based on the specific keys assigned, different tools, ribbon group pop-ups or pop-up menus display. These keys are the shortcuts to access the respective tools.

For example, the <Space> key invokes the default ribbon group pop-up which contains further shortcuts for different ribbon groups and tools. Some other examples of keyboard shortcuts are <Q> and <I> (mentioned in the previous blog) which open the quick tools menu. Some shortcuts have child shortcuts which invoke further tools. Like W, the keyboard shortcut for AccuDraw has child shortcuts A, C, E and so on for different AccuDraw rotations.

You can view the complete list of keyboard shortcuts in the view window by pressing F7. (See image below)

You can use the Keyboard Shortcuts dialog (File>Settings>User>Keyboard Shortcuts) to create and manage keyboard shortcuts. (See image below)

Existing keyboard shortcuts can be modified or deleted, and new keyboard shortcuts can be created in the Keyboard Shortcuts dialog. Changes to keyboard shortcuts are saved on an XML file. If you want to configure custom keyboard shortcuts and distribute across a team, then you can do so by configuring them on one machine and then copying the file to other machines.

In the previous blog on Designing a Ribbon Group Pop-up, we learnt how to create and assign a new keyboard shortcut to the newly created pop-up group. We will now see how we can edit an existing keyboard shortcut.

In the existing list of keyboard shortcuts let us change the shortcut Q for quick tools to J and add a child keyboard shortcut to it for Move Parallel tool.

  1. Open the Keyboard Shortcuts dialog (File>Settings>User>Keyboard Shortcuts).
  2. Double-click on ‘Q’ in the Key column and rename it to ‘J’.
  3. Press <Enter>.

    The shortcut changes to J.

  4. Now click the ‘+’ sign next to J.
  5. List of child shortcuts associated with Quick tools is displayed.

    We will add the Move Parallel tool to this list.

  6. Select the Add Child icon.
  7. In the Key column, enter the shortcut key ‘P’.
  8. In the Label column enter Move Parallel.
  9. In the Key-in column enter the key-in ‘move parallel offset’ and press <Enter>.
  10. Click Apply.
    The new child shortcut P is added for the tool Move Parallel. You can now test the new shortcuts. Watch the video below:

Similarly, you can customize any of the existing keyboard shortcuts.

To remove an existing shortcut, select the keyboard shortcut and click delete in the dialog or right-click on the keyboard shortcut and select delete from the pop-up menu.

Parents
  • In V8 and V8i there was the ability to have two character accudraw shortcuts. For example: typing "CC" would initiate the copy command, or typing "DD" for deleting elements, etc. For CONNECT, is there an ability to reintroduce this behavior for two character shortcut keystrokes?

  • Hi Matt,

    Yes, in MicroStation CONNECT Edition you can customize keyboard short cuts as per your design needs. Two-character shortcuts can be created by adding Child shortcut keys to an existing or newly created keyboard shortcut. For your examples, in CONNECT use Space+E or QE for Copy command and Space+U or QU for Delete element. Space invokes the ribbon group pop-up which has further shortcuts for tools and Q invokes the quick access menu which also displays shortcut keys to various tools. You can customize the ribbon group pop-up and keyboard shortcuts based on your needs. The above blog details the procedure to create custom keyboard shortcuts. You can also refer to the blogs on Designing a Ribbon Group Pop-up. Do let me know if you have further questions.

    Thank you.

  • Hi Smrutirehka,

    Thanks for responding to my original question. I do have a follow up question for you.

    Is there an option for disabling this "new" accudraw shortcut method in CONNECT, and allowing the old V8 and V8i version of shortcuts to be implemented? In other words, in V8 and V8i the shortcuts were read from a TXT file. This was an awesome feature particularly when combined with the ability to have the GUI focused by default to the accudraw tool (this setting was found under the Workspace\Preferences\Look and Feel, if memory serves me correctly). The TXT file was pretty simple and allowed single or two character shortcuts to be assigned to execute graphic tools and commands by using "keyin" commands. Again, this was an awesome feature and allowed me over time to develop a TXT file with over 250 shortcuts. Here is a sample for some of them.

    Enter "Smart Lock" "accudraw lock smart"
    Space "Choose Element" "choose none;update all;powerselector mode new;powerselector single;accudraw dialog main"
    ? "Show Shortcuts" "AccuDraw Dialog Shortcuts"
    A1 "Set Text Method" "vba run [SetTextMethod_V1]modMain.Initialize"
    A2 "Query Lines & Shapes" "vba run [QueryLinesAndShapes_V1]modMain.Initialize"
    A3 "Adjust 3D Text Label" "vba run [Adjust3DTextLabel_V1]modMain.Initialize"
    A4 "Edit Data Field" "edit single dialog"
    A5 "Move ACS" "move acs"
    A6 "Reset ACS Global" "dialog coordsys open;acs reset;dialog coordsys close"
    AA "Change Mode" "AccuDraw Mode"
    AB "Active ByLevel" "vba run [Miscellaneous_V1]modActiveByLevel.Main01"
    AC "ACS Plane Toggle" "lock acscontext toggle"
    AE "Analyze Element" "analyze element"
    AF "All Off Except" "levelmanager level offexceptelem"
    AG "Add Group" "lock ggroup on;group add"
    AL "Add Lock" "change lock"
    AN "All On" "vba run [Miscellaneous_V1]modLevelsAllOn.Main01"
    AR "Attach Reference" "attach reference"
    AS "Accudraw SC1" "vba run [AccuDraw_V1]modAccuDraw.SC2"
    AT "Active Text" "active text"
    AV "Apply Saved View" "namedview attach"
    AZ "Toggle ACS Triad" "vba run [ToggleView_V1]modMain.ToggleACSTriad"
    BB "Zoom Specific" "vba run [UpdateView_V1]Main_03"
    BF "Bring Front" "order element front"
    BL "Bearing Line" "label line"
    BS "By Station" "vba run [PlaceByStation_V1]modMain.Initialize"
    C3 "Calc 3D Slope" "vba run [Calc3DSlope_V1]modMain.Initialize"
    CA "Change Attributes" "dialog toolbox maintask on;dialog toolbox maintask off;change element extended"
    CC "Copy Element" "copy extended"
    CD "Change Direction" "change direction"

    Thanks,
    Matt

  • Hi Matt,

    Thank you for your question. We can understand your concern. Currently in MicoStation you cannot import keyboard shortcuts from earlier versions, but, we will file an enhancement for this which will be evaluated and you might have this functionality in future updates.

    Thanks,

    Smruti

  • Hi Smrutirehka,

    Is there any work-around that you or other Bentley software developers might suggest I investigate? For example, is there some way via VBA code or VB.net code that a custom program could be written that would "monitor" the characters that get typed into the Accudraw fields? Then this custom program could perhaps suspend/ignore the standard CONNECT keyboard shortcut events (i.e., the brand new method for Keyboard Shortcuts), and instead this custom program could execute my user-defined key-in commands that could be listed in the custom code, or perhaps read from a text file, etc.?

    Basically, I am just looking for a work-around even if it takes me some time to create a custom program on my own. So I would greatly appreciate any ideas or suggestions you or your colleagues could suggest that I explore.

    Thanks,
    Matt

Comment
  • Hi Smrutirehka,

    Is there any work-around that you or other Bentley software developers might suggest I investigate? For example, is there some way via VBA code or VB.net code that a custom program could be written that would "monitor" the characters that get typed into the Accudraw fields? Then this custom program could perhaps suspend/ignore the standard CONNECT keyboard shortcut events (i.e., the brand new method for Keyboard Shortcuts), and instead this custom program could execute my user-defined key-in commands that could be listed in the custom code, or perhaps read from a text file, etc.?

    Basically, I am just looking for a work-around even if it takes me some time to create a custom program on my own. So I would greatly appreciate any ideas or suggestions you or your colleagues could suggest that I explore.

    Thanks,
    Matt

Children
No Data