<?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: Get changes in IUpdater in Revit API Forum</title>
    <link>https://forums.autodesk.com/t5/revit-api-forum/get-changes-in-iupdater/m-p/6626310#M62408</link>
    <description>&lt;P&gt;Than why is the IUpdater sold as "when you change a element, like a wall, you can make the window change as well". If we have no idea what happend with the wall.&lt;/P&gt;</description>
    <pubDate>Mon, 17 Oct 2016 09:32:37 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2016-10-17T09:32:37Z</dc:date>
    <item>
      <title>Get changes in IUpdater</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/get-changes-in-iupdater/m-p/6626147#M62406</link>
      <description>&lt;P&gt;Is there a way to actually get what is changed? We can get the elementids that are changed but i would like to see what is changed. A Parameter or maybe it is moved etc etc.&lt;/P&gt;</description>
      <pubDate>Mon, 17 Oct 2016 07:48:46 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/get-changes-in-iupdater/m-p/6626147#M62406</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2016-10-17T07:48:46Z</dc:date>
    </item>
    <item>
      <title>Re: Get changes in IUpdater</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/get-changes-in-iupdater/m-p/6626230#M62407</link>
      <description>&lt;P&gt;Hi Michal,&lt;/P&gt;&lt;P&gt;There probably is, but the overhead would likely be prohibitive.&lt;/P&gt;&lt;P&gt;Consider a transactional approach like the one in Jeremy Tammik's blog:&lt;/P&gt;&lt;P&gt;&lt;A href="http://thebuildingcoder.typepad.com/blog/2016/01/tracking-element-modification.html" target="_blank"&gt;http://thebuildingcoder.typepad.com/blog/2016/01/tracking-element-modification.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You could always combine the two approaches, and upon opening the model export each element's 'state' (both as data and as hashes of that data). Getting the data would have to be in the current thread, but writing the data (as strings etc, not Revit elements) could be done on a different thread.&lt;/P&gt;&lt;P&gt;When you get the modified elements via your updater, recreate the data again and compare the hashes. If the hashes differ, then do a diff on the actual data.&lt;/P&gt;&lt;P&gt;You could create different data buckets (parameters,&amp;nbsp;geometry, etc) for each element&amp;nbsp;so&amp;nbsp;upon checking&amp;nbsp;&lt;SPAN&gt;ChangeType, you could check just the data bucket (and hash) appropriate to the change.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Depending on your requirements, you could compare the data and hash on a different thread also and re-gather the results when needed (or wait for them to complete).&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Worksharing, BIM360, Revit Server etc would all make this a wee bit more complicated (and perhaps slower), so an approach would have to be well thought out before commencing.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Cheers,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Matt&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 17 Oct 2016 08:34:48 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/get-changes-in-iupdater/m-p/6626230#M62407</guid>
      <dc:creator>matthew_taylor</dc:creator>
      <dc:date>2016-10-17T08:34:48Z</dc:date>
    </item>
    <item>
      <title>Re: Get changes in IUpdater</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/get-changes-in-iupdater/m-p/6626310#M62408</link>
      <description>&lt;P&gt;Than why is the IUpdater sold as "when you change a element, like a wall, you can make the window change as well". If we have no idea what happend with the wall.&lt;/P&gt;</description>
      <pubDate>Mon, 17 Oct 2016 09:32:37 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/get-changes-in-iupdater/m-p/6626310#M62408</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2016-10-17T09:32:37Z</dc:date>
    </item>
    <item>
      <title>Re: Get changes in IUpdater</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/get-changes-in-iupdater/m-p/6626343#M62409</link>
      <description>&lt;P&gt;&lt;FONT face="arial,helvetica,sans-serif" size="2"&gt;Hi Michal,&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="arial,helvetica,sans-serif" size="2"&gt;Well, you can work out what happened to the wall. You just need to provide a framework with which to make it work. And you have to be selective, and minimise what you do so you don't affect performance.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&lt;FONT face="arial,helvetica,sans-serif"&gt;If you want to track geometry changes for a wall, set up an &lt;FONT color="#2b91af"&gt;Element&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Consolas"&gt;&lt;FONT face="arial,helvetica,sans-serif"&gt;.GetChangeTypeGeometry updater. You could pre-add the existing geometry data (as ExtensibleStorage?) to the wall when it's created,&amp;nbsp;and make a comparison of that data if the wall changes (and of course update the geometry &lt;FONT face="Arial" size="2"&gt;ExtensibleStorage&lt;/FONT&gt; data on the wall when you're done, in preparation for the next change).&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&lt;FONT face="Consolas"&gt;&lt;FONT face="arial,helvetica,sans-serif"&gt;What are you actually trying to achieve?&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT size="2"&gt;&lt;FONT face="Consolas"&gt;&lt;FONT face="arial,helvetica,sans-serif"&gt;-Matt&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 17 Oct 2016 09:48:49 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/get-changes-in-iupdater/m-p/6626343#M62409</guid>
      <dc:creator>matthew_taylor</dc:creator>
      <dc:date>2016-10-17T09:48:49Z</dc:date>
    </item>
    <item>
      <title>Re: Get changes in IUpdater</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/get-changes-in-iupdater/m-p/6626345#M62410</link>
      <description>Im trying to figure out a solution, that when a model group is changed for another model group. And when for example in the new model group a room is bigger, that a room next to it will be made smaller to fit the new bigger room. For example a bathroom which is bigger in a different model group.</description>
      <pubDate>Mon, 17 Oct 2016 09:51:23 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/get-changes-in-iupdater/m-p/6626345#M62410</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2016-10-17T09:51:23Z</dc:date>
    </item>
    <item>
      <title>Re: Get changes in IUpdater</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/get-changes-in-iupdater/m-p/6626368#M62411</link>
      <description>&lt;P&gt;Well, finding out if the model group type is fairly easy. Set up a GetChangeTypeParameter in your iUpdater.&lt;/P&gt;&lt;P&gt;Something like this:&lt;/P&gt;&lt;P&gt;elementId = new ElementId(BUILTINPARAMETER.ELEM_TYPE_PARAM)&lt;/P&gt;&lt;P&gt;Element.&lt;A href="mk:@MSITStore:D:\SDKs\Revit%202017\RevitAPI.chm::/html/6b0460f6-8db3-970c-d2d9-a1b5e470eb1e.htm" target="_blank"&gt;GetChangeTypeParameter(elementId)&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You could add information to your model group when you create it, and react to that when&amp;nbsp;the model group is changed.&lt;/P&gt;&lt;P&gt;Think storing the model group type uniqueId.&lt;/P&gt;&lt;P&gt;Exist model group type - get elements and geometry.&lt;/P&gt;&lt;P&gt;New&amp;nbsp;model group type - get elements and geometry.&lt;/P&gt;&lt;P&gt;Compare, and react to the difference. Get the adjacent rooms via bounding box filteredelementcollector or something (I don't work with them - there are probably better ways). Modify the room / room contents.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 17 Oct 2016 10:07:12 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/get-changes-in-iupdater/m-p/6626368#M62411</guid>
      <dc:creator>matthew_taylor</dc:creator>
      <dc:date>2016-10-17T10:07:12Z</dc:date>
    </item>
  </channel>
</rss>

