public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { SlackForm slackForm = new SlackForm(); slackForm.ShowDialog(); if (slackForm.DialogResult == DialogResult.OK) { Document doc = commandData.Application.ActiveUIDocument.Document; Autodesk.Revit.ApplicationServices.Application app = doc.Application; if (doc.IsFamilyDocument) { TaskDialog.Show("Exception", "These settings can only be saved while in a Revit project, not in a Family."); } SlackSettings s = new SlackSettings(); s.slackCh = Variables.slackCh; s.slackChId = Variables.slackChId; s.slackOn = Variables.slackOn; s.slackToken = Variables.slackToken; SharedParam.SetParameter(app, doc, Variables.defNameSettings, JsonConvert.SerializeObject(s).ToString()); } return Result.Succeeded; }
public static void Set(Application app, Document doc, string name, SlackSettings s) { ExtensibleStorageFilter f = new ExtensibleStorageFilter( ExtensibleStorage.SettingsSchema.SchemaGuid); DataStorage dataStorage = new FilteredElementCollector(doc) .OfClass(typeof(DataStorage)) .WherePasses(f) .Where <Element>(e => name.Equals(e.Name)) .FirstOrDefault <Element>() as DataStorage; Entity entity; if (dataStorage == null) { using (Transaction t = new Transaction(doc, "Create settings schema")) { t.Start(); dataStorage = DataStorage.Create(doc); dataStorage.Name = name; entity = new Entity(ExtensibleStorage.SettingsSchema.InitializeSchema()); dataStorage.SetEntity(entity); t.Commit(); } } Transaction updateSettings = new Transaction(doc, "Update settings"); updateSettings.Start(); entity = dataStorage.GetEntity(ExtensibleStorage.SettingsSchema.InitializeSchema()); entity.Set("slackOn", s.slackOn); entity.Set("slackWSWarn", s.slackWSWarn); entity.Set("slackModelWarn", s.slackModelWarn); entity.Set("slackBPWarn", s.slackBPWarn); entity.Set("slackWSInfo", s.slackWSInfo); entity.Set("slackModelInfo", s.slackModelInfo); entity.Set("slackBPInfo", s.slackBPInfo); entity.Set("slackExtraTrackPin", s.slackExtraTrackPin); entity.Set("giphySet", s.giphySet); entity.Set("tidySet", s.tidySet); entity.Set("slackToken", s.slackToken); entity.Set("slackCh", s.slackCh); entity.Set("slackChId", s.slackChId); dataStorage.SetEntity(entity); updateSettings.Commit(); }
public static void Set(Application app, Document doc, string name, SlackSettings s) { ExtensibleStorageFilter f = new ExtensibleStorageFilter( ExtensibleStorage.SettingsSchema.SchemaGuid); DataStorage dataStorage = new FilteredElementCollector(doc) .OfClass(typeof(DataStorage)) .WherePasses(f) .Where<Element>(e => name.Equals(e.Name)) .FirstOrDefault<Element>() as DataStorage; Entity entity; if (dataStorage == null) { using (Transaction t = new Transaction(doc, "Create settings schema")) { t.Start(); dataStorage = DataStorage.Create(doc); dataStorage.Name = name; entity = new Entity(ExtensibleStorage.SettingsSchema.InitializeSchema()); dataStorage.SetEntity(entity); t.Commit(); } } Transaction updateSettings = new Transaction(doc, "Update settings"); updateSettings.Start(); entity = dataStorage.GetEntity(ExtensibleStorage.SettingsSchema.InitializeSchema()); entity.Set("slackOn", s.slackOn); entity.Set("slackWSWarn", s.slackWSWarn); entity.Set("slackModelWarn", s.slackModelWarn); entity.Set("slackBPWarn", s.slackBPWarn); entity.Set("slackWSInfo", s.slackWSInfo); entity.Set("slackModelInfo", s.slackModelInfo); entity.Set("slackBPInfo", s.slackBPInfo); entity.Set("slackExtraTrackPin", s.slackExtraTrackPin); entity.Set("giphySet", s.giphySet); entity.Set("tidySet", s.tidySet); entity.Set("slackToken", s.slackToken); entity.Set("slackCh", s.slackCh); entity.Set("slackChId", s.slackChId); dataStorage.SetEntity(entity); updateSettings.Commit(); }
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements) { Document doc = commandData.Application.ActiveUIDocument.Document; ParameterCommands.Load(doc); SlackForm slackForm = new SlackForm(); slackForm.ShowDialog(); if (slackForm.DialogResult == DialogResult.OK) { Autodesk.Revit.ApplicationServices.Application app = doc.Application; if (doc.IsFamilyDocument) { TaskDialog.Show("Exception", "These settings can only be saved while in a Revit project, not in a Family."); } SlackSettings s = new SlackSettings(); s.slackCh = Variables.slackCh; s.slackChId = Variables.slackChId; s.slackOn = Variables.slackOn; s.slackWSWarn = Variables.slackWSWarn; s.slackModelWarn = Variables.slackModelWarn; s.slackBPWarn = Variables.slackBPWarn; s.slackWSInfo = Variables.slackWSInfo; s.slackModelInfo = Variables.slackModelInfo; s.slackBPInfo = Variables.slackBPInfo; s.slackExtraTrackPin = Variables.slackExtraTrackPin; s.tidySet = Variables.tidySet; s.giphySet = Variables.giphySet; s.slackToken = Variables.slackToken; ParameterCommands.Set(app, doc, Variables.defNameSettings, s); } return(Result.Succeeded); }