#region Namespaces
usingSystem;usingSystem.Collections;usingSystem.Collections.Generic;usingSystem.Diagnostics;usingAutodesk.Revit.ApplicationServices;usingAutodesk.Revit.Attributes;usingAutodesk.Revit.DB;usingAutodesk.Revit.UI;usingAutodesk.Revit.UI.Selection;#endregion
namespaceDesignOptionReader
{
[Autodesk.Revit.Attributes.Transaction(TransactionMode.Manual)]
[Autodesk.Revit.Attributes.Regeneration(RegenerationOption.Manual)]
[Autodesk.Revit.Attributes.Journaling(JournalingMode.NoCommandData)]public classCommand : IExternalCommand
{publicResult Execute(
ExternalCommandData commandData,ref stringmessage,
ElementSet elements)
{try{
Application application=commandData.Application.Application;
ElementClassFilter filter= new ElementClassFilter(typeof(Autodesk.Revit.DB.DesignOption));
FilteredElementCollector collector= newFilteredElementCollector(commandData.Application.ActiveUIDocument.Document);
collector.WherePasses(filter);
IEnumerator iter=collector.GetElementIdIterator();
Element element;
ElementSet designOptions= newElementSet();while(iter.MoveNext())
{
element= iter.Current asElement;if (element.GetType().Equals(typeof(Autodesk.Revit.DB.DesignOption)))
{
designOptions.Insert(element);
}
}if (designOptions.Size > 0)
{
DesignOptionsDialog dialog= newDesignOptionsDialog();foreach (Element elem indesignOptions)
{
dialog.DesignOptionsList.Items.Add(elem.Name);
}
dialog.ShowDialog();
}else{
TaskDialog.Show("DesignOptions","There are no design options in this document");
}
}catch(Exception ex)
{
message=ex.Message;returnResult.Failed;
}returnResult.Succeeded;
}
}
}