<?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>Exploring The Possibilities Of Properties [CS]</title><link>https://communities.bentley.com/products/projectwise/w/wiki/5531/exploring-the-possibilities-of-properties-cs</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>Exploring The Possibilities Of Properties [CS]</title><link>https://communities.bentley.com/products/projectwise/w/wiki/5531/exploring-the-possibilities-of-properties-cs</link><pubDate>Fri, 07 Oct 2022 19:26:30 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:c1c5bf3f-f3ef-4a85-8d38-a353e6e378bd</guid><dc:creator>Dana Guthrie</dc:creator><comments>https://communities.bentley.com/products/projectwise/w/wiki/5531/exploring-the-possibilities-of-properties-cs#comments</comments><description>Current Revision posted to ProjectWise Design Integration Wiki by Dana Guthrie on 10/7/2022 7:26:30 PM&lt;br /&gt;
&lt;div style="background-color:#ffffff;margin:8px;font-family:Arial, Helvetica, sans-serif;color:#000000;font-size:12px;"&gt;
&lt;p&gt;&lt;a href="http://selectservices.bentley.com/en-US"&gt;&lt;em&gt;&lt;img style="border-width:0px;" border="0" src="/Other/Old_Site_Files/Bentley_Folders/m/support/17560/download.aspx" width="175" height="56" alt=" " /&gt;&lt;/em&gt;&lt;/a&gt;&lt;br /&gt;&lt;em&gt;&lt;img style="border-width:0px;" border="0" src="/photos/elisa_mcgraws_photos/images/75772/original.aspx" width="175" alt=" " /&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/em&gt;&lt;em&gt;&lt;em&gt;&lt;/em&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;This Client Server article is republished in its entirety from 2003 for reference purposes.&lt;/strong&gt;&lt;/p&gt;
&lt;h1 style="font-size:2em;"&gt;Properties&amp;nbsp;&lt;/h1&gt;
&lt;p&gt;Have you ever wanted to store more information against a DGN file for use later? Is your manager finding it hard to locate files? Would you simply like an automated title block updater like ProjectWise (we call this last one ProjectWise envy)?&lt;/p&gt;
&lt;p&gt;The answer is at hand. The only prerequisites are:&lt;/p&gt;
&lt;p&gt;1) Files are stored on NTFS partitions&lt;/p&gt;
&lt;p&gt;2) Your client machines are Windows 2000 or later&lt;/p&gt;
&lt;p&gt;3) MicroStation V8&lt;/p&gt;
&lt;p&gt;Since Windows 2000 was released, some nice things have been added to NTFS. For example, with most files, right clicking and selecting Properties will yield a Summary and possibly even a Custom tab. These tabs allow you to use default fields or to create your own. In this article, you&amp;#39;ll learn to use some of these common fields and to create some of your own. Figure 1 displays a shot of the Properties dialog Summary tab.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img style="border-width:0px;" border="0" src="/resized-image.ashx/__size/550x0/__key/CommunityServer-Wikis-Components-Files/00-00-00-00-50/8182.seydler1_5F00_1203.jpg" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;You can also have these default values as columns in your detail view in Windows Explorer. Right click on the Heading row.&lt;/p&gt;
&lt;p&gt;Some of these properties are also available via the File&amp;gt;Properties menu inside MicroStation V8.&lt;/p&gt;
&lt;p&gt;Most of these will provide basic information. For creating user-defined attributes, we have the Custom tab.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img style="border-width:0px;" border="0" src="/resized-image.ashx/__size/550x0/__key/CommunityServer-Wikis-Components-Files/00-00-00-00-50/7585.seydler2_5F00_1203.jpg" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img style="border-width:0px;" border="0" src="/resized-image.ashx/__size/550x0/__key/CommunityServer-Wikis-Components-Files/00-00-00-00-50/6180.seydler3_5F00_1203.jpg" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;Don&amp;#39;t worry if you don&amp;#39;t have a Custom tab right now. After following the steps in this article, you certainly will have one.&lt;/p&gt;
&lt;p&gt;Adding information into the File Properties&amp;gt;Summary Tab or the MicroStations File&amp;gt;Properties menu is easy enough. Let&amp;#39;s take a look at how you might do this with some VBA code.&lt;/p&gt;
&lt;p&gt;Sub justStartingOut()&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;ActiveDesignFile.Author = &amp;quot;Ron&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;MsgBox ActiveDesignFile.Author&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;End Sub&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img style="border-width:0px;" border="0" src="/resized-image.ashx/__size/550x0/__key/CommunityServer-Wikis-Components-Files/00-00-00-00-50/4578.seydler4_5F00_1203.jpg" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img style="border-width:0px;" border="0" src="/resized-image.ashx/__size/550x0/__key/CommunityServer-Wikis-Components-Files/00-00-00-00-50/4666.seydler5_5F00_1203.jpg" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;If you close the design file after running the code, you&amp;#39;ll see this in the Summary tab (Figure 6):&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;img style="border-width:0px;" border="0" src="/resized-image.ashx/__size/550x0/__key/CommunityServer-Wikis-Components-Files/00-00-00-00-50/8738.seydler6_5F00_1203.jpg" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;The following are now available (using the above ActiveDesignFile object):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;.Author&lt;/li&gt;
&lt;li&gt;.Client&lt;/li&gt;
&lt;li&gt;.Comments&lt;/li&gt;
&lt;li&gt;.Company&lt;/li&gt;
&lt;li&gt;.Keywords&lt;/li&gt;
&lt;li&gt;.LastSavedBy&lt;/li&gt;
&lt;li&gt;.Manager&lt;/li&gt;
&lt;li&gt;.Subject&lt;/li&gt;
&lt;li&gt;.Title&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Not all of these properties correlate directly to the Summary tab, however. Some are also embedded in MicroStation itself:&lt;/p&gt;
&lt;p&gt;.Client will populate the category field in the summary tab.&lt;br /&gt;.Company will populate the properties in MicroStation only.&lt;br /&gt;.LastSavedBy will populate the properties in MicroStation only.&lt;br /&gt;.Manager will populate the properties in MicroStation only.&lt;/p&gt;
&lt;p&gt;You will need to determine what fields you will use to achieve your desired results. If you want as much information displayed as possible in the Windows Explorer Details view, you will use the following values, because all of them populate information into the Summary tab.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;.Author&lt;/li&gt;
&lt;li&gt;.Client&lt;/li&gt;
&lt;li&gt;.Comments&lt;/li&gt;
&lt;li&gt;.Keywords&lt;/li&gt;
&lt;li&gt;.Subject&lt;/li&gt;
&lt;li&gt;.Title&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;By using these fields, and displaying the extra columns in Windows Explorer, people who are not familiar with document-coded filenames can look through other values to find the design file relevant to them.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;You may have a program that needs to store information against a design file&lt;/p&gt;
&lt;p&gt;For example: you may have a VBA program that displays a Web page with as-built photos is based against a design file. Or, another example: perhaps Bentley Redline is installed on the desktop, and an excel spreadsheet displays information regarding the estimated performance of items in our design file (And you thought Bentley Redline was only good for markups!).&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;You can use engineering links to link the spreadsheet into a few elements. In order to do that, you would need to remember what elements are linked, or use the Show Engineering Links tool each time. Then you would need to format the link correctly, and then teach management how to use them.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Take a look at the spreadsheet example.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Creating a custom property in which to store some information requires nothing more than:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;ActiveDesignFile.SetCustomProperty &amp;quot;My custom property&amp;quot;, &amp;quot;value&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;In our example, it would look like:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;ActiveDesignFile.SetCustomProperty &amp;quot;Excel_Linkage&amp;quot;, &amp;quot;javascript:void(null);&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;This custom property will show up in the Custom tab, in the File Properties dialog (Figure 7).&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img style="border-width:0px;" border="0" src="/resized-image.ashx/__size/550x0/__key/CommunityServer-Wikis-Components-Files/00-00-00-00-50/1055.seydler7_5F00_1203.jpg" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;You can&amp;#39;t leave it at that, so you would just snip in some code to read that value and open Excel too. It might go something like:&lt;/p&gt;
&lt;p&gt;Sub getCustomPropAndOpenExcel()&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Dim oExcel As Object&lt;/p&gt;
&lt;p&gt;Set oExcel = CreateObject(&amp;quot;Excel.Application&amp;quot;)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If ActiveDesignFile.CustomPropertyExists(&amp;quot;Excel_Linkage&amp;quot;) Then&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;oExcel.Workbooks.Open ActiveDesignFile.GetCustomProperty(&amp;quot;Excel_Linkage&amp;quot;)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;oExcel.Visible = True&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Else&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;MsgBox &amp;quot;No linkage in this file&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Set oExcel = Nothing&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;End If&lt;/p&gt;
&lt;p&gt;End Sub&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;When you go to read a custom property value, you need to first check that it exists. Simple error checking should always be done when you write programs. Users should never have to deal with runtime errors.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If the value exists, get Excel to open the workbook, and show Excel on the screen.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If the custom value doesn&amp;#39;t exist, let the user know why nothing happened and close the Excel process.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Why not try using the properties of a DGN file to update a tag set in your title block design file or placed cell?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The example below hooks into a tag set called &amp;quot;TitleBlock&amp;quot; and a series of tags within that tag set. You can find this example tag set in the DGN files supplied in \Examples\Borders\ISO in the Workspace Projects directory.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Sub updateTitleblock()&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Dim ee As ElementEnumerator&lt;/p&gt;
&lt;p&gt;Dim sc As New ElementScanCriteria&lt;/p&gt;
&lt;p&gt;Dim eleTag As TagElement&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;sc.ExcludeAllTypes&lt;/p&gt;
&lt;p&gt;sc.IncludeType msdElementTypeTag&lt;/p&gt;
&lt;p&gt;Set ee = ActiveModelReference.Scan(sc)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Do While ee.MoveNext&lt;/p&gt;
&lt;p&gt;Set eleTag = ee.Current&lt;/p&gt;
&lt;p&gt;If eleTag.TagSetName = &amp;quot;TitleBlock&amp;quot; Then&lt;/p&gt;
&lt;p&gt;eleTag.Redraw msdDrawingModeErase&lt;/p&gt;
&lt;p&gt;Select Case eleTag.TagDefinitionName&lt;/p&gt;
&lt;p&gt;Case &amp;quot;Drawn&amp;quot;&lt;/p&gt;
&lt;p&gt;eleTag.Value = ActiveDesignFile.Author&lt;/p&gt;
&lt;p&gt;Case &amp;quot;DWG No&amp;quot;&lt;/p&gt;
&lt;p&gt;eleTag.Value = ActiveDesignFile.Name&lt;/p&gt;
&lt;p&gt;Case &amp;quot;Title&amp;quot;&lt;/p&gt;
&lt;p&gt;eleTag.Value = ActiveDesignFile.Title&lt;/p&gt;
&lt;p&gt;Case &amp;quot;Drawn Date&amp;quot;&lt;/p&gt;
&lt;p&gt;eleTag.Value = Date&lt;/p&gt;
&lt;p&gt;Case &amp;quot;Rev.&amp;quot;&lt;/p&gt;
&lt;p&gt;If ActiveDesignFile.CustomPropertyExists(&amp;quot;Rev.&amp;quot;) Then&lt;/p&gt;
&lt;p&gt;eleTag.Value = ActiveDesignFile.GetCustomProperty(&amp;quot;Rev.&amp;quot;)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;End If&lt;/p&gt;
&lt;p&gt;End Select&lt;/p&gt;
&lt;p&gt;eleTag.Redraw msdDrawingModeNormal&lt;/p&gt;
&lt;p&gt;eleTag.Rewrite&lt;/p&gt;
&lt;p&gt;End If&lt;/p&gt;
&lt;p&gt;Loop&lt;/p&gt;
&lt;p&gt;RedrawAllViews&lt;/p&gt;
&lt;p&gt;End Sub&lt;/p&gt;
&lt;p&gt;I hope you have already discovered a use for properties in your organization.&lt;/p&gt;
&lt;h1 style="font-size:2em;"&gt;See Also&lt;/h1&gt;
&lt;p&gt;&lt;a href="/Products/w/Products__Wiki/client-server-archive.aspx"&gt;Client Server Archive&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/Products/ProjectWise/w/ProjectWise__Wiki/projectwise-technotes-and-faqs.aspx"&gt;ProjectWise TechNotes And FAQs&lt;/a&gt;&lt;/p&gt;
&lt;h1 style="font-size:2em;"&gt;Comments or Corrections?&lt;/h1&gt;
&lt;p&gt;Bentley&amp;#39;s Technical Support Group requests that you please confine any comments you have on this Wiki entry to this &amp;quot;Comments or Corrections?&amp;quot; section. THANK YOU!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Original Author:&lt;/strong&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;Bentley Technical Support Group&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: ProjectWise SELECTsupport, client server&lt;/div&gt;
</description></item><item><title>Exploring The Possibilities Of Properties [CS]</title><link>https://communities.bentley.com/products/projectwise/w/wiki/5531/exploring-the-possibilities-of-properties-cs/revision/1</link><pubDate>Fri, 08 Jul 2011 14:58:49 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:c1c5bf3f-f3ef-4a85-8d38-a353e6e378bd</guid><dc:creator>Elisa McGraw</dc:creator><comments>https://communities.bentley.com/products/projectwise/w/wiki/5531/exploring-the-possibilities-of-properties-cs#comments</comments><description>Revision 1 posted to ProjectWise Design Integration Wiki by Elisa McGraw on 7/8/2011 2:58:49 PM&lt;br /&gt;
&lt;div style="background-color:#ffffff;margin:8px;font-family:Arial, Helvetica, sans-serif;color:#000000;font-size:12px;background-origin:initial;background-clip:initial;"&gt;
&lt;p&gt;&lt;a href="http://selectservices.bentley.com/en-US"&gt;&lt;em&gt;&lt;img style="border-width:0px;" border="0" src="/Other/Old_Site_Files/Bentley_Folders/m/support/17560/download.aspx" width="175" height="56" alt="" /&gt;&lt;/em&gt;&lt;/a&gt;&lt;br /&gt;&lt;em&gt;&lt;img style="border-width:0px;" border="0" src="/photos/elisa_mcgraws_photos/images/75772/original.aspx" width="175" alt="" /&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/em&gt;&lt;em&gt;&lt;em&gt;&lt;/em&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;This Client Server article is republished in its entirety from 2003 for reference purposes.&lt;/strong&gt;&lt;/p&gt;
&lt;h1 style="font-size:2em;"&gt;Properties&amp;nbsp;&lt;/h1&gt;
&lt;p&gt;Have you ever wanted to store more information against a DGN file for use later? Is your manager finding it hard to locate files? Would you simply like an automated title block updater like ProjectWise (we call this last one ProjectWise envy)?&lt;/p&gt;
&lt;p&gt;The answer is at hand. The only prerequisites are:&lt;/p&gt;
&lt;p&gt;1) Files are stored on NTFS partitions&lt;/p&gt;
&lt;p&gt;2) Your client machines are Windows 2000 or later&lt;/p&gt;
&lt;p&gt;3) MicroStation V8&lt;/p&gt;
&lt;p&gt;Since Windows 2000 was released, some nice things have been added to NTFS. For example, with most files, right clicking and selecting Properties will yield a Summary and possibly even a Custom tab. These tabs allow you to use default fields or to create your own. In this article, you&amp;#39;ll learn to use some of these common fields and to create some of your own. Figure 1 displays a shot of the Properties dialog Summary tab.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img style="border-width:0px;" border="0" src="/resized-image.ashx/__size/550x0/__key/CommunityServer-Wikis-Components-Files/00-00-00-00-50/8182.seydler1_5F00_1203.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;You can also have these default values as columns in your detail view in Windows Explorer. Right click on the Heading row.&lt;/p&gt;
&lt;p&gt;Some of these properties are also available via the File&amp;gt;Properties menu inside MicroStation V8.&lt;/p&gt;
&lt;p&gt;Most of these will provide basic information. For creating user-defined attributes, we have the Custom tab.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img style="border-width:0px;" border="0" src="/resized-image.ashx/__size/550x0/__key/CommunityServer-Wikis-Components-Files/00-00-00-00-50/7585.seydler2_5F00_1203.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img style="border-width:0px;" border="0" src="/resized-image.ashx/__size/550x0/__key/CommunityServer-Wikis-Components-Files/00-00-00-00-50/6180.seydler3_5F00_1203.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Don&amp;#39;t worry if you don&amp;#39;t have a Custom tab right now. After following the steps in this article, you certainly will have one.&lt;/p&gt;
&lt;p&gt;Adding information into the File Properties&amp;gt;Summary Tab or the MicroStations File&amp;gt;Properties menu is easy enough. Let&amp;#39;s take a look at how you might do this with some VBA code.&lt;/p&gt;
&lt;p&gt;Sub justStartingOut()&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;ActiveDesignFile.Author = &amp;quot;Ron&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;MsgBox ActiveDesignFile.Author&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;End Sub&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img style="border-width:0px;" border="0" src="/resized-image.ashx/__size/550x0/__key/CommunityServer-Wikis-Components-Files/00-00-00-00-50/4578.seydler4_5F00_1203.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img style="border-width:0px;" border="0" src="/resized-image.ashx/__size/550x0/__key/CommunityServer-Wikis-Components-Files/00-00-00-00-50/4666.seydler5_5F00_1203.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;If you close the design file after running the code, you&amp;#39;ll see this in the Summary tab (Figure 6):&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;img style="border-width:0px;" border="0" src="/resized-image.ashx/__size/550x0/__key/CommunityServer-Wikis-Components-Files/00-00-00-00-50/8738.seydler6_5F00_1203.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;The following are now available (using the above ActiveDesignFile object):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;.Author&lt;/li&gt;
&lt;li&gt;.Client&lt;/li&gt;
&lt;li&gt;.Comments&lt;/li&gt;
&lt;li&gt;.Company&lt;/li&gt;
&lt;li&gt;.Keywords&lt;/li&gt;
&lt;li&gt;.LastSavedBy&lt;/li&gt;
&lt;li&gt;.Manager&lt;/li&gt;
&lt;li&gt;.Subject&lt;/li&gt;
&lt;li&gt;.Title&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Not all of these properties correlate directly to the Summary tab, however. Some are also embedded in MicroStation itself:&lt;/p&gt;
&lt;p&gt;.Client will populate the category field in the summary tab.&lt;br /&gt;.Company will populate the properties in MicroStation only.&lt;br /&gt;.LastSavedBy will populate the properties in MicroStation only.&lt;br /&gt;.Manager will populate the properties in MicroStation only.&lt;/p&gt;
&lt;p&gt;You will need to determine what fields you will use to achieve your desired results. If you want as much information displayed as possible in the Windows Explorer Details view, you will use the following values, because all of them populate information into the Summary tab.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;.Author&lt;/li&gt;
&lt;li&gt;.Client&lt;/li&gt;
&lt;li&gt;.Comments&lt;/li&gt;
&lt;li&gt;.Keywords&lt;/li&gt;
&lt;li&gt;.Subject&lt;/li&gt;
&lt;li&gt;.Title&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;By using these fields, and displaying the extra columns in Windows Explorer, people who are not familiar with document-coded filenames can look through other values to find the design file relevant to them.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;You may have a program that needs to store information against a design file&lt;/p&gt;
&lt;p&gt;For example: you may have a VBA program that displays a Web page with as-built photos is based against a design file. Or, another example: perhaps Bentley Redline is installed on the desktop, and an excel spreadsheet displays information regarding the estimated performance of items in our design file (And you thought Bentley Redline was only good for markups!).&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;You can use engineering links to link the spreadsheet into a few elements. In order to do that, you would need to remember what elements are linked, or use the Show Engineering Links tool each time. Then you would need to format the link correctly, and then teach management how to use them.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Take a look at the spreadsheet example.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Creating a custom property in which to store some information requires nothing more than:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;ActiveDesignFile.SetCustomProperty &amp;quot;My custom property&amp;quot;, &amp;quot;value&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;In our example, it would look like:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;ActiveDesignFile.SetCustomProperty &amp;quot;Excel_Linkage&amp;quot;, &amp;quot;BLOCKED SCRIPTvoid(null);&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;This custom property will show up in the Custom tab, in the File Properties dialog (Figure 7).&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img style="border-width:0px;" border="0" src="/resized-image.ashx/__size/550x0/__key/CommunityServer-Wikis-Components-Files/00-00-00-00-50/1055.seydler7_5F00_1203.jpg" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;You can&amp;#39;t leave it at that, so you would just snip in some code to read that value and open Excel too. It might go something like:&lt;/p&gt;
&lt;p&gt;Sub getCustomPropAndOpenExcel()&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Dim oExcel As Object&lt;/p&gt;
&lt;p&gt;Set oExcel = CreateObject(&amp;quot;Excel.Application&amp;quot;)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If ActiveDesignFile.CustomPropertyExists(&amp;quot;Excel_Linkage&amp;quot;) Then&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;oExcel.Workbooks.Open ActiveDesignFile.GetCustomProperty(&amp;quot;Excel_Linkage&amp;quot;)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;oExcel.Visible = True&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Else&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;MsgBox &amp;quot;No linkage in this file&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Set oExcel = Nothing&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;End If&lt;/p&gt;
&lt;p&gt;End Sub&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;When you go to read a custom property value, you need to first check that it exists. Simple error checking should always be done when you write programs. Users should never have to deal with runtime errors.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If the value exists, get Excel to open the workbook, and show Excel on the screen.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If the custom value doesn&amp;#39;t exist, let the user know why nothing happened and close the Excel process.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Why not try using the properties of a DGN file to update a tag set in your title block design file or placed cell?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The example below hooks into a tag set called &amp;quot;TitleBlock&amp;quot; and a series of tags within that tag set. You can find this example tag set in the DGN files supplied in \Examples\Borders\ISO in the Workspace Projects directory.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Sub updateTitleblock()&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Dim ee As ElementEnumerator&lt;/p&gt;
&lt;p&gt;Dim sc As New ElementScanCriteria&lt;/p&gt;
&lt;p&gt;Dim eleTag As TagElement&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;sc.ExcludeAllTypes&lt;/p&gt;
&lt;p&gt;sc.IncludeType msdElementTypeTag&lt;/p&gt;
&lt;p&gt;Set ee = ActiveModelReference.Scan(sc)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Do While ee.MoveNext&lt;/p&gt;
&lt;p&gt;Set eleTag = ee.Current&lt;/p&gt;
&lt;p&gt;If eleTag.TagSetName = &amp;quot;TitleBlock&amp;quot; Then&lt;/p&gt;
&lt;p&gt;eleTag.Redraw msdDrawingModeErase&lt;/p&gt;
&lt;p&gt;Select Case eleTag.TagDefinitionName&lt;/p&gt;
&lt;p&gt;Case &amp;quot;Drawn&amp;quot;&lt;/p&gt;
&lt;p&gt;eleTag.Value = ActiveDesignFile.Author&lt;/p&gt;
&lt;p&gt;Case &amp;quot;DWG No&amp;quot;&lt;/p&gt;
&lt;p&gt;eleTag.Value = ActiveDesignFile.Name&lt;/p&gt;
&lt;p&gt;Case &amp;quot;Title&amp;quot;&lt;/p&gt;
&lt;p&gt;eleTag.Value = ActiveDesignFile.Title&lt;/p&gt;
&lt;p&gt;Case &amp;quot;Drawn Date&amp;quot;&lt;/p&gt;
&lt;p&gt;eleTag.Value = Date&lt;/p&gt;
&lt;p&gt;Case &amp;quot;Rev.&amp;quot;&lt;/p&gt;
&lt;p&gt;If ActiveDesignFile.CustomPropertyExists(&amp;quot;Rev.&amp;quot;) Then&lt;/p&gt;
&lt;p&gt;eleTag.Value = ActiveDesignFile.GetCustomProperty(&amp;quot;Rev.&amp;quot;)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;End If&lt;/p&gt;
&lt;p&gt;End Select&lt;/p&gt;
&lt;p&gt;eleTag.Redraw msdDrawingModeNormal&lt;/p&gt;
&lt;p&gt;eleTag.Rewrite&lt;/p&gt;
&lt;p&gt;End If&lt;/p&gt;
&lt;p&gt;Loop&lt;/p&gt;
&lt;p&gt;RedrawAllViews&lt;/p&gt;
&lt;p&gt;End Sub&lt;/p&gt;
&lt;p&gt;I hope you have already discovered a use for properties in your organization.&lt;/p&gt;
&lt;h1 style="font-size:2em;"&gt;See Also&lt;/h1&gt;
&lt;p&gt;&lt;a href="/Products/w/Products__Wiki/client-server-archive.aspx"&gt;Client Server Archive&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/Products/ProjectWise/w/ProjectWise__Wiki/projectwise-technotes-and-faqs.aspx"&gt;ProjectWise TechNotes And FAQs&lt;/a&gt;&lt;/p&gt;
&lt;h1 style="font-size:2em;"&gt;Comments or Corrections?&lt;/h1&gt;
&lt;p&gt;Bentley&amp;#39;s Technical Support Group requests that you please confine any comments you have on this Wiki entry to this &amp;quot;Comments or Corrections?&amp;quot; section. THANK YOU!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Original Author:&lt;/strong&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;Bentley Technical Support Group&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: ProjectWise SELECTsupport, client server&lt;/div&gt;
</description></item></channel></rss>