/// <summary> /// Command entry point /// </summary> /// <param name="commandData"></param> /// <param name="message"></param> /// <param name="elements"></param> /// <returns></returns> public Result Execute(ExternalCommandData commandData, ref string message, Autodesk.Revit.DB.ElementSet elements) { try { EADocumentData eadd = new EADocumentData(elements, commandData); EASharedParamData easp = new EASharedParamData("Rooms"); //easp.SetNewParameterToTypeRoom("Display"); MainWindow mw = new MainWindow(); mw.ShowDialog(); return(Result.Succeeded); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.Read(); return(Result.Failed); } }
/// <summary> /// /// </summary> /// <param name="elem"></param> void ParamFactory(Element elem, DataRow row) { foreach (KeyValuePair <string, string> usrParam in EAFileData.MapDict) { if (usrParam.Key == "Count" || usrParam.Key == "Name" || usrParam.Key == "") { continue; } bool match = false; ParameterSetIterator parSetItor = elem.Parameters.ForwardIterator(); while (parSetItor.MoveNext()) { Parameter elemParam = parSetItor.Current as Parameter; if (usrParam.Key == elemParam.Definition.Name) // if it already exists we need to assign it { match = true; // need to test storage type NOTE: may not need to do this... switch (elemParam.StorageType) { case StorageType.ElementId: // don't ever want to assign elementId break; case StorageType.Double: elemParam.SetValueString(row[usrParam.Value].ToString()); break; case StorageType.String: elemParam.Set(row[usrParam.Value].ToString()); break; case StorageType.Integer: if (elemParam.Definition.ParameterType != ParameterType.YesNo) { elemParam.SetValueString(row[usrParam.Value].ToString()); } break; default: break; } } } if (!match) // if it does NOT exist we need to create it { Category roomCat = EADocumentData.Doc.Settings.Categories.get_Item(BuiltInCategory.OST_Rooms); CategorySet catSet = new CategorySet(); catSet.Insert(roomCat); EASharedParamData.CreateProjParamFromExistSharedParam(usrParam.Key, catSet, BuiltInParameterGroup.PG_IDENTITY_DATA, true ); // now that we've made it, we need to set it ParameterSetIterator parSetRevItor = elem.Parameters.ReverseIterator(); while (parSetRevItor.MoveNext()) { Parameter elemParam = parSetRevItor.Current as Parameter; if (usrParam.Key == elemParam.Definition.Name) // if it already exists we need to assign it { switch (elemParam.StorageType) { case StorageType.ElementId: // don't ever want to assign elementId break; case StorageType.Double: elemParam.SetValueString(row[usrParam.Value].ToString()); break; case StorageType.String: elemParam.Set(row[usrParam.Value].ToString()); break; case StorageType.Integer: if (elemParam.Definition.ParameterType != ParameterType.YesNo) { elemParam.SetValueString(row[usrParam.Value].ToString()); } break; default: break; } break; } } } } }