示例#1
0
        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);
        }
示例#2
0
        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;
            }
        }