<?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 Retrieve all elements on start-up in Revit API Forum</title>
    <link>https://forums.autodesk.com/t5/revit-api-forum/retrieve-all-elements-on-start-up/m-p/5844763#M70138</link>
    <description>&lt;P&gt;Hello everyone,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm trying to to implement an Updater in my code since documentChanged has some limitations regarding setting parameter values (in documentChanged they are read-only).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Everything is great! And i was able to register it using OnStartup(). However, i need to get all the elements in the document.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As i understand, the updater needs a trigger to get the change type (AddTrigger(UpdaterID, Document, IColllection(ElementId), ChangeType)) this overloaded function is what interests me. But how can i get the collection from the document while inside the OnStartup() function:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is my function:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;public Result OnStartup(UIControlledApplication application)&lt;BR /&gt;&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;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FilteredElementCollector collector = new FilteredElementCollector(&lt;STRIKE&gt;doc&lt;/STRIKE&gt;);&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; collector.WherePasses(new LogicalOrFilter(new ElementIsElementTypeFilter(false), new ElementIsElementTypeFilter(true)));&lt;BR /&gt;&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; ICollection&amp;lt;ElementId&amp;gt; allLoads = collector.ToElementIds();&lt;BR /&gt;&lt;BR /&gt;&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; if (null == _updater)&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; _updater = new WatcherUpdater(&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; application.ActiveAddInId);&lt;BR /&gt;&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; UpdaterRegistry.RegisterUpdater(_updater);&lt;BR /&gt;&lt;BR /&gt;&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; UpdaterRegistry.AddTrigger(&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; _updater.GetUpdaterId(), &lt;STRIKE&gt;doc&lt;/STRIKE&gt;, allLoads,&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; Element.GetChangeTypeAny());&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; else&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; UpdaterRegistry.UnregisterUpdater(&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; _updater.GetUpdaterId());&lt;BR /&gt;&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; _updater = null;&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; return Result.Succeeded;&lt;BR /&gt;        }&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As you can see, i scratched &lt;STRONG&gt;doc, &lt;/STRONG&gt;this is what's i can't get implement. How can i get the document from UIControlledApplication?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I even tried to add the trigger&amp;nbsp;(AddTrigger(UpdaterID, Document, IColllection(ElementId), ChangeType)) in my Execute function. I tried searching a lot but i can't find anything. I even tried implementing an Idling event in which i can get the collection. But still not working.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any thoughts are appreciated.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;M. Fadel&lt;/P&gt;</description>
    <pubDate>Mon, 05 Oct 2015 10:02:02 GMT</pubDate>
    <dc:creator>mohd.fadel</dc:creator>
    <dc:date>2015-10-05T10:02:02Z</dc:date>
    <item>
      <title>Retrieve all elements on start-up</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/retrieve-all-elements-on-start-up/m-p/5844763#M70138</link>
      <description>&lt;P&gt;Hello everyone,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm trying to to implement an Updater in my code since documentChanged has some limitations regarding setting parameter values (in documentChanged they are read-only).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Everything is great! And i was able to register it using OnStartup(). However, i need to get all the elements in the document.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As i understand, the updater needs a trigger to get the change type (AddTrigger(UpdaterID, Document, IColllection(ElementId), ChangeType)) this overloaded function is what interests me. But how can i get the collection from the document while inside the OnStartup() function:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is my function:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;public Result OnStartup(UIControlledApplication application)&lt;BR /&gt;&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;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FilteredElementCollector collector = new FilteredElementCollector(&lt;STRIKE&gt;doc&lt;/STRIKE&gt;);&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; collector.WherePasses(new LogicalOrFilter(new ElementIsElementTypeFilter(false), new ElementIsElementTypeFilter(true)));&lt;BR /&gt;&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; ICollection&amp;lt;ElementId&amp;gt; allLoads = collector.ToElementIds();&lt;BR /&gt;&lt;BR /&gt;&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; if (null == _updater)&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; _updater = new WatcherUpdater(&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; application.ActiveAddInId);&lt;BR /&gt;&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; UpdaterRegistry.RegisterUpdater(_updater);&lt;BR /&gt;&lt;BR /&gt;&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; UpdaterRegistry.AddTrigger(&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; _updater.GetUpdaterId(), &lt;STRIKE&gt;doc&lt;/STRIKE&gt;, allLoads,&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; Element.GetChangeTypeAny());&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; else&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; UpdaterRegistry.UnregisterUpdater(&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; _updater.GetUpdaterId());&lt;BR /&gt;&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; _updater = null;&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; return Result.Succeeded;&lt;BR /&gt;        }&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As you can see, i scratched &lt;STRONG&gt;doc, &lt;/STRONG&gt;this is what's i can't get implement. How can i get the document from UIControlledApplication?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I even tried to add the trigger&amp;nbsp;(AddTrigger(UpdaterID, Document, IColllection(ElementId), ChangeType)) in my Execute function. I tried searching a lot but i can't find anything. I even tried implementing an Idling event in which i can get the collection. But still not working.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any thoughts are appreciated.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;M. Fadel&lt;/P&gt;</description>
      <pubDate>Mon, 05 Oct 2015 10:02:02 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/retrieve-all-elements-on-start-up/m-p/5844763#M70138</guid>
      <dc:creator>mohd.fadel</dc:creator>
      <dc:date>2015-10-05T10:02:02Z</dc:date>
    </item>
    <item>
      <title>Re: Retrieve all elements on start-up</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/retrieve-all-elements-on-start-up/m-p/5845126#M70139</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;OnStartup, you can register to the OnDocumentOpened or OnViewChanged event.&lt;/P&gt;&lt;P&gt;Inside this, you can access the current document.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;AddTrigger has an overload that does not need a document argument.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;By the way, are you sure that you need to watch &lt;STRONG&gt;&lt;EM&gt;all&lt;/EM&gt; &lt;/STRONG&gt;elements ?&lt;/P&gt;&lt;P&gt;Wouldn't it be better and more performant to use a ElementMultiCategoryFilter ?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Revitalizer&lt;/P&gt;</description>
      <pubDate>Mon, 05 Oct 2015 14:18:42 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/retrieve-all-elements-on-start-up/m-p/5845126#M70139</guid>
      <dc:creator>Revitalizer</dc:creator>
      <dc:date>2015-10-05T14:18:42Z</dc:date>
    </item>
    <item>
      <title>Re: Retrieve all elements on start-up</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/retrieve-all-elements-on-start-up/m-p/5845161#M70140</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;OnStartup, you can register to the OnDocumentOpened or OnViewChanged event.&lt;/P&gt;&lt;P&gt;Inside this, you can access the current document.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;AddTrigger has an overload that does not need a document argument.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;By the way, are you sure that you need to watch &lt;STRONG&gt;&lt;EM&gt;all&lt;/EM&gt; &lt;/STRONG&gt;elements ?&lt;/P&gt;&lt;P&gt;Wouldn't it be better and more performant to use a ElementMultiCategoryFilter ?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So i can register to the OnDocumentOpened! I'll try this first thing tomorrow. I found this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Question:&lt;/STRONG&gt; by Matt:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;[&lt;A href="http://thebuildingcoder.typepad.com/blog/2015/03/automatically-open-a-project-on-startup.html]" target="_blank"&gt;http://thebuildingcoder.typepad.com/blog/2015/03/automatically-open-a-project-on-startup.html]&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Jeremy discussed "using reflection". Was trying this now, will continue tomorrow! And will try OnDocumentOpened.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I know AddTrigger has an overload that does not need a document argument. But that overload uses ElementFilter, and i don't want to filter. Which&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;answers your last question, yes i need to watch all the elements. I have a user-defined parameter that is being added to all elements in the Revit project.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks a lot! I'll keep you posted.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;M. Fadel.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 05 Oct 2015 14:32:11 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/retrieve-all-elements-on-start-up/m-p/5845161#M70140</guid>
      <dc:creator>mohd.fadel</dc:creator>
      <dc:date>2015-10-05T14:32:11Z</dc:date>
    </item>
    <item>
      <title>Re: Retrieve all elements on start-up</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/retrieve-all-elements-on-start-up/m-p/5845198#M70141</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;there are many categories whose property &lt;STRONG&gt;AllowsBoundParameters&lt;/STRONG&gt; is false.&lt;/P&gt;&lt;P&gt;So you can indeed use a filter.&lt;/P&gt;&lt;P&gt;Note that there are many elements "under the hood" which you cannot see because they are abstract ones.&lt;/P&gt;&lt;P&gt;No need to watch them, too.&lt;/P&gt;&lt;P&gt;There are hundreds of categories in the document but only a subset is suitable for adding parameters.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Revitalizer&lt;/P&gt;</description>
      <pubDate>Mon, 05 Oct 2015 14:48:09 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/retrieve-all-elements-on-start-up/m-p/5845198#M70141</guid>
      <dc:creator>Revitalizer</dc:creator>
      <dc:date>2015-10-05T14:48:09Z</dc:date>
    </item>
    <item>
      <title>Re: Retrieve all elements on start-up</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/retrieve-all-elements-on-start-up/m-p/5856946#M70142</link>
      <description>&lt;P&gt;Hello Revitalizer,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Sorry for the late reply. I'm not sure if i can use this property. Shouldn't i get all categories from the document as such:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;Categories cats = doc.Settings.Categories;&lt;/PRE&gt;&lt;P&gt;[&lt;A href="http://thebuildingcoder.typepad.com/blog/2014/04/category-support-for-shared-type-and-instance-parameters.html]" target="_blank"&gt;http://thebuildingcoder.typepad.com/blog/2014/04/category-support-for-shared-type-and-instance-parameters.html]&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If so, again i can't use this. Because i'm doing this on startup. Which is the main issue here (i can't get the document on startup).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I ended up initiallizing the categories and adding the triggers manually. A bit tiring, but it got the job done!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Just wanted to let you know.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;M. Fadel&lt;/P&gt;</description>
      <pubDate>Mon, 12 Oct 2015 06:43:37 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/retrieve-all-elements-on-start-up/m-p/5856946#M70142</guid>
      <dc:creator>mohd.fadel</dc:creator>
      <dc:date>2015-10-12T06:43:37Z</dc:date>
    </item>
    <item>
      <title>Re: Retrieve all elements on start-up</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/retrieve-all-elements-on-start-up/m-p/5857208#M70143</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;what about this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You could check which Category is suitable for adding parameters when in document context.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Note that you can get the relating BuiltInCategory of a Category by just casting its Id.IntegerValue.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;After that, you have a list of BuiltInCategory to whom parameters can be added.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This list is constant, it won't change between different documents.&lt;/P&gt;&lt;P&gt;So you need to do it exactly one time and don't need to do it again.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You could write down the BuiltInCategory list, somewhere.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Once knowing the list, you can define a ElementMultiCategoryFilter using it, independent of document context.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Revitalizer&lt;/P&gt;</description>
      <pubDate>Mon, 12 Oct 2015 11:39:30 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/retrieve-all-elements-on-start-up/m-p/5857208#M70143</guid>
      <dc:creator>Revitalizer</dc:creator>
      <dc:date>2015-10-12T11:39:30Z</dc:date>
    </item>
    <item>
      <title>Re: Retrieve all elements on start-up</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/retrieve-all-elements-on-start-up/m-p/5857210#M70144</link>
      <description>&lt;P&gt;Hello again Revitalizer,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I rechecked Matt's question! I think this post has been edited in the past couple of weeks! hahaha I just saw the last part!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I was able to use Arnošt's code, very simple!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I implemented an OnApplicationInitialized event. Inside, i used the condition you suggested (&lt;STRONG&gt;AllowsBoundParameters&lt;/STRONG&gt;).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Works perfectly!! With much less code!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for your help!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;M. Fadel&lt;/P&gt;</description>
      <pubDate>Mon, 12 Oct 2015 11:41:30 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/retrieve-all-elements-on-start-up/m-p/5857210#M70144</guid>
      <dc:creator>mohd.fadel</dc:creator>
      <dc:date>2015-10-12T11:41:30Z</dc:date>
    </item>
    <item>
      <title>Re: Retrieve all elements on start-up</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/retrieve-all-elements-on-start-up/m-p/5857212#M70145</link>
      <description>&lt;P&gt;Hahahaha i was writing you when you sent your message!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;That is exactly what i did!:)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks again!&lt;/P&gt;</description>
      <pubDate>Mon, 12 Oct 2015 11:42:36 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/retrieve-all-elements-on-start-up/m-p/5857212#M70145</guid>
      <dc:creator>mohd.fadel</dc:creator>
      <dc:date>2015-10-12T11:42:36Z</dc:date>
    </item>
  </channel>
</rss>

