<?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: Adding categories to existing parameter binding in Revit API Forum</title>
    <link>https://forums.autodesk.com/t5/revit-api-forum/adding-categories-to-existing-parameter-binding/m-p/12088231#M11393</link>
    <description>&lt;P&gt;HI&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/9931541"&gt;@j.jansmaG7C9C&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I create a script that will add the&amp;nbsp;&lt;STRONG&gt;New Category&amp;nbsp;&lt;/STRONG&gt;to Existing Binding. Kindly Check the Below Code and GIF for additional Reference.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Script&lt;/STRONG&gt;&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;            //Global Variables
            InstanceBinding instanceBinding = null;
            Definition def = null;

            //Category Need to Add to the Existing Prameter Bindings
            Category cat = Category.GetCategory(doc, BuiltInCategory.OST_Assemblies);

            //Get Instance Binding From Document
            var map = doc.ParameterBindings.ForwardIterator();

            //Iterate using Iterator
            while (map.MoveNext())
            {
                //Get the Parameter need to add
                def = map.Key as Definition;

                if (def.Name == "Demo")
                {
                    instanceBinding = map.Current as InstanceBinding;
                }

            }

            //Get Existing Category Set From the Binding
            CategorySet existingSet = instanceBinding.Categories;

            if(!existingSet.Contains(cat))
            {
                existingSet.Insert(cat);
            }

            //Adding Category to Exsting Instance Binding (Without changing any parameter)
            using (Transaction addCategory = new Transaction(doc,"Add Category"))
            {
                addCategory.Start();

                //Re-Insert Categories to Exsting Instance Binding
                instanceBinding.Categories = existingSet;

                doc.ParameterBindings.ReInsert(def, instanceBinding);

                addCategory.Commit();
            }&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Reference GIF&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Adding Category to Existing Instance Parameter Binding.gif" style="width: 999px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1238075i6892BFCA8AF62CED/image-size/large?v=v2&amp;amp;px=999" role="button" title="Adding Category to Existing Instance Parameter Binding.gif" alt="Adding Category to Existing Instance Parameter Binding.gif" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hope this Helps &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;</description>
    <pubDate>Sat, 08 Jul 2023 15:52:09 GMT</pubDate>
    <dc:creator>Mohamed_Arshad</dc:creator>
    <dc:date>2023-07-08T15:52:09Z</dc:date>
    <item>
      <title>Adding categories to existing parameter binding</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/adding-categories-to-existing-parameter-binding/m-p/12038835#M11392</link>
      <description>&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have this piece of code that (succesfully) adds a category to an existing parameter binding:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="general"&gt;Categories.Add(BuiltInCategory.OST_Walls);
Categories.Add(BuiltInCategory.OST_Roofs);
Categories.Add(BuiltInCategory.OST_Floors);
Categories.Add(BuiltInCategory.OST_Assemblies);

foreach (BuiltInCategory BuiltInCategory in Categories)
{
Category Category = doc.Settings.Categories.get_Item(BuiltInCategory);
if (elemBind.Categories.Contains(Category) == false)
{ elemBind.Categories.Insert(Category); }
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This code seems to work like a charm. In an example in which 3 of the 4 categories were already added, the fourt one is (in this case, Assemblies) added succesfully and when I lookup the actual variable values of the parameterbinding in Visual Studio, I see that all four categories are added:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="jjansmaG7C9C_0-1686917760684.png" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1228621iEB0534CF4C0E3613/image-size/medium?v=v2&amp;amp;px=400" role="button" title="jjansmaG7C9C_0-1686917760684.png" alt="jjansmaG7C9C_0-1686917760684.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;However, back in the UI, the changes are neglected:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="jjansmaG7C9C_1-1686917903898.png" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1228624i666C983BD5E2EC31/image-size/medium?v=v2&amp;amp;px=400" role="button" title="jjansmaG7C9C_1-1686917903898.png" alt="jjansmaG7C9C_1-1686917903898.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I also tried adding the following line, but unfortunetaly, to no avail.&lt;/P&gt;&lt;LI-CODE lang="general"&gt;doc.ParameterBindings.ReInsert(definition, rlemBind, Group);&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've seen multiple snippets from Jeremy that seem to work this way, like this simple one here:&lt;/P&gt;&lt;P&gt;&lt;A href="https://thebuildingcoder.typepad.com/blog/2009/09/adding-a-category-to-a-parameter-binding.html" target="_blank" rel="noopener"&gt;The Building Coder: Adding a Category to a Parameter Binding (typepad.com)&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Can anyone provide a clue?&lt;/P&gt;</description>
      <pubDate>Fri, 16 Jun 2023 12:20:32 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/adding-categories-to-existing-parameter-binding/m-p/12038835#M11392</guid>
      <dc:creator>j.jansmaG7C9C</dc:creator>
      <dc:date>2023-06-16T12:20:32Z</dc:date>
    </item>
    <item>
      <title>Re: Adding categories to existing parameter binding</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/adding-categories-to-existing-parameter-binding/m-p/12088231#M11393</link>
      <description>&lt;P&gt;HI&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/9931541"&gt;@j.jansmaG7C9C&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I create a script that will add the&amp;nbsp;&lt;STRONG&gt;New Category&amp;nbsp;&lt;/STRONG&gt;to Existing Binding. Kindly Check the Below Code and GIF for additional Reference.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Script&lt;/STRONG&gt;&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;            //Global Variables
            InstanceBinding instanceBinding = null;
            Definition def = null;

            //Category Need to Add to the Existing Prameter Bindings
            Category cat = Category.GetCategory(doc, BuiltInCategory.OST_Assemblies);

            //Get Instance Binding From Document
            var map = doc.ParameterBindings.ForwardIterator();

            //Iterate using Iterator
            while (map.MoveNext())
            {
                //Get the Parameter need to add
                def = map.Key as Definition;

                if (def.Name == "Demo")
                {
                    instanceBinding = map.Current as InstanceBinding;
                }

            }

            //Get Existing Category Set From the Binding
            CategorySet existingSet = instanceBinding.Categories;

            if(!existingSet.Contains(cat))
            {
                existingSet.Insert(cat);
            }

            //Adding Category to Exsting Instance Binding (Without changing any parameter)
            using (Transaction addCategory = new Transaction(doc,"Add Category"))
            {
                addCategory.Start();

                //Re-Insert Categories to Exsting Instance Binding
                instanceBinding.Categories = existingSet;

                doc.ParameterBindings.ReInsert(def, instanceBinding);

                addCategory.Commit();
            }&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Reference GIF&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Adding Category to Existing Instance Parameter Binding.gif" style="width: 999px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1238075i6892BFCA8AF62CED/image-size/large?v=v2&amp;amp;px=999" role="button" title="Adding Category to Existing Instance Parameter Binding.gif" alt="Adding Category to Existing Instance Parameter Binding.gif" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hope this Helps &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 08 Jul 2023 15:52:09 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/adding-categories-to-existing-parameter-binding/m-p/12088231#M11393</guid>
      <dc:creator>Mohamed_Arshad</dc:creator>
      <dc:date>2023-07-08T15:52:09Z</dc:date>
    </item>
    <item>
      <title>Re: Adding categories to existing parameter binding</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/adding-categories-to-existing-parameter-binding/m-p/12928756#M11394</link>
      <description>&lt;P&gt;-&lt;/P&gt;</description>
      <pubDate>Wed, 31 Jul 2024 10:07:02 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/adding-categories-to-existing-parameter-binding/m-p/12928756#M11394</guid>
      <dc:creator>cig_ad</dc:creator>
      <dc:date>2024-07-31T10:07:02Z</dc:date>
    </item>
    <item>
      <title>Re: Adding categories to existing parameter binding</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/adding-categories-to-existing-parameter-binding/m-p/13021560#M11395</link>
      <description>```&lt;BR /&gt;doc.ParameterBindings.ReInsert(def, instanceBinding);&lt;BR /&gt;and&lt;BR /&gt;doc.ParameterBindings.Remove(def);&lt;BR /&gt;```&lt;BR /&gt;&lt;BR /&gt;both functions return false, do you know why? I checked with contains function before Remove or ReInsert so def definitely exists&lt;BR /&gt;&lt;BR /&gt;they work for project parameters created from shared parameters, but for newly created project parameters they both return false</description>
      <pubDate>Sun, 15 Sep 2024 04:29:52 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/adding-categories-to-existing-parameter-binding/m-p/13021560#M11395</guid>
      <dc:creator>phantbinh99</dc:creator>
      <dc:date>2024-09-15T04:29:52Z</dc:date>
    </item>
  </channel>
</rss>

