<?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: How to loop through the Design Option Sets of a document? in Revit API Forum</title>
    <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-loop-through-the-design-option-sets-of-a-document/m-p/12616938#M68879</link>
    <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/4252815"&gt;@jan_christel&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I am trying to do something similar in python.&amp;nbsp; My code is trying to create a list of the Design Option Sets associated with each Design Option in a list.&amp;nbsp; I am using what seems to me to be identical code to what you showed, but I get an error:&amp;nbsp; &amp;nbsp;&lt;STRONG&gt;AttributeError: 'Parameter' object has no attribute 'AsElementID'&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;designOptions is the variable that holds the list of Design Options.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="general"&gt;designOptionSets = []
for dO in designOptions:
    designOptionSet = doc.GetElement(dO.get_Parameter(BuiltInParameter.OPTION_SET_ID).AsElementID())
    designOptionSets.append(designOptionSet)&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Any and all suggestions are welcome.&amp;nbsp; Am I missing an import statement?&amp;nbsp; Here is what I have for that:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="general"&gt;import clr

# Import RevitAPI.
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *

clr.AddReference("RevitNodes")
import Revit

clr.ImportExtensions(Revit.Elements)
clr.ImportExtensions(Revit.GeometryConversion)

# Import Document Manager and TransactionManager.
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I am doing this in Revit 2022 at the moment if that matters.&lt;/P&gt;</description>
    <pubDate>Tue, 05 Mar 2024 21:14:35 GMT</pubDate>
    <dc:creator>David_W_Koch</dc:creator>
    <dc:date>2024-03-05T21:14:35Z</dc:date>
    <item>
      <title>How to loop through the Design Option Sets of a document?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-loop-through-the-design-option-sets-of-a-document/m-p/5950656#M68874</link>
      <description>&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm having trouble looping through all of the Design Option Sets in a document. I'm able to loop through all of the Design Options, but that object seems to have no information about what Design Option Set it belongs to. Code below.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Essentially, in the end I would like to display the Design Option Sets and Design Options in a TreeView, much like how it is shown in Revit.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Looping through design options of a document:&lt;/P&gt;&lt;P&gt;For Each projectDocument As Revit.DB.Document In commandData.Application.Application.Documents&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; If linkedModelData.Contains(D &amp;amp; projectDocument.PathName &amp;amp; L) Then&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; Dim linkedModelRootNode = tvDesignOptions.Nodes.Add(projectDocument.Title)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Loop through design options and add to the tree view&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; Dim collector = New Revit.DB.FilteredElementCollector(projectDocument)&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; Dim FilteredDesignOptionElements = collector.OfClass(GetType(Revit.DB.DesignOption)).GetElementIterator&lt;/P&gt;&lt;P&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; While FilteredDesignOptionElements.MoveNext&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; Dim currentDesignOption As DesignOption = FilteredDesignOptionElements.Current&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim designOptionNode = linkedModelRootNode.Nodes.Add(currentDesignOption.Name)&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; designOptionNode.Tag = currentDesignOption.UniqueId &amp;amp; D &amp;amp; projectDocument.PathName&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'If the design option was previously selected, set to checked&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; If CurrentlySelectedDesignOptions.Contains(D &amp;amp; currentDesignOption.UniqueId &amp;amp; D) Or currentDesignOption.IsPrimary Then&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; designOptionNode.Checked = True&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; End If&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; End While&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; linkedModelRootNode.ExpandAll()&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; End If&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; Next&lt;/P&gt;</description>
      <pubDate>Mon, 14 Dec 2015 17:26:46 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-loop-through-the-design-option-sets-of-a-document/m-p/5950656#M68874</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2015-12-14T17:26:46Z</dc:date>
    </item>
    <item>
      <title>Re: How to loop through the Design Option Sets of a document?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-loop-through-the-design-option-sets-of-a-document/m-p/5951735#M68875</link>
      <description>&lt;P&gt;Dear John,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;\You could simplify your code a bit and skip the&amp;nbsp;&lt;SPAN&gt;GetElementIterator and MoveNext stuff by simply using Foreach directly on the collector itself.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;You could also make your code a little bit more readable by using the {i} 'Insert Code' button above.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;I searched the Revit API help for various combinations of the three words design option set.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;I found some interesting titbits like the&amp;nbsp;&lt;/SPAN&gt;ElementDesignOptionFilter and&amp;nbsp;PrimaryDesignOptionMemberFilter classes, the&amp;nbsp;ElementRecord.GetDesignOptionId method (mistake?) and the&amp;nbsp;Element.DesignOption property, but nothing that looks as if it might be useful for you.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Maybe there is no official API support for what you want to achieve.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here is an unofficial approach that does some of it:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://thebuildingcoder.typepad.com/blog/2015/03/list-and-switch-design-options-using-ui-automation.html" target="_blank"&gt;http://thebuildingcoder.typepad.com/blog/2015/03/list-and-switch-design-options-using-ui-automation.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I look forward to hearing how you end up solving this.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Good luck!&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;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 15 Dec 2015 09:42:13 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-loop-through-the-design-option-sets-of-a-document/m-p/5951735#M68875</guid>
      <dc:creator>jeremytammik</dc:creator>
      <dc:date>2015-12-15T09:42:13Z</dc:date>
    </item>
    <item>
      <title>Re: How to loop through the Design Option Sets of a document?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-loop-through-the-design-option-sets-of-a-document/m-p/7946241#M68876</link>
      <description>&lt;P&gt;&amp;nbsp;A bit late, but maybe it'll help someone...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;public class DesignOptionSet
{
    public string Name { get; set; }
    public IEnumerable&amp;lt;string&amp;gt; DesignOptions { get; set; }
}&lt;/PRE&gt;&lt;PRE&gt;private IEnumerable&amp;lt;DesignOptionSet&amp;gt; GetDesignOptionSets(Document document)
{
    List&amp;lt;DesignOptionSet&amp;gt; designOptionSets = new List&amp;lt;DesignOptionSet&amp;gt;();

    foreach (DesignOption dOpt in new FilteredElementCollector(document).OfClass(typeof(DesignOption)).Cast&amp;lt;DesignOption&amp;gt;())
    {
        DesignOptionSet t = new DesignOptionSet();
        Element e = document.GetElement(dOpt.get_Parameter(BuiltInParameter.OPTION_SET_ID).AsElementId());

        t.Name = e.Name;
        List&amp;lt;string&amp;gt; option = new List&amp;lt;string&amp;gt;
        {
            dOpt.Name
        };
        t.DesignOptions = option;
        designOptionSets.Add(t);
    }

    // group by name to remove duplicate names and group options
    designOptionSets = designOptionSets
        .GroupBy(t =&amp;gt; t.Name,
            (k, opt) =&amp;gt; new DesignOptionSet()
            {
                Name = k,
                DesignOptions = opt.Select(ts =&amp;gt; ts.DesignOptions.FirstOrDefault()).ToList()
            }
            ).ToList();

    return designOptionSets;

}&lt;/PRE&gt;</description>
      <pubDate>Thu, 19 Apr 2018 20:46:38 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-loop-through-the-design-option-sets-of-a-document/m-p/7946241#M68876</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2018-04-19T20:46:38Z</dc:date>
    </item>
    <item>
      <title>Re: How to loop through the Design Option Sets of a document?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-loop-through-the-design-option-sets-of-a-document/m-p/10359702#M68877</link>
      <description>&lt;P&gt;That works a charm! Thank you!&lt;/P&gt;</description>
      <pubDate>Thu, 03 Jun 2021 00:54:00 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-loop-through-the-design-option-sets-of-a-document/m-p/10359702#M68877</guid>
      <dc:creator>jan_christel</dc:creator>
      <dc:date>2021-06-03T00:54:00Z</dc:date>
    </item>
    <item>
      <title>Re: How to loop through the Design Option Sets of a document?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-loop-through-the-design-option-sets-of-a-document/m-p/10359797#M68878</link>
      <description>&lt;P&gt;Here is the above code in python &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;#&amp;nbsp;desing&amp;nbsp;sets&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;def&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;GetNumberOfDesignSets(doc):&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;collector&amp;nbsp;=&amp;nbsp;FilteredElementCollector(doc).OfClass(DesignOption)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;designSets&amp;nbsp;=&amp;nbsp;[]&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;for&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;do&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;in&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;collector:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;e&amp;nbsp;=&amp;nbsp;doc.GetElement(do.get_Parameter(BuiltInParameter.OPTION_SET_ID).AsElementId())&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;designSetName&amp;nbsp;=&amp;nbsp;Element.Name.GetValue(e)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt;(designSetName&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;not&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;in&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;designSets):&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&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;designSets.append(designSetName)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;return&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;len(designSets)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Thu, 03 Jun 2021 02:13:06 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-loop-through-the-design-option-sets-of-a-document/m-p/10359797#M68878</guid>
      <dc:creator>jan_christel</dc:creator>
      <dc:date>2021-06-03T02:13:06Z</dc:date>
    </item>
    <item>
      <title>Re: How to loop through the Design Option Sets of a document?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-loop-through-the-design-option-sets-of-a-document/m-p/12616938#M68879</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/4252815"&gt;@jan_christel&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I am trying to do something similar in python.&amp;nbsp; My code is trying to create a list of the Design Option Sets associated with each Design Option in a list.&amp;nbsp; I am using what seems to me to be identical code to what you showed, but I get an error:&amp;nbsp; &amp;nbsp;&lt;STRONG&gt;AttributeError: 'Parameter' object has no attribute 'AsElementID'&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;designOptions is the variable that holds the list of Design Options.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="general"&gt;designOptionSets = []
for dO in designOptions:
    designOptionSet = doc.GetElement(dO.get_Parameter(BuiltInParameter.OPTION_SET_ID).AsElementID())
    designOptionSets.append(designOptionSet)&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Any and all suggestions are welcome.&amp;nbsp; Am I missing an import statement?&amp;nbsp; Here is what I have for that:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="general"&gt;import clr

# Import RevitAPI.
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *

clr.AddReference("RevitNodes")
import Revit

clr.ImportExtensions(Revit.Elements)
clr.ImportExtensions(Revit.GeometryConversion)

# Import Document Manager and TransactionManager.
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I am doing this in Revit 2022 at the moment if that matters.&lt;/P&gt;</description>
      <pubDate>Tue, 05 Mar 2024 21:14:35 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-loop-through-the-design-option-sets-of-a-document/m-p/12616938#M68879</guid>
      <dc:creator>David_W_Koch</dc:creator>
      <dc:date>2024-03-05T21:14:35Z</dc:date>
    </item>
    <item>
      <title>Re: How to loop through the Design Option Sets of a document?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-loop-through-the-design-option-sets-of-a-document/m-p/12618066#M68880</link>
      <description>&lt;P&gt;Hi David,&lt;BR /&gt;&lt;BR /&gt;Uh that had me stumped &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;BR /&gt;Turns out there is a spelling error in this line:&lt;/P&gt;&lt;PRE&gt;designOptionSet = doc.GetElement(dO.get_Parameter(BuiltInParameter.OPTION_SET_ID).AsElementID())&lt;/PRE&gt;&lt;P&gt;should be:&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;designOptionSet = doc.&lt;SPAN&gt;GetElement&lt;/SPAN&gt;(dO.&lt;SPAN&gt;get_Parameter&lt;/SPAN&gt;(BuiltInParameter.OPTION_SET_ID).&lt;SPAN&gt;AsElementId&lt;/SPAN&gt;())&lt;BR /&gt;&lt;BR /&gt;ElementID vs ElementId (lowercase d in Id)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 05 Mar 2024 22:34:53 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-loop-through-the-design-option-sets-of-a-document/m-p/12618066#M68880</guid>
      <dc:creator>jan_christel</dc:creator>
      <dc:date>2024-03-05T22:34:53Z</dc:date>
    </item>
    <item>
      <title>Re: How to loop through the Design Option Sets of a document?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-loop-through-the-design-option-sets-of-a-document/m-p/12618078#M68881</link>
      <description>&lt;P&gt;I am at a loss here.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The API documentation says that the Parameter Class has an &lt;STRONG&gt;AsElementID&lt;/STRONG&gt; method.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;(dO0.get_Parameter(BuiltInParameter.OPTION_SET_ID)) , where dO0 is the first item on my designOptions elements list:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Prints as&amp;nbsp;
&lt;DIV class="entry"&gt;&lt;STRONG&gt;&amp;lt;Autodesk.Revit.DB.Parameter object at 0x0000000000000513 [Autodesk.Revit.DB.Parameter]&amp;gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;/LI&gt;
&lt;LI&gt;The StorageType is &lt;STRONG&gt;ElementID&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;LI&gt;The HasValue property is &lt;STRONG&gt;True&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;LI&gt;Yet&amp;nbsp;&lt;STRONG&gt;(dO0.get_Parameter(BuiltInParameter.OPTION_SET_ID).AsElementID())&lt;/STRONG&gt; throws an error stating &lt;STRONG&gt;AttributeError:&amp;nbsp; 'Parameter' object has no attribute 'AsElementID'&lt;/STRONG&gt;.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;I tried this in Revit 2020 and 2024 as well and got the same results.&lt;/P&gt;</description>
      <pubDate>Tue, 05 Mar 2024 22:40:49 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-loop-through-the-design-option-sets-of-a-document/m-p/12618078#M68881</guid>
      <dc:creator>David_W_Koch</dc:creator>
      <dc:date>2024-03-05T22:40:49Z</dc:date>
    </item>
    <item>
      <title>Re: How to loop through the Design Option Sets of a document?</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-loop-through-the-design-option-sets-of-a-document/m-p/12618090#M68882</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/4252815"&gt;@jan_christel&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Hi David,&lt;BR /&gt;&lt;BR /&gt;Uh that had me stumped &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;BR /&gt;Turns out there is a spelling error in this line:&lt;/P&gt;
&lt;PRE&gt;designOptionSet = doc.GetElement(dO.get_Parameter(BuiltInParameter.OPTION_SET_ID).AsElementID())&lt;/PRE&gt;
&lt;P&gt;should be:&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;designOptionSet = doc.&lt;SPAN&gt;GetElement&lt;/SPAN&gt;(dO.&lt;SPAN&gt;get_Parameter&lt;/SPAN&gt;(BuiltInParameter.OPTION_SET_ID).&lt;SPAN&gt;AsElementId&lt;/SPAN&gt;())&lt;BR /&gt;&lt;BR /&gt;ElementID vs ElementId (lowercase d in Id)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;THANK YOU!&amp;nbsp; I am embarrassed to say how long I have stared at this code, comparing it to the sources I had, and never saw the error in capitalizing the "d".&amp;nbsp; Ignore my previous post - I started writing it before your reply.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks again!&lt;/P&gt;</description>
      <pubDate>Tue, 05 Mar 2024 22:47:16 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-loop-through-the-design-option-sets-of-a-document/m-p/12618090#M68882</guid>
      <dc:creator>David_W_Koch</dc:creator>
      <dc:date>2024-03-05T22:47:16Z</dc:date>
    </item>
  </channel>
</rss>

