private static bool UpdateDatabaseItem(object item, string propertyName, object propertyValue) { bool databaseUpdated = false; try { if (item.GetType() == typeof(RevitSheet)) { RevitSheet sheet = item as RevitSheet; switch (propertyName) { case "Sheet Number": databaseUpdated = SheetDataWriter.ChangeSheetItem(sheet.Id.ToString(), propertyName, propertyValue.ToString()); break; case "Sheet Name": databaseUpdated = SheetDataWriter.ChangeSheetItem(sheet.Id.ToString(), propertyName, propertyValue.ToString()); break; case "Discipline": Discipline discipline = propertyValue as Discipline; if (null != discipline) { databaseUpdated = SheetDataWriter.ChangeSheetItem(sheet.Id.ToString(), propertyName, discipline.Id.ToString()); } break; default: var paramValueFound = from paramValue in sheet.SheetParameters.Values where paramValue.Parameter.ParameterName == propertyName select paramValue; if (paramValueFound.Count() > 0) { SheetParameterValue paramValue = paramValueFound.First(); paramValue.ParameterValue = propertyValue.ToString(); databaseUpdated = SheetDataWriter.ChangeSheetParameterValue(paramValue, HOK.SheetManager.Database.CommandType.UPDATE); } break; } } } catch (Exception ex) { string message = ex.Message; } return(databaseUpdated); }
private bool UpdateSheet(ViewSheet viewSheet, List <ElementId> paramIds) { bool updated = false; try { LinkedSheet lsheet = dataManager.GetLinkedSheet(viewSheet.UniqueId, linkedProjectId); if (null != lsheet) { foreach (ElementId paramId in paramIds) { string paramName = sheetParameters[paramId]; Parameter param = viewSheet.LookupParameter(paramName); if (null != param) { string paramValue = ""; switch (param.StorageType) { case StorageType.Double: paramValue = param.AsDouble().ToString(); break; case StorageType.ElementId: paramValue = param.AsElementId().IntegerValue.ToString(); break; case StorageType.Integer: paramValue = param.AsInteger().ToString(); break; case StorageType.String: paramValue = param.AsString(); break; } var paramFound = from sheetParam in rvtSheetParameters where sheetParam.ParameterName == paramName select sheetParam; if (paramFound.Count() > 0) { SheetParameter sheetParam = paramFound.First(); SheetParameterValue sheetParamValue = dataManager.GetSheetParameterValue(sheetParam.ParameterId, lsheet.SheetId); sheetParamValue.ParameterValue = paramValue; updated = SheetDataWriter.ChangeSheetParameterValue(sheetParamValue, CommandType.UPDATE); } else if (paramId.IntegerValue == (int)BuiltInParameter.SHEET_NAME) { updated = SheetDataWriter.ChangeSheetItem(lsheet.SheetId.ToString(), "Sheet_Name", paramValue); } else if (paramId.IntegerValue == (int)BuiltInParameter.SHEET_NUMBER) { updated = SheetDataWriter.ChangeSheetItem(lsheet.SheetId.ToString(), "Sheet_Number", paramValue); } } } } } catch (Exception ex) { string message = ex.Message; } return(updated); }
private void dataGridSheet_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) { try { DataGridRow row = e.Row; if (null != row) { RevitSheet oldSheet = row.Item as RevitSheet; string propertyName = e.Column.Header.ToString(); switch (propertyName) { case "Sheet Number": TextBox textBoxNumber = e.EditingElement as TextBox; if (null != textBoxNumber) { string updatedNumber = textBoxNumber.Text; var numbers = from sheet in rvtSheetData.Sheets select sheet.Number; if (numbers.Contains(updatedNumber)) { e.Cancel = true; MessageBox.Show(updatedNumber + " already exists in the list of sheets.\nPlease enter a different sheet name", "Existing Sheet Number", MessageBoxButton.OK, MessageBoxImage.Information); return; } else { bool databaseUpdated = SheetDataWriter.ChangeSheetItem(oldSheet.Id.ToString(), "Sheet_Number", textBoxNumber.Text); } } break; case "Sheet Name": TextBox textBoxName = e.EditingElement as TextBox; if (null != textBoxName) { bool databaseUpdated = SheetDataWriter.ChangeSheetItem(oldSheet.Id.ToString(), "Sheet_Name", textBoxName.Text); } break; case "Discipline": ComboBox comboBoxDiscipline = e.EditingElement as ComboBox; if (null != comboBoxDiscipline) { Discipline selectedDiscipline = comboBoxDiscipline.SelectedItem as Discipline; if (null != selectedDiscipline) { bool databaseUpdated = SheetDataWriter.ChangeSheetItem(oldSheet.Id.ToString(), "Sheet_Discipline_Id", selectedDiscipline.Id.ToString()); } } break; default: //sheetParameter changed TextBox textBoxParam = e.EditingElement as TextBox; var paramValueFound = from paramValue in oldSheet.SheetParameters.Values where paramValue.Parameter.ParameterName == propertyName select paramValue; if (paramValueFound.Count() > 0 && null != textBoxParam) { SheetParameterValue paramValue = paramValueFound.First(); paramValue.ParameterValue = textBoxParam.Text; bool databaseUpdated = SheetDataWriter.ChangeSheetParameterValue(paramValue, CommandType.UPDATE); } break; } } } catch (Exception ex) { string message = ex.Message; } }