private void buttonDelete_Click(object sender, RoutedEventArgs e) { try { if (null != dataGridRevision.SelectedItems) { StringBuilder strBuilder = new StringBuilder(); strBuilder.AppendLine("Would you like to delete following revision items and related information?\n"); List <RevitRevision> revisions = new List <RevitRevision>(); foreach (object selectedItem in dataGridRevision.SelectedItems) { RevitRevision rvtRevision = selectedItem as RevitRevision; strBuilder.AppendLine("\"" + rvtRevision.Description + "\""); revisions.Add(rvtRevision); } if (revisions.Count > 0) { MessageBoxResult msgResult = MessageBox.Show(strBuilder.ToString(), "Delete Revisions", MessageBoxButton.YesNo, MessageBoxImage.Question); if (msgResult == MessageBoxResult.Yes) { foreach (RevitRevision rvtRevision in revisions) { this.RvtSheetData.Revisions.Remove(rvtRevision); bool revisionDeleted = SheetDataWriter.ChangeRevisionItem(rvtRevision, CommandType.DELETE); bool rosDeleted = SheetDataWriter.DeleteRevisionOnSheet("RevisionsOnSheet_Revision_Id", rvtRevision.Id.ToString()); bool linkedDeleted = SheetDataWriter.ChangeLinkedRevision(rvtRevision.Id, "LinkedRevision_Revision_Id", rvtRevision.Id.ToString(), CommandType.DELETE); } for (int sheetIndex = 0; sheetIndex < rvtSheetData.Sheets.Count; sheetIndex++) { foreach (RevitRevision rvtRevision in revisions) { if (rvtSheetData.Sheets[sheetIndex].SheetRevisions.ContainsKey(rvtRevision.Id)) { this.RvtSheetData.Sheets[sheetIndex].SheetRevisions.Remove(rvtRevision.Id); } } } } } } } catch (Exception ex) { string message = ex.Message; } }
private void OnCollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { try { if (e.NewItems != null && e.Action == NotifyCollectionChangedAction.Add) { foreach (RevitSheet sheet in e.NewItems) { int index = rvtSheetData.Sheets.IndexOf(sheet); Guid sheetId = Guid.NewGuid(); this.RvtSheetData.Sheets[index].Id = sheetId; bool sheetDBUpdated = SheetDataWriter.ChangeSheetItem(rvtSheetData.Sheets[index], CommandType.INSERT); foreach (SheetParameter sheetParam in rvtSheetData.SheetParameters) { SheetParameterValue paramValue = new SheetParameterValue(); paramValue.ParameterValueId = Guid.NewGuid(); paramValue.Parameter = sheetParam; paramValue.SheetId = sheetId; this.RvtSheetData.Sheets[index].SheetParameters.Add(sheetParam.ParameterId, paramValue); } bool sheetParamDBUpdated = SheetDataWriter.InsertMultipleParameterValue(RvtSheetData.Sheets[index].SheetParameters.Values.ToList()); foreach (RevitRevision revision in rvtSheetData.Revisions) { RevisionOnSheet ros = new RevisionOnSheet(Guid.NewGuid(), sheetId, revision, false); this.RvtSheetData.Sheets[index].SheetRevisions.Add(revision.Id, ros); } bool rosDBUpdated = SheetDataWriter.InsertMultipleRevisionOnSheet(RvtSheetData.Sheets[index].SheetRevisions.Values.ToList()); } } if (e.OldItems != null && e.Action == NotifyCollectionChangedAction.Remove) { foreach (RevitSheet sheet in e.OldItems) { bool sheetDBUpdated = SheetDataWriter.ChangeSheetItem(sheet, CommandType.DELETE); bool sheetParamDBUpdated = SheetDataWriter.DeleteSheetParameterValue(sheet.Id.ToString()); bool rosDBUpdated = SheetDataWriter.DeleteRevisionOnSheet("RevisionsOnSheet_Sheet_Id", sheet.Id.ToString()); } } } catch (Exception ex) { string message = ex.Message; } }
private bool DeleteSheet(ElementId sheetId) { bool deleted = false; try { if (idMaps.ContainsKey(sheetId)) { string uniqueId = idMaps[sheetId]; LinkedSheet linkedSheet = dataManager.GetLinkedSheet(uniqueId, linkedProjectId); if (null != linkedSheet) { if (linkedSheet.IsSource) { MessageBoxResult msgResult = MessageBox.Show("Would you like to delete the sheet item in the linked database?", "Delete Sheet Source Item", MessageBoxButton.YesNo, MessageBoxImage.Question); if (msgResult == MessageBoxResult.Yes) { RevitSheet rvtSheet = new RevitSheet() { Id = linkedSheet.SheetId }; bool sheetDeleted = SheetDataWriter.ChangeSheetItem(rvtSheet, CommandType.DELETE); bool paramDeleted = SheetDataWriter.DeleteSheetParameterValue(rvtSheet.Id.ToString()); bool revisionDeleted = SheetDataWriter.DeleteRevisionOnSheet("RevisionsOnSheet_Sheet_Id", rvtSheet.Id.ToString()); bool linkDeleted = SheetDataWriter.ChangeLinkedSheet(linkedSheet, CommandType.DELETE); deleted = (sheetDeleted && paramDeleted && revisionDeleted && linkDeleted) ? true : false; } else { deleted = SheetDataWriter.ChangeLinkedSheet(linkedSheet, CommandType.DELETE); } } else { deleted = SheetDataWriter.ChangeLinkedSheet(linkedSheet, CommandType.DELETE); } } } } catch (Exception ex) { string message = ex.Message; } return(deleted); }
private bool DeleteRevision(ElementId revisionId) { bool deleted = false; try { if (idMaps.ContainsKey(revisionId)) { string uniqueId = idMaps[revisionId]; LinkedRevision linkedRevision = dataManager.GetLinkedRevision(uniqueId, linkedProjectId); if (null != linkedRevision) { if (linkedRevision.IsSource) { MessageBoxResult msgResult = MessageBox.Show("Would you like to delete the revision item in the linked database?", "Delete Revision Source Item", MessageBoxButton.YesNo, MessageBoxImage.Question); if (msgResult == MessageBoxResult.Yes) { RevitRevision rvtRevision = new RevitRevision(); rvtRevision.Id = linkedRevision.RevisionId; bool revisionDeleted = SheetDataWriter.ChangeRevisionItem(rvtRevision, CommandType.DELETE); bool rosDeleted = SheetDataWriter.DeleteRevisionOnSheet("RevisionsOnSheet_Revision_Id", rvtRevision.Id.ToString()); bool linkDeleted = SheetDataWriter.ChangeLinkedRevision(linkedRevision, CommandType.DELETE); deleted = (revisionDeleted && rosDeleted && linkDeleted) ? true : false; } else { deleted = SheetDataWriter.ChangeLinkedRevision(linkedRevision, CommandType.DELETE); } } else { deleted = SheetDataWriter.ChangeLinkedRevision(linkedRevision, CommandType.DELETE); } } } } catch (Exception ex) { string message = ex.Message; } return(deleted); }