<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Compare and combine datatables in Revit API Forum</title>
    <link>https://forums.autodesk.com/t5/revit-api-forum/compare-and-combine-datatables/m-p/5458386#M74535</link>
    <description>&lt;P&gt;Hi Hd12310,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Personally, I would create two generic .NET dictionaries keyed on the GUIDs.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Loop through one of the dictionaries, check whether the other dictionary has a corresponding entry.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If not, you are done. If yes, do your thing.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Cheers,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Jeremy&lt;/P&gt;</description>
    <pubDate>Mon, 05 Jan 2015 08:22:42 GMT</pubDate>
    <dc:creator>jeremytammik</dc:creator>
    <dc:date>2015-01-05T08:22:42Z</dc:date>
    <item>
      <title>Compare and combine datatables</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/compare-and-combine-datatables/m-p/5457950#M74532</link>
      <description>&lt;P&gt;Hi i have to datatables - two columns&amp;nbsp;in each table.&lt;/P&gt;&lt;P&gt;The first column in both is guid.&lt;/P&gt;&lt;P&gt;I need to compare the guids in these two tables.&lt;/P&gt;&lt;P&gt;And return one datatable witch contains&amp;nbsp;the second columns from each table.&lt;/P&gt;&lt;P&gt;To combine data from two tables where the guid is equal.&lt;/P&gt;&lt;P&gt;(Note: it doesnt have to be datatables, could be string arrays or whatever really.)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This code below never returns isEq=true - anyone has some code that can do this&amp;nbsp;?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;bool&amp;nbsp;&lt;SPAN&gt;isEq;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;foreach(DataRow r_row in dtRvtPfv.Rows)&lt;BR /&gt;{&lt;BR /&gt;foreach (DataColumn r_col in dtRvtPfv.Columns)&lt;BR /&gt;{&lt;BR /&gt;if (r_col.ColumnName == BuiltInParameter.IFC_GUID.ToString())&lt;BR /&gt;{&lt;BR /&gt;if (r_row[r_col] != null)&lt;BR /&gt;{&lt;BR /&gt;isEq = dtTeklaPfv.Select().ToList().Exists(row =&amp;gt; row["GUID"].ToString() == r_row[r_col].ToString());&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;if (isEq)&lt;BR /&gt;{&lt;BR /&gt;TaskDialog.Show("Guid match", r_row[r_col].ToString());&lt;BR /&gt;&lt;BR /&gt;}&lt;BR /&gt;}&lt;BR /&gt;}&lt;BR /&gt;}&lt;BR /&gt;}&lt;/P&gt;</description>
      <pubDate>Sun, 04 Jan 2015 12:53:42 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/compare-and-combine-datatables/m-p/5457950#M74532</guid>
      <dc:creator>HD12310</dc:creator>
      <dc:date>2015-01-04T12:53:42Z</dc:date>
    </item>
    <item>
      <title>Re: Compare and combine datatables</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/compare-and-combine-datatables/m-p/5458358#M74533</link>
      <description>&lt;P&gt;Dear Hd12310,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Happy New Year to you!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Sorry, I find both your question and your code hard to comprehend, so I cannot really answer it in this state.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Best regards,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Jeremy&lt;/P&gt;</description>
      <pubDate>Mon, 05 Jan 2015 07:10:46 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/compare-and-combine-datatables/m-p/5458358#M74533</guid>
      <dc:creator>jeremytammik</dc:creator>
      <dc:date>2015-01-05T07:10:46Z</dc:date>
    </item>
    <item>
      <title>Re: Compare and combine datatables</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/compare-and-combine-datatables/m-p/5458375#M74534</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for reply Jeremy.&lt;/P&gt;&lt;P&gt;Basically im trying to update elements based on their guid.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The elements have been exported to IFC - and sent to Tekla.&lt;/P&gt;&lt;P&gt;Tekla evaluates the elements&amp;nbsp;and&amp;nbsp;produce an status report for each element.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I&amp;nbsp;have the Revit elements in one table and the tekla report in another table.&lt;/P&gt;&lt;P&gt;I need to&amp;nbsp;copy the Tekla status&amp;nbsp;from&amp;nbsp;one dataTable to the other dataTable - by matching their guids like this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;DataTable1&lt;/P&gt;&lt;P&gt;guid&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; status&lt;/P&gt;&lt;P&gt;287A628346&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OK&lt;/P&gt;&lt;P&gt;387A628346&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NOT_OK&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;DataTable2&lt;/P&gt;&lt;P&gt;guid&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ElementId&lt;/P&gt;&lt;P&gt;287A628346&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Family1&lt;/P&gt;&lt;P&gt;387A628346&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Family1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The goal is to compare and combine DataTable1 and DataTable2 - to get DataTable3&lt;/P&gt;&lt;P&gt;DateTable3&lt;/P&gt;&lt;P&gt;guid&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ElementId&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; status&lt;/P&gt;&lt;P&gt;287A628346&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Family1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OK&lt;/P&gt;&lt;P&gt;387A628346&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Family1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NOT_OK&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I realize its not really a core Revit API question so i will be digging into some MSDN forums for this as well.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 05 Jan 2015 07:37:37 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/compare-and-combine-datatables/m-p/5458375#M74534</guid>
      <dc:creator>HD12310</dc:creator>
      <dc:date>2015-01-05T07:37:37Z</dc:date>
    </item>
    <item>
      <title>Re: Compare and combine datatables</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/compare-and-combine-datatables/m-p/5458386#M74535</link>
      <description>&lt;P&gt;Hi Hd12310,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Personally, I would create two generic .NET dictionaries keyed on the GUIDs.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Loop through one of the dictionaries, check whether the other dictionary has a corresponding entry.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If not, you are done. If yes, do your thing.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Cheers,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Jeremy&lt;/P&gt;</description>
      <pubDate>Mon, 05 Jan 2015 08:22:42 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/compare-and-combine-datatables/m-p/5458386#M74535</guid>
      <dc:creator>jeremytammik</dc:creator>
      <dc:date>2015-01-05T08:22:42Z</dc:date>
    </item>
    <item>
      <title>Re: Compare and combine datatables</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/compare-and-combine-datatables/m-p/5458500#M74536</link>
      <description>&lt;P&gt;Thanks.&lt;/P&gt;&lt;P&gt;I ended up using the datatables directly and&amp;nbsp;lopped through the rows.&lt;/P&gt;&lt;P&gt;Heres the working sample code if anyone is interrested.&lt;/P&gt;&lt;P&gt;From there on i could create a 3. datatable or just expand dtA with values from dtB.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string guid_a = "";&amp;nbsp; //in datatable dtA&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string guid_b = "";&amp;nbsp; //in datatable dtB&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach(DataRow a_row in dtA.Rows)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; guid_a = (string)a_row["GUID"];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach(DataRow b_row in dtB.Rows)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; guid_b = (string)b_row["GUID"];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(guid_a.Equals(guid_b))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //we have a match&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;</description>
      <pubDate>Mon, 05 Jan 2015 11:19:55 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/compare-and-combine-datatables/m-p/5458500#M74536</guid>
      <dc:creator>HD12310</dc:creator>
      <dc:date>2015-01-05T11:19:55Z</dc:date>
    </item>
    <item>
      <title>Re: Compare and combine datatables</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/compare-and-combine-datatables/m-p/5458727#M74537</link>
      <description>&lt;P&gt;A&amp;nbsp;more complicated solution, but with cleaner code would be using Linq instead or recursive loops:&lt;/P&gt;&lt;P&gt;&lt;A target="_blank" href="http://msdn.microsoft.com/en-us/library/bb386943(v=vs.110).aspx"&gt;http://msdn.microsoft.com/en-us/library/bb386943(v=vs.110).aspx&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A target="_blank" href="http://stackoverflow.com/questions/24020981/linq-query-multiple-datatables-in-dataset"&gt;http://stackoverflow.com/questions/24020981/linq-query-multiple-datatables-in-dataset&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 05 Jan 2015 14:57:51 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/compare-and-combine-datatables/m-p/5458727#M74537</guid>
      <dc:creator>GonçaloFeio1321</dc:creator>
      <dc:date>2015-01-05T14:57:51Z</dc:date>
    </item>
    <item>
      <title>Re: Compare and combine datatables</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/compare-and-combine-datatables/m-p/5462222#M74538</link>
      <description>Tnx - especially the msdn link har some great examples</description>
      <pubDate>Thu, 08 Jan 2015 07:17:34 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/compare-and-combine-datatables/m-p/5462222#M74538</guid>
      <dc:creator>HD12310</dc:creator>
      <dc:date>2015-01-08T07:17:34Z</dc:date>
    </item>
  </channel>
</rss>

