<?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/"><channel><title>JJ Wutt's Activities</title><link>https://communities.bentley.com/members/da22d8b8_2d00_bf7a_2d00_4dec_2d00_b131_2d00_59c7745d3f76</link><description>JJ Wutt's recent activity</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>[V8i VBA] Open Next .dgn file</title><link>https://communities.bentley.com/products/programming/microstation_programming/f/microstation-programming---forum/102062/v8i-vba-open-next-dgn-file</link><pubDate>Wed, 22 Oct 2014 22:29:14 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:1a002017-d532-45da-a0f3-192278c13233</guid><dc:creator>JJ Wutt</dc:creator><description>&lt;p&gt;I have created a VBA macro (code below) that opens the next .dgn file in the current folder. I created a custom tool and I run it from there. I created another, similar, macro that opens the &amp;quot;previous&amp;quot; drawing (not the previously opened dgn). It works, but I&amp;#39;m a novice at programming and I wonder if the code could be streamlined (better organized?) or if there is anything that I might have missed that will cause unexpected results. Any thoughts or comments would be appreciated. Thanks.&lt;/p&gt;
&lt;pre class="brush: vb; fontsize: 100; first-line: 1; "&gt;Sub OpenNextDgn()
&amp;#39;if Compile error = &amp;quot;User-defined type not defined&amp;quot;
&amp;#39;requires &amp;quot;MicroSoft Scripting Runtime&amp;quot; reference  (Tools&amp;gt; References)

On Error GoTo ErrorHandler

ShowCommand &amp;quot;OpenNextDgn&amp;quot;

Dim oFileSystem As Scripting.FileSystemObject
Set oFileSystem = New Scripting.FileSystemObject
Dim oFolder As Scripting.Folder
Set oFolder = oFileSystem.GetFolder(ActiveDesignFile.Path)

Dim DgnFiles() As String &amp;#39;option base 1
Dim ArrayEmpty As Boolean
ArrayEmpty = True
Dim oFile As Scripting.File
For Each oFile In oFolder.Files
  If Right(oFile.Name, 3) = &amp;quot;dgn&amp;quot; Then
    If ArrayEmpty Then
      ReDim DgnFiles(1 To 1) As String
      DgnFiles(1) = oFile.Name
      ArrayEmpty = False
    Else
      ReDim Preserve DgnFiles(1 To UBound(DgnFiles) + 1) As String
      DgnFiles(UBound(DgnFiles)) = oFile.Name
    End If
  End If
Next oFile

If UBound(DgnFiles) = 1 Then
  ShowPrompt &amp;quot;This is the only .dgn file in current folder&amp;quot;
  End
ElseIf UBound(DgnFiles) &amp;gt; 1 Then
  Dim i As Integer
  Dim myCount As Integer
  For i = 1 To UBound(DgnFiles)
    myCount = myCount + 1
    If DgnFiles(i) = ActiveDesignFile.Name Then
      Dim ActiveCount As Integer
      ActiveCount = myCount
      Dim NextCount As Integer
      NextCount = ActiveCount + 1
      Exit For
    End If
  Next i
  
  If NextCount &amp;gt; UBound(DgnFiles) Then
    ShowPrompt &amp;quot;This is the last .dgn file in current folder&amp;quot;
    End
  Else
    myCount = 0 &amp;#39;reset
    For i = 1 To UBound(DgnFiles)
      myCount = myCount + 1
      If myCount = NextCount Then
        Application.OpenDesignFile DgnFiles(i), False, msdV7ActionUpgradeToV8
        CommandState.StartDefaultCommand
        Exit For
      End If
    Next i
  End If
End If

Exit Sub

ErrorHandler:
  MsgBox Err.Description
  ShowCommand &amp;quot;OpenNextDgn&amp;quot;
  ShowPrompt &amp;quot;Error-macro failed&amp;quot;

End Sub&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>[V8i - VBA] Remove Enter Data Field</title><link>https://communities.bentley.com/products/programming/microstation_programming/f/microstation-programming---forum/94648/v8i---vba-remove-enter-data-field</link><pubDate>Fri, 14 Feb 2014 00:29:51 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:d3d005d7-07d5-4d93-b7bc-bd6460b0374f</guid><dc:creator>JJ Wutt</dc:creator><description>&lt;p&gt;It would be nice if there was a tool to convert EDF. Would be more efficient than manual edit copy/paste. I might take a crack at it with VBA.&lt;/p&gt;
&lt;p&gt;Thanks again!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Create custom keyboard shortcut? (Redo = Ctrl+Y)</title><link>https://communities.bentley.com/products/microstation/f/microstation-forum/108980/create-custom-keyboard-shortcut-redo-ctrl-y</link><pubDate>Mon, 20 Jul 2015 18:51:32 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:bbba9196-913a-48b1-9d2a-8f29323c47ab</guid><dc:creator>JJ Wutt</dc:creator><description>&lt;p&gt;Is it possible to create a custom keyboard shortcut in MicroStation that will perform a Redo command using Ctrl+Y?&lt;/p&gt;
&lt;p&gt;I recently purchased a gaming mouse with programmable buttons and I have already assigned Undo (Ctrl+Z) and Redo (Ctrl+Y) to some buttons. Ctrl+Y appears to be the Windows standard for Redo. I might be able to program a button to achieve Redo with Ctrl+R (as required by MicroStation), but I would prefer a single button for the operation in all programs.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>V8i VBA text wrapping</title><link>https://communities.bentley.com/products/programming/microstation_programming/f/microstation-programming---forum/100251/v8i-vba-text-wrapping</link><pubDate>Wed, 20 Aug 2014 02:17:04 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:0124a22a-d281-40ec-89e6-ddbac0325677</guid><dc:creator>JJ Wutt</dc:creator><description>&lt;p&gt;I&amp;#39;m trying to find a way to add text nodes that will wrap based on a specified line length using VBA. I would also like to preserve the ability to use handles to manually decrease the text wrapping (i.e. make text lines longer), so I don&amp;#39;t want to split the string into multiple parts and add multiple lines because this will only allow you to increase the wrapping (make lines shorter). I have tried using &lt;strong&gt;ActiveSettings.TextStyle.NodeLineLength&lt;/strong&gt;&amp;nbsp;which appears to have no effect (intentionally commented out below), and&amp;nbsp;&lt;strong&gt;oNode.LineLength&lt;/strong&gt; which causes every word to be wrapped and then will not allow the text wrap to be decreased beyond the linelength using handles. Is there some other way? Here is some code I have been using as a test. Sorry, I don&amp;#39;t know how to post code so it looks right.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;

Sub TextNodeWrapTest()
 Dim oNode As TextNodeElement

 With ActiveSettings.TextStyle
  .Width = 1
  .Height = 1
  .NodeJustification = msdTextJustificationLeftTop
 &amp;#39;.NodeLineLength = 10
  .NodeLineSpacing = 1
  .NodeLineSpacingType = msdTextNodeLineSpacingTypeExact
 End With

 Set oNode = CreateTextNodeElement1(Nothing, Point3dFromXYZ(0, 0, 0), Matrix3dIdentity)
 oNode.AddTextLine &amp;quot;THIS IS A STRING OF TEXT THAT I WANT TO WRAP&amp;quot;
 oNode.LineLength = 15
 ActiveModelReference.AddElement oNode

&amp;#39;Debug.Print &amp;quot;NodeLineLength = &amp;quot; &amp;amp; ActiveSettings.TextStyle.NodeLineLength
 Debug.Print &amp;quot;LineLength = &amp;quot; &amp;amp; oNode.LineLength

End Sub


&lt;/code&gt;
&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>V8i - modify Standard tool box?</title><link>https://communities.bentley.com/products/administration/f/product-administration-forum/95175/v8i---modify-standard-tool-box</link><pubDate>Wed, 05 Mar 2014 00:10:42 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:a79946ed-47dc-4323-8e16-3bdfbe4c33e6</guid><dc:creator>JJ Wutt</dc:creator><description>&lt;p&gt;I would like to add a custom tool to the Standard tool box.&amp;nbsp;I know how to make custom tools/boxes, but is it possible to customize MicroStation&amp;#39;s &amp;quot;Application Tools&amp;quot; tool boxes?&lt;/p&gt;
&lt;p&gt;I have created my own custom Standard tool box, which is a copy of all the tools from that Standard tool box plus my custom tools, but now the status bar prompts (bottom left corner) for standard tools like NEW (create drawing) change from &amp;quot;Create Design File&amp;quot; to &amp;quot;Custom Tool&amp;quot; and I would prefer the original prompts. Perhaps there is a key-in to update the prompt?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>V8i - convert Enter Data Field to text?</title><link>https://communities.bentley.com/products/microstation/f/microstation-forum/94634/v8i---convert-enter-data-field-to-text</link><pubDate>Thu, 13 Feb 2014 16:45:09 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:b0666ec6-00d4-4661-a460-cce405129ec4</guid><dc:creator>JJ Wutt</dc:creator><description>&lt;p&gt;Still adjusting to V8i...&lt;/p&gt;
&lt;p&gt;With V8 you could remove Enter Data Fields by editing text and removing the &amp;lt;&amp;lt; &amp;gt;&amp;gt; surrounding the text. How do you manually convert an EDF to normal text in V8i? Can it be done?&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve searched and searched and can&amp;#39;t find a way to do this.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>V8i midpoint handles?</title><link>https://communities.bentley.com/products/microstation/f/microstation-forum/94590/v8i-midpoint-handles</link><pubDate>Wed, 12 Feb 2014 16:45:15 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:38c9aa81-cbb7-4d8c-a66c-68f0be3e18b7</guid><dc:creator>JJ Wutt</dc:creator><description>&lt;p&gt;Recently switched from V8 to V8i&amp;nbsp;and it appears that V8i does not provide midpoint handles for rectangles anymore?&lt;/p&gt;
&lt;p&gt;With V8 you could select a rectangle, click it again, and you would get handles for the midpoints that would allow you to resize that edge of the rectangle. This was very useful to me. But it appears that the only handles available with V8i are the corners of the rectangle. Is that capability just gone now? Or is there a setting somewhere?&lt;/p&gt;
&lt;p&gt;The attached image is an generic example. What I want to do is modify the rectangle so that the midpoint of the right edge is on the radius of the circle (creating a square). There used to be a handle about where the mouse pointer is that I could click, drag, and snap to the circle and be done. I really hope there is still a way to do this.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>[V8i VBA] Text node rewrite error - changing level &amp;amp; color</title><link>https://communities.bentley.com/products/programming/microstation_programming/f/microstation-programming---forum/94078/v8i-vba-text-node-rewrite-error---changing-level-color</link><pubDate>Tue, 21 Jan 2014 21:39:58 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:a8fdcb03-1eb1-4f87-ba76-fa15a1d5eaa0</guid><dc:creator>JJ Wutt</dc:creator><description>&lt;p&gt;When I run the code below I get an error when attempting to rewrite one specific text node element in the attached file. This does not happen for all of the other text nodes, and I can&amp;#39;t figure out how this one text node is any different than the rest. Another strange thing is that the error does not happen in V8, only in V8i. Any ideas? Help!&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Sub ChangeTranslatedElementLevelAndColor()&lt;/code&gt;&lt;code&gt;Dim TranslatedElement As Element&lt;br /&gt;Dim TranslatedTextE As TextElement&lt;br /&gt;Dim TranslatedNode As TextNodeElement&lt;br /&gt;Dim NodeEE As ElementEnumerator&lt;br /&gt;Dim EnglishColor As Long&lt;br /&gt;Dim VersionTest As String&lt;br /&gt;Dim oEnglishLevel As Level&lt;br /&gt;Dim EE As ElementEnumerator&lt;br /&gt;Dim oCriteria As ElementScanCriteria&lt;/code&gt;&lt;code&gt;Set oCriteria = Nothing&lt;br /&gt; Set oCriteria = New ElementScanCriteria&lt;br /&gt; &lt;br /&gt; With oCriteria&lt;br /&gt; .ExcludeAllTypes&lt;br /&gt; .IncludeType msdElementTypeText&lt;br /&gt; .IncludeType msdElementTypeTextNode&lt;br /&gt; .IncludeOnlyVisible&lt;br /&gt; .ExcludeAllClasses&lt;br /&gt; .IncludeClass msdElementClassPrimary&lt;br /&gt; .IncludeClass msdElementClassDimension&lt;br /&gt; End With&lt;br /&gt; &lt;br /&gt; Set EE = ActiveModelReference.Scan(oCriteria)&lt;br /&gt; Do Until EE.MoveNext = False&lt;/code&gt;&lt;code&gt;&amp;#39;define English Level&lt;br /&gt; Set oEnglishLevel = ActiveDesignFile.Levels(&amp;quot;English Translation&amp;quot;)&lt;br /&gt; &amp;#39;define color&lt;br /&gt; EnglishColor = ActiveDesignFile.ExtractColorTable.FindClosestColor(RGB(128, 255, 255))&lt;/code&gt;&lt;code&gt;&amp;#39;MicroStation V8 requires adjustment to&lt;br /&gt; &amp;#39;color number to get the correct color&lt;br /&gt; VersionTest = Application.Version&lt;br /&gt; If Left$(VersionTest, 13) = &amp;quot;Version 08.05&amp;quot; Then&lt;br /&gt; EnglishColor = EnglishColor - 1&lt;br /&gt; End If&lt;/code&gt;&lt;code&gt;&amp;#39;change level and color of text element&lt;br /&gt; If EE.Current.IsTextElement Then&lt;br /&gt; Set TranslatedTextE = EE.Current&lt;br /&gt; With TranslatedTextE&lt;br /&gt; .Level = oEnglishLevel&lt;br /&gt; .Color = EnglishColor&lt;br /&gt; .Rewrite&lt;br /&gt; .Redraw&lt;br /&gt; End With&lt;br /&gt; End If&lt;br /&gt; &lt;br /&gt; &amp;#39;change level and color of text node&lt;br /&gt; If EE.Current.IsTextNodeElement Then&lt;br /&gt; Set TranslatedNode = EE.Current&lt;br /&gt; &amp;#39;change each text element within the text node&lt;br /&gt; Set NodeEE = TranslatedNode.GetSubElements&lt;br /&gt; Do While NodeEE.MoveNext&lt;br /&gt; Set TranslatedTextE = NodeEE.Current&lt;br /&gt; With TranslatedTextE&lt;br /&gt; .Level = oEnglishLevel&lt;br /&gt; .Color = EnglishColor&lt;br /&gt; .Rewrite&lt;br /&gt; .Redraw&lt;br /&gt; End With&lt;br /&gt; Loop&lt;br /&gt; &lt;br /&gt; &amp;#39;change level and color of text node element&lt;br /&gt; Set TranslatedElement = TranslatedNode&lt;br /&gt; With TranslatedElement&lt;br /&gt; .Level = oEnglishLevel&lt;br /&gt; .Color = 23&lt;br /&gt; .Rewrite&lt;br /&gt; .Redraw&lt;br /&gt; End With&lt;br /&gt; End If&lt;br /&gt; Loop&lt;br /&gt;End Sub&lt;/code&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>