Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
draftsight / opt / dassault-systemes / DraftSight / APISDK / Create_and_Remove_Dictionaries_Example_VBNET.htm
Size: Mime:
<html>

<head>
<title>Create and Remove Dictionaries Example (VB.NET)</title>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<link rel="stylesheet" type="text/css" href="ApiHelp.css">
<meta name=MS-HKWD content="VB.NET examples">
<meta name=MS-HKWD content="VB.NET examples,dictionaries">
<meta name=MS-HKWD content="VB.NET examples,extension dictionaries">
<meta name=MS-HKWD content="VB.NET examples,XRecords">

</head>


<body>
<h1> Create and Remove Dictionaries Example (VB.NET)</h1>
<p>This example shows how to create and release dictionaries.</p>
<pre style="font-family: Consolas; font-size: 13; color: black; background: white"><span style="color:green;">'--------------------------------------------------------------</span>
<span style="color:green;">'&nbsp;Preconditions:</span>
<span style="color:green;">'&nbsp;1.&nbsp;&nbsp;Create&nbsp;a&nbsp;VB.NET&nbsp;Windows&nbsp;console&nbsp;project.</span>
<span style="color:green;">'&nbsp;2.&nbsp;&nbsp;Copy&nbsp;and&nbsp;paste&nbsp;this&nbsp;example&nbsp;into&nbsp;the&nbsp;VB.NET&nbsp;IDE.</span>
<span style="color:green;">'&nbsp;3.&nbsp;&nbsp;Add&nbsp;a&nbsp;reference&nbsp;to:</span>
<span style="color:green;">'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i>install_dir</i>\<b>APISDK\tlb\DraftSight.Interop.dsAutomation.dll</b>.</span>
<span style="color:green;">'&nbsp;4.&nbsp;&nbsp;Start&nbsp;DraftSight&nbsp;and&nbsp;open&nbsp;a&nbsp;document.</span>
<span style="color:green;">'&nbsp;5.&nbsp;&nbsp;Start&nbsp;debugging&nbsp;the&nbsp;project.</span>
<span style="color:green;">'</span>
<span style="color:green;">'&nbsp;Postconditions:&nbsp;</span>
<span style="color:green;">'&nbsp;1.&nbsp;&nbsp;Constructs&nbsp;a&nbsp;Circle.&nbsp;</span>
<span style="color:green;">'&nbsp;2.&nbsp;&nbsp;Gets&nbsp;the&nbsp;root&nbsp;dictionary&nbsp;of&nbsp;the&nbsp;document.</span>
<span style="color:green;">'&nbsp;3.&nbsp;&nbsp;Gets&nbsp;the&nbsp;existing&nbsp;table-style&nbsp;dictionary of the document.</span>
<span style="color:green;">'&nbsp;4.&nbsp;&nbsp;Gets&nbsp;the&nbsp;active&nbsp;style&nbsp;in&nbsp;the&nbsp;table-style&nbsp;dictionary&nbsp;and</span>
<span style="color:green;">'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prints&nbsp;the&nbsp;style type&nbsp;to&nbsp;the&nbsp;command&nbsp;window.</span>
<span style="color:green;">'&nbsp;5.&nbsp;&nbsp;Creates&nbsp;a&nbsp;dictionary&nbsp;in&nbsp;the&nbsp;root&nbsp;dictionary&nbsp;called&nbsp;<b>Our_Dict</b></span>
<span style="color:green;">'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;and&nbsp;prints&nbsp;the&nbsp;name&nbsp;of&nbsp;the&nbsp;dictionary&nbsp;to&nbsp;the&nbsp;command&nbsp;window.</span>
<span style="color:green;">'&nbsp;6.&nbsp;&nbsp;Adds&nbsp;an&nbsp;XRecord&nbsp;entry&nbsp;to&nbsp;<b>Out_Dict</b>&nbsp;dictionary&nbsp;and&nbsp;prints</span>
<span style="color:green;">'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;name&nbsp;of&nbsp;the&nbsp;XRecord&nbsp;to&nbsp;the&nbsp;command&nbsp;window.</span>
<span style="color:green;">'&nbsp;7.&nbsp;&nbsp;Creates&nbsp;an&nbsp;extension&nbsp;dictionary&nbsp;for&nbsp;the&nbsp;Circle.</span>
<span style="color:green;">'&nbsp;8.&nbsp;&nbsp;Adds&nbsp;XRecord&nbsp;entries&nbsp;to&nbsp;the&nbsp;Circle's&nbsp;extension&nbsp;dictionary.</span>
<span style="color:green;">'&nbsp;9.&nbsp;&nbsp;Reads&nbsp;the&nbsp;XRecord&nbsp;entries&nbsp;in&nbsp;the&nbsp;Circle's&nbsp;extension&nbsp;dictionary</span>
<span style="color:green;">'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;and&nbsp;prints&nbsp;their&nbsp;data&nbsp;to&nbsp;the&nbsp;command&nbsp;window.</span>
<span style="color:green;">'&nbsp;10.&nbsp;Removes&nbsp;the&nbsp;XRecord&nbsp;entries&nbsp;from&nbsp;the&nbsp;Circle's&nbsp;extension&nbsp;dictionary.</span>
<span style="color:green;">'&nbsp;11.&nbsp;Releases&nbsp;and&nbsp;erases&nbsp;the&nbsp;Circle's&nbsp;extension&nbsp;dictionary&nbsp;and&nbsp;prints</span>
<span style="color:green;">'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;confirmation&nbsp;to&nbsp;the&nbsp;command&nbsp;window.</span>
<span style="color:green;">'----------------------------------------------------------------</span>
 
<span style="color:blue;">Imports</span>&nbsp;DraftSight.Interop.dsAutomation
<span style="color:blue;">Imports</span>&nbsp;System.Runtime.InteropServices
 
<span style="color:blue;">Module</span>&nbsp;<span style="color:#2b91af;">Module1</span>
 
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Sub</span>&nbsp;Main()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Dim</span>&nbsp;dsApp&nbsp;<span style="color:blue;">As</span>&nbsp;<span style="color:#2b91af;">Application</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Dim</span>&nbsp;dsDoc&nbsp;<span style="color:blue;">As</span>&nbsp;<span style="color:#2b91af;">Document</span>
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">'Connect&nbsp;to&nbsp;DraftSight&nbsp;application</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dsApp&nbsp;=&nbsp;GetObject(,&nbsp;<span style="color:#a31515;">&quot;DraftSight.Application&quot;</span>)
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">'&nbsp;Abort&nbsp;any&nbsp;command&nbsp;currently&nbsp;running&nbsp;in&nbsp;DraftSight&nbsp;to&nbsp;avoid&nbsp;nested&nbsp;commands</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dsApp.<b>AbortRunningCommand</b>()
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">If</span>&nbsp;dsApp&nbsp;<span style="color:blue;">Is</span>&nbsp;<span style="color:blue;">Nothing</span>&nbsp;<span style="color:blue;">Then</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Return</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">End</span>&nbsp;<span style="color:blue;">If</span>
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">'Get&nbsp;active&nbsp;document</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dsDoc&nbsp;=&nbsp;dsApp.<b>GetActiveDocument</b>()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">If</span>&nbsp;dsDoc&nbsp;<span style="color:blue;">Is</span>&nbsp;<span style="color:blue;">Nothing</span>&nbsp;<span style="color:blue;">Then</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MsgBox(<span style="color:#a31515;">&quot;There&nbsp;are&nbsp;no&nbsp;open&nbsp;documents&nbsp;in&nbsp;DraftSight.&quot;</span>)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Return</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">End</span>&nbsp;<span style="color:blue;">If</span>
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">'Get&nbsp;command&nbsp;message</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Dim</span>&nbsp;dsCmdMsg&nbsp;<span style="color:blue;">As</span>&nbsp;<span style="color:#2b91af;">CommandMessage</span>&nbsp;=&nbsp;dsApp.<b>GetCommandMessage</b>()
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">'Construct&nbsp;Circle</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Dim</span>&nbsp;dsModel&nbsp;<span style="color:blue;">As</span>&nbsp;<span style="color:#2b91af;">Model</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Dim</span>&nbsp;dsSketchMgr&nbsp;<span style="color:blue;">As</span>&nbsp;<span style="color:#2b91af;">SketchManager</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dsModel&nbsp;=&nbsp;dsDoc.<b>GetModel</b>()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dsSketchMgr&nbsp;=&nbsp;dsModel.<b>GetSketchManager</b>()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Dim</span>&nbsp;dsCircle&nbsp;<span style="color:blue;">As</span>&nbsp;<span style="color:#2b91af;">Circle</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dsCircle&nbsp;=&nbsp;dsSketchMgr.<b>InsertCircle</b>(5,&nbsp;5,&nbsp;0,&nbsp;10)
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">'Get&nbsp;drawing's&nbsp;root&nbsp;dictionary</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Dim</span>&nbsp;dsRootDict&nbsp;<span style="color:blue;">As</span>&nbsp;<span style="color:#2b91af;">Dictionary</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dsRootDict&nbsp;=&nbsp;dsDoc.<b>GetNamedObjectsDictionary</b>()
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">'&nbsp;Get&nbsp;an&nbsp;existing&nbsp;dictionary&nbsp;(e.g.,&nbsp;each&nbsp;drawing&nbsp;has&nbsp;a&nbsp;table-style&nbsp;dictionary)</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Dim</span>&nbsp;hasEntry&nbsp;<span style="color:blue;">As</span>&nbsp;<span style="color:blue;">Boolean</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hasEntry&nbsp;=&nbsp;dsRootDict.<b>HasEntry</b>(<span style="color:#a31515;">&quot;ACAD_TABLESTYLE&quot;</span>)
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">If</span>&nbsp;hasEntry&nbsp;<span style="color:blue;">Then</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Dim</span>&nbsp;entityType&nbsp;<span style="color:blue;">As</span>&nbsp;<span style="color:#2b91af;">dsObjectType_e</span>
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Dim</span>&nbsp;entity&nbsp;<span style="color:blue;">As</span>&nbsp;<span style="color:blue;">Object</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;entity&nbsp;=&nbsp;dsRootDict.<b>GetEntry</b>(<span style="color:#a31515;">&quot;ACAD_TABLESTYLE&quot;</span>,&nbsp;entityType)
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">'Dictionary&nbsp;entries&nbsp;can&nbsp;be&nbsp;of&nbsp;arbitrary&nbsp;entity&nbsp;types</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">'In&nbsp;this&nbsp;case,&nbsp;the&nbsp;arbitrary&nbsp;entity&nbsp;type&nbsp;should&nbsp;be&nbsp;a&nbsp;dictionary</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">If</span>&nbsp;entityType&nbsp;=&nbsp;<span style="color:#2b91af;">dsObjectType_e</span>.dsDictionaryType&nbsp;<span style="color:blue;">Then</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Dim</span>&nbsp;dict&nbsp;<span style="color:blue;">As</span>&nbsp;<span style="color:#2b91af;">Dictionary</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dict&nbsp;=&nbsp;<span style="color:blue;">DirectCast</span>(entity,&nbsp;<span style="color:#2b91af;">Dictionary</span>)
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">'Table-style&nbsp;dictionary&nbsp;should&nbsp;contain&nbsp;an&nbsp;active&nbsp;style</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Dim</span>&nbsp;dsTblStyleMgr&nbsp;<span style="color:blue;">As</span>&nbsp;<span style="color:#2b91af;">TableStyleManager</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dsTblStyleMgr&nbsp;=&nbsp;dsDoc.<b>GetTableStyleManager</b>()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Dim</span>&nbsp;dsActiveTblStyle&nbsp;<span style="color:blue;">As</span>&nbsp;<span style="color:#2b91af;">TableStyle</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dsActiveTblStyle&nbsp;=&nbsp;dsTblStyleMgr.<b>GetActiveTableStyle</b>()
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Dim</span>&nbsp;activeTblStyleEntryName&nbsp;<span style="color:blue;">As</span>&nbsp;<span style="color:blue;">String</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;activeTblStyleEntryName&nbsp;=&nbsp;dict.<b>GetNameOf</b>(dsActiveTblStyle)
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dsCmdMsg.<b>PrintLine</b>(<span style="color:#2b91af;">[String]</span>.Format(<span style="color:#a31515;">&quot;Active&nbsp;table-style&nbsp;entry:&nbsp;{0}&quot;</span>,&nbsp;activeTblStyleEntryName))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">End</span>&nbsp;<span style="color:blue;">If</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">End</span>&nbsp;<span style="color:blue;">If</span>
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">'Create&nbsp;a&nbsp;dictionary&nbsp;in&nbsp;root&nbsp;dictionary</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Dim</span>&nbsp;dsOurDict&nbsp;<span style="color:blue;">As</span>&nbsp;<span style="color:#2b91af;">Dictionary</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dsOurDict&nbsp;=&nbsp;dsRootDict.<b>CreateDictionary</b>(<span style="color:#a31515;">&quot;Our_Dict&quot;</span>)
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">'New&nbsp;dictionary&nbsp;is&nbsp;entry&nbsp;in&nbsp;root&nbsp;dictionary&nbsp;</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">'Check&nbsp;if&nbsp;dictionary&nbsp;has&nbsp;new&nbsp;entry</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Dim</span>&nbsp;hasOurDict&nbsp;<span style="color:blue;">As</span>&nbsp;<span style="color:blue;">Boolean</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hasOurDict&nbsp;=&nbsp;dsRootDict.<b>HasEntry</b>(<span style="color:#a31515;">&quot;Our_Dict&quot;</span>)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">If</span>&nbsp;hasOurDict&nbsp;<span style="color:blue;">Then</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dsCmdMsg.<b>PrintLine</b>(<span style="color:#a31515;">&quot;&quot;&quot;Our_Dict&quot;&quot;&nbsp;dictionary&nbsp;added.&quot;</span>)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">End</span>&nbsp;<span style="color:blue;">If</span>
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">'Add&nbsp;XRecord&nbsp;entry</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Dim</span>&nbsp;dsOurXRecord&nbsp;<span style="color:blue;">As</span>&nbsp;<span style="color:#2b91af;">XRecord</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dsOurXRecord&nbsp;=&nbsp;dsOurDict.<b>CreateXRecord</b>(<span style="color:#a31515;">&quot;Our_XRecord&quot;</span>)
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">'Check&nbsp;if&nbsp;dictionary&nbsp;has&nbsp;new&nbsp;entry</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Dim</span>&nbsp;hasOurXRecord&nbsp;<span style="color:blue;">As</span>&nbsp;<span style="color:blue;">Boolean</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hasOurXRecord&nbsp;=&nbsp;dsOurDict.<b>HasEntry</b>(<span style="color:#a31515;">&quot;Our_XRecord&quot;</span>)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">If</span>&nbsp;hasOurXRecord&nbsp;<span style="color:blue;">Then</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dsCmdMsg.<b>PrintLine</b>(<span style="color:#a31515;">&quot;&quot;&quot;Our_XRecord&quot;&quot;&nbsp;XRecord&nbsp;added.&quot;</span>)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">End</span>&nbsp;<span style="color:blue;">If</span>
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">'XRecords&nbsp;can&nbsp;contain&nbsp;arbitrary&nbsp;data</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Dim</span>&nbsp;dataCount&nbsp;<span style="color:blue;">As</span>&nbsp;<span style="color:blue;">Integer</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dataCount&nbsp;=&nbsp;dsOurXRecord.<b>GetDataCount</b>()
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">'Add&nbsp;double&nbsp;data</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dsOurXRecord.<b>InsertDoubleData</b>(dataCount,&nbsp;20,&nbsp;1.42)
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dataCount&nbsp;=&nbsp;dsOurXRecord.<b>GetDataCount</b>()
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">'Add&nbsp;string&nbsp;data</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dsOurXRecord.<b>InsertStringData</b>(dataCount,&nbsp;3,&nbsp;<span style="color:#a31515;">&quot;XRecordstring&nbsp;data&quot;</span>)
 
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">'Each&nbsp;entity&nbsp;can&nbsp;have&nbsp;its&nbsp;own&nbsp;extension&nbsp;dictionary</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">'Create&nbsp;extension&nbsp;dictionary&nbsp;for&nbsp;Circle&nbsp;entity</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Dim</span>&nbsp;extDict&nbsp;<span style="color:blue;">As</span>&nbsp;<span style="color:#2b91af;">Dictionary</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;extDict&nbsp;=&nbsp;dsCircle.<b>CreateExtensionDictionary</b>()
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">'Add&nbsp;XRecords&nbsp;to&nbsp;Circle's&nbsp;extension&nbsp;dictionary</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Dim</span>&nbsp;dsXRecord1&nbsp;<span style="color:blue;">As</span>&nbsp;<span style="color:#2b91af;">XRecord</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dsXRecord1&nbsp;=&nbsp;extDict.<b>CreateXRecord</b>(<span style="color:#a31515;">&quot;XRecord1&quot;</span>)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dsXRecord1.<b>InsertStringData</b>(0,&nbsp;1,&nbsp;<span style="color:#a31515;">&quot;part&nbsp;number&quot;</span>)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dsXRecord1.<b>InsertInteger32Data</b>(1,&nbsp;90,&nbsp;1)
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Dim</span>&nbsp;dsXRecord2&nbsp;<span style="color:blue;">As</span>&nbsp;<span style="color:#2b91af;">XRecord</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dsXRecord2&nbsp;=&nbsp;extDict.<b>CreateXRecord</b>(<span style="color:#a31515;">&quot;XRecord2&quot;</span>)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dsXRecord2.<b>InsertStringData</b>(0,&nbsp;1,&nbsp;<span style="color:#a31515;">&quot;Description&quot;</span>)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dsXRecord2.<b>InsertStringData</b>(1,&nbsp;3,&nbsp;<span style="color:#a31515;">&quot;Circle&quot;</span>)
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">'Read&nbsp;entries&nbsp;of&nbsp;Circle's&nbsp;extension&nbsp;dictionary</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Dim</span>&nbsp;entitytypes&nbsp;<span style="color:blue;">As</span>&nbsp;<span style="color:blue;">Object</span>&nbsp;=&nbsp;<span style="color:blue;">Nothing</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Dim</span>&nbsp;entries&nbsp;<span style="color:blue;">As</span>&nbsp;<span style="color:blue;">Object</span>()&nbsp;=&nbsp;<span style="color:blue;">Nothing</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;entries&nbsp;=&nbsp;<span style="color:blue;">TryCast</span>(extDict.<b>GetEntries</b>(entitytypes),&nbsp;<span style="color:blue;">Object</span>())
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Dim</span>&nbsp;dsEntityTypes&nbsp;<span style="color:blue;">As</span>&nbsp;<span style="color:blue;">Integer</span>()&nbsp;=&nbsp;<span style="color:blue;">DirectCast</span>(entitytypes,&nbsp;<span style="color:blue;">Integer</span>())
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">For</span>&nbsp;index&nbsp;<span style="color:blue;">As</span>&nbsp;<span style="color:blue;">Integer</span>&nbsp;=&nbsp;0&nbsp;<span style="color:blue;">To</span>&nbsp;dsEntityTypes.Length&nbsp;-&nbsp;1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">If</span>&nbsp;<span style="color:blue;">DirectCast</span>(dsEntityTypes(index),&nbsp;<span style="color:#2b91af;">dsObjectType_e</span>)&nbsp;=&nbsp;<span style="color:#2b91af;">dsObjectType_e</span>.dsXRecordType&nbsp;<span style="color:blue;">Then</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Dim</span>&nbsp;xRecord&nbsp;<span style="color:blue;">As</span>&nbsp;<span style="color:#2b91af;">XRecord</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xRecord&nbsp;=&nbsp;<span style="color:blue;">DirectCast</span>(entries(index),&nbsp;<span style="color:#2b91af;">XRecord</span>)
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">If</span>&nbsp;xRecord&nbsp;<span style="color:blue;">Is</span>&nbsp;<span style="color:blue;">Nothing</span>&nbsp;<span style="color:blue;">Then</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Continue&nbsp;For</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">End</span>&nbsp;<span style="color:blue;">If</span>
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Dim</span>&nbsp;count&nbsp;<span style="color:blue;">As</span>&nbsp;<span style="color:blue;">Integer</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count&nbsp;=&nbsp;xRecord.<b>GetDataCount</b>()
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">For</span>&nbsp;i&nbsp;<span style="color:blue;">As</span>&nbsp;<span style="color:blue;">Integer</span>&nbsp;=&nbsp;0&nbsp;<span style="color:blue;">To</span>&nbsp;count&nbsp;-&nbsp;1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Dim</span>&nbsp;type&nbsp;<span style="color:blue;">As</span>&nbsp;<span style="color:#2b91af;">dsCustomDataType_e</span>&nbsp;=&nbsp;xRecord.<b>GetDataType</b>(i)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">If</span>&nbsp;type&nbsp;=&nbsp;<span style="color:#2b91af;">dsCustomDataType_e</span>.dsCustomDataType_String&nbsp;<span style="color:blue;">Then</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Dim</span>&nbsp;data&nbsp;<span style="color:blue;">As</span>&nbsp;<span style="color:blue;">String</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data&nbsp;=&nbsp;xRecord.<b>GetStringData</b>(i)
 
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dsCmdMsg.<b>PrintLine</b>(<span style="color:#2b91af;">[String]</span>.Format(<span style="color:#a31515;">&quot;String&nbsp;data:&nbsp;{0}&quot;</span>,&nbsp;data))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">ElseIf</span>&nbsp;type&nbsp;=&nbsp;<span style="color:#2b91af;">dsCustomDataType_e</span>.dsCustomDataType_Integer32&nbsp;<span style="color:blue;">Then</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Dim</span>&nbsp;intData&nbsp;<span style="color:blue;">As</span>&nbsp;<span style="color:blue;">Integer</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;intData&nbsp;=&nbsp;xRecord.<b>GetInteger32Data</b>(i)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dsCmdMsg.<b>PrintLine</b>(<span style="color:#2b91af;">[String]</span>.Format(<span style="color:#a31515;">&quot;Int&nbsp;data:&nbsp;{0}&quot;</span>,&nbsp;intData))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">End</span>&nbsp;<span style="color:blue;">If</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Next</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">End</span>&nbsp;<span style="color:blue;">If</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Next</span>
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">'Remove&nbsp;the&nbsp;XRecords&nbsp;in&nbsp;the&nbsp;Circle's&nbsp;extension&nbsp;dictionary</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;extDict.<b>RemoveEntry</b>(<span style="color:#a31515;">&quot;XRecord1&quot;</span>)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;extDict.<b>RemoveEntry</b>(<span style="color:#a31515;">&quot;XRecord2&quot;</span>)
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">'Release&nbsp;and&nbsp;erase&nbsp;the&nbsp;Circle's&nbsp;extension&nbsp;dictionary</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">Dim</span>&nbsp;removed&nbsp;<span style="color:blue;">As</span>&nbsp;<span style="color:blue;">Boolean</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;removed&nbsp;=&nbsp;dsCircle.<b>ReleaseExtensionDictionary</b>()
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">If</span>&nbsp;removed&nbsp;<span style="color:blue;">Then</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dsCmdMsg.<b>PrintLine</b>(<span style="color:#2b91af;">[String]</span>.Format(<span style="color:#a31515;">&quot;Circle's&nbsp;extension&nbsp;dictionary&nbsp;released&nbsp;and&nbsp;erased.&quot;</span>))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">End</span>&nbsp;<span style="color:blue;">If</span>
 
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">End</span>&nbsp;<span style="color:blue;">Sub</span>
 
<span style="color:blue;">End</span>&nbsp;<span style="color:blue;">Module</span></pre>

</body>

</html>