OnBnEnumMap(object sender, EventArgs e) { ArrayList labelStrs = new ArrayList(); ArrayList valueStrs = new ArrayList(); // TBD: iterating over the Parameters using basic reflection gives us lots // of duplicates (not sure why). Instead, use Enum.GetNames() which will return // only unique Enum names. Then go backward to get the actual BuiltinParam Enum. // See TestElements.ParameterEnums() and TestElements.ParameterEnumsNoDup() for an // explanation of what is going on. (jma - 07/24/06) string [] strs = System.Enum.GetNames(typeof(BuiltInParameter)); foreach (string str in strs) { // look up the actual enum from its name BuiltInParameter paramEnum = (BuiltInParameter)System.Enum.Parse(typeof(BuiltInParameter), str); // see if this Element supports that parameter Parameter tmpParam = m_elem.get_Parameter(paramEnum); if (tmpParam != null) { labelStrs.Add(str); valueStrs.Add(tmpParam.Definition.Name); } } RevitLookup.Snoop.Forms.ParamEnum dbox = new RevitLookup.Snoop.Forms.ParamEnum(labelStrs, valueStrs); dbox.ShowDialog(); }
private void ParameterEnumsNoDups() { ArrayList labelStrs = new ArrayList(); ArrayList valueStrs = new ArrayList(); string[] strs = System.Enum.GetNames( typeof( BuiltInParameter ) ); foreach( string str in strs ) { BuiltInParameter paramEnum = (BuiltInParameter) System.Enum.Parse( typeof( BuiltInParameter ), str ); labelStrs.Add( str ); valueStrs.Add( string.Format( "{0:d}", (int) paramEnum ) ); } RevitLookup.Snoop.Forms.ParamEnum dbox = new RevitLookup.Snoop.Forms.ParamEnum( labelStrs, valueStrs ); dbox.ShowDialog(); }
private void ParameterEnums() { ArrayList labelStrs = new ArrayList(); ArrayList valueStrs = new ArrayList(); foreach( BuiltInParameter paramEnum in System.Enum.GetValues( typeof( BuiltInParameter ) ) ) { labelStrs.Add( paramEnum.ToString() ); valueStrs.Add( string.Format( "{0:d}", (int) paramEnum ) ); } RevitLookup.Snoop.Forms.ParamEnum dbox = new RevitLookup.Snoop.Forms.ParamEnum( labelStrs, valueStrs ); dbox.ShowDialog(); }
private void CategoryEnums() { Revit.Categories categories = m_revitApp.ActiveUIDocument.Document.Settings.Categories; ArrayList labelStrs = new ArrayList(); ArrayList valueStrs = new ArrayList(); foreach( Revit.BuiltInCategory catEnum in System.Enum.GetValues( typeof( Revit.BuiltInCategory ) ) ) { labelStrs.Add( catEnum.ToString() ); try { Revit.Category cat = categories.get_Item( catEnum ); if( cat == null ) valueStrs.Add( "<null>" ); else valueStrs.Add( cat.Name ); } catch( System.Exception ) { Trace.WriteLine( catEnum.ToString() ); } } RevitLookup.Snoop.Forms.ParamEnum dbox = new RevitLookup.Snoop.Forms.ParamEnum( labelStrs, valueStrs ); dbox.ShowDialog(); }
OnBnEnumMap(object sender, EventArgs e) { ArrayList labelStrs = new ArrayList(); ArrayList valueStrs = new ArrayList(); // TBD: iterating over the Parameters using basic reflection gives us lots // of duplicates (not sure why). Instead, use Enum.GetNames() which will return // only unique Enum names. Then go backward to get the actual BuiltinParam Enum. // See TestElements.ParameterEnums() and TestElements.ParameterEnumsNoDup() for an // explanation of what is going on. (jma - 07/24/06) string [] strs = System.Enum.GetNames(typeof(BuiltInParameter)); foreach (string str in strs) { // look up the actual enum from its name BuiltInParameter paramEnum = (BuiltInParameter)System.Enum.Parse(typeof(BuiltInParameter), str); // see if this Element supports that parameter Parameter tmpParam = m_elem.get_Parameter(paramEnum); if (tmpParam != null) { labelStrs.Add(str); valueStrs.Add(tmpParam.Definition.Name); } } RevitLookup.Snoop.Forms.ParamEnum dbox = new RevitLookup.Snoop.Forms.ParamEnum(labelStrs, valueStrs); dbox.ShowDialog(); }