public static void MigrateFamiliesFailureHandler(Object sender, FailuresProcessingEventArgs args) { MigrationLog log = MigrationLog.Instance; var fa = args.GetFailuresAccessor(); var fhOpts = fa.GetFailureHandlingOptions(); foreach (var fma in fa.GetFailureMessages()) { if (fma.GetSeverity() == FailureSeverity.Warning) { log.AppendLine("!!warning"); log.AppendLine(fma.GetDescriptionText()); args.SetProcessingResult(FailureProcessingResult.Continue); fa.DeleteWarning(fma); } //note: errors are not being generated on file open else if (fma.GetSeverity() == FailureSeverity.Error) { log.AppendLine("!!error"); log.AppendLine(fma.GetDescriptionText()); fhOpts.SetClearAfterRollback(true); fa.SetFailureHandlingOptions(fhOpts); args.SetProcessingResult(FailureProcessingResult.ProceedWithRollBack); fa.RollBackPendingTransaction(); } } }
public static void ProcessFailure(object sender, FailuresProcessingEventArgs args) { try { if (isElementModified && null != currentDoc) { FailuresAccessor fa = args.GetFailuresAccessor(); DTMWindow dtmWindow = new DTMWindow(currentDoc, elementModified); if ((bool)dtmWindow.ShowDialog()) { args.SetProcessingResult(FailureProcessingResult.ProceedWithRollBack); FailureHandlingOptions option = fa.GetFailureHandlingOptions(); option.SetClearAfterRollback(true); fa.SetFailureHandlingOptions(option); } isElementModified = false; } } catch (Exception ex) { string message = ex.Message; LogUtil.AppendLog("DTMFailure-ProcessFailure:" + ex.Message); } }
private static void OnFailuresProcessing(object sender, FailuresProcessingEventArgs e) { var failuresAccessor = e.GetFailuresAccessor(); var fmas = failuresAccessor.GetFailureMessages(); if (fmas.Count == 0) { e.SetProcessingResult(FailureProcessingResult.Continue); return; } foreach (var fma in fmas) { var severity = fma.GetSeverity(); try { if (severity == FailureSeverity.Warning) { failuresAccessor.DeleteWarning(fma); e.SetProcessingResult(FailureProcessingResult.Continue); } else { e.SetProcessingResult(FailureProcessingResult.ProceedWithRollBack); } } catch (Exception ex) { Log.AppendLog(LogMessageType.EXCEPTION, ex.Message); } } }
public static void ProcessFailure(object sender, FailuresProcessingEventArgs args) { try { if (!IsElementModified || CurrentDoc == null) { return; } FailureProcessor.IsFailureProcessing = true; var fa = args.GetFailuresAccessor(); var result = MessageBox.Show( "I am sorry, but you are not allowed to assign Surface Boundary Condition manually, nor to modify any existing properties."); if (result == MessageBoxResult.OK) { args.SetProcessingResult(FailureProcessingResult.ProceedWithRollBack); var option = fa.GetFailureHandlingOptions(); option.SetClearAfterRollback(true); fa.SetFailureHandlingOptions(option); } IsElementModified = false; FailureProcessor.IsFailureProcessing = false; } catch (Exception) { // ignore } }
private void OnFailuresProcessing(object sender, FailuresProcessingEventArgs e) { FailuresAccessor failuresAccessor = e.GetFailuresAccessor(); string transactionName = failuresAccessor.GetTransactionName(); IList <FailureMessageAccessor> fmas = failuresAccessor.GetFailureMessages(); if (fmas.Count == 0) { e.SetProcessingResult(FailureProcessingResult.Continue); return; } else { foreach (FailureMessageAccessor fma in fmas) { FailureSeverity severity = fma.GetSeverity(); try { if (severity == FailureSeverity.Warning) { failuresAccessor.DeleteWarning(fma); e.SetProcessingResult(FailureProcessingResult.Continue); } else { e.SetProcessingResult(FailureProcessingResult.ProceedWithRollBack); } } catch { } } } }
private static void FaliureProcessor2(object sender, FailuresProcessingEventArgs e) { FailuresAccessor fa = e.GetFailuresAccessor(); // Inside event handler, get all warnings IList <FailureMessageAccessor> a = fa.GetFailureMessages(); int count = 0; foreach (FailureMessageAccessor failure in a) { TaskDialog.Show("Failure", failure.GetDescriptionText()); fa.ResolveFailure(failure); ++count; } if (0 < count && e.GetProcessingResult() == FailureProcessingResult.Continue) { e.SetProcessingResult( FailureProcessingResult.ProceedWithCommit); } }
static private void OnFailuresProcessingEvent(object sender, FailuresProcessingEventArgs e) { FailuresAccessor failuresAccessor = e.GetFailuresAccessor(); IList <FailureMessageAccessor> failureMessages = failuresAccessor.GetFailureMessages(); if (failureMessages.Count == 0) { return; } foreach (FailureMessageAccessor failure in failureMessages) { if (failure.GetSeverity() == FailureSeverity.Error) { FailureResolutionType type = FailureResolutionType.Invalid; if (failure.HasResolutions() && GetFailureResolutionType(failuresAccessor, failure, ref type)) { failure.SetCurrentResolutionType(type); failuresAccessor.ResolveFailure(failure); e.SetProcessingResult(FailureProcessingResult.ProceedWithCommit); } } if (failure.GetSeverity() == FailureSeverity.Warning) { failuresAccessor.DeleteWarning(failure); } } }
private void CheckElementWarning(object sender, FailuresProcessingEventArgs args) { try { if (isElementChanged) { FailuresAccessor fa = args.GetFailuresAccessor(); WarningWindow warningWindow = new WarningWindow(reportingInfo); if ((bool)warningWindow.ShowDialog()) { args.SetProcessingResult(FailureProcessingResult.ProceedWithRollBack); FailureHandlingOptions option = fa.GetFailureHandlingOptions(); option.SetClearAfterRollback(true); fa.SetFailureHandlingOptions(option); } } } catch (Exception ex) { string message = ex.Message; MessageBox.Show("Failed to promt users for a warning message.\n" + ex.Message, "Check Element Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); } finally { isElementChanged = false; } }
public static void ProcessFailure(object sender, FailuresProcessingEventArgs args) { try { if (!IsElementModified || CurrentDoc == null) { return; } FailureProcessor.IsFailureProcessing = true; var fa = args.GetFailuresAccessor(); var dtmViewModel = new DTMViewModel(CurrentDoc, ElementModified); var dtmWindow = new DTMWindow { DataContext = dtmViewModel }; var showDialog = dtmWindow.ShowDialog(); if (showDialog != null && (bool)showDialog) { args.SetProcessingResult(FailureProcessingResult.ProceedWithRollBack); var option = fa.GetFailureHandlingOptions(); option.SetClearAfterRollback(true); fa.SetFailureHandlingOptions(option); } IsElementModified = false; FailureProcessor.IsFailureProcessing = false; } catch (Exception ex) { Log.AppendLog(LogMessageType.EXCEPTION, ex.Message); } }
private void Application_FailuresProcessing(object sender, FailuresProcessingEventArgs e) { FailuresAccessor failuresAccessor = e.GetFailuresAccessor(); IEnumerable <FailureMessageAccessor> failureMessages = failuresAccessor.GetFailureMessages(); if (failureMessages.Count() == 0) { // FailureProcessingResult.Continue is to let // the failure cycle continue next step. e.SetProcessingResult(FailureProcessingResult.Continue); return; } else { foreach (FailureMessageAccessor failureMessage in failureMessages) { if (failureMessage.GetSeverity() == FailureSeverity.Warning) { failuresAccessor.DeleteWarning(failureMessage); } else { failuresAccessor.ResolveFailure(failureMessage); } } } //String transactionName = failuresAccessor.GetTransactionName(); e.SetProcessingResult(FailureProcessingResult.Continue); }
/// <summary> /// Error handler for "Constraints are not satisfied" that pops up frequently w/ Families. /// </summary> private static void FailureProcessing(object sender, FailuresProcessingEventArgs args) { var fa = args.GetFailuresAccessor(); var fmas = fa.GetFailureMessages(); var count = 0; if (fmas.Count == 0) { args.SetProcessingResult(FailureProcessingResult.Continue); return; } foreach (var fma in fmas) { if (fma.GetSeverity() == FailureSeverity.Warning) { fa.DeleteWarning(fma); } else { fa.ResolveFailure(fma); count++; } } if (count > 0) { args.SetProcessingResult(FailureProcessingResult.ProceedWithCommit); } }
public static void CheckFailure(object sender, FailuresProcessingEventArgs args) { if (IsFailureProcessing) { return; } if (IsSynchronizing) { return; } if (!IsFailureFound) { return; } if (DoorFailure.IsDoorFailed) { DoorFailure.ProcessFailure(sender, args); } else if (DTMFailure.IsElementModified) { DTMFailure.ProcessFailure(sender, args); } //else if (RevisionFailure.IsRevisionModified) //{ // RevisionFailure.ProcessFailure(sender, args); //} IsFailureFound = false; }
private void FailureProcessor(object sender, FailuresProcessingEventArgs e) { FailuresAccessor fas = e.GetFailuresAccessor(); if (fas.GetTransactionName() == "Synchronize with Central" | fas.GetTransactionName() == "Reload Latest") { List <FailureMessageAccessor> fma = fas.GetFailureMessages().ToList(); string error1 = "Coordination Monitor alert : A hosting element no longer exists in the link."; string error2 = "One or more dimension references are or have become invalid."; bool catched = false; foreach (FailureMessageAccessor fa in fma) { string failuremessage = fa.GetDescriptionText(); if (failuremessage == error2 | failuremessage == error1) { e.SetProcessingResult(FailureProcessingResult.ProceedWithRollBack); catched = true; } } if (catched) { TaskDialog.Show("Error", "Some Revit links have been modified.\nTo prevent Annotation loss:\n 1) 'Unload' the modified Revit links\n 2) 'Reload Latest'"); } } }
private static void ApplicationOnFailuresProcessing(object sender, FailuresProcessingEventArgs e) { var failList = e.GetFailuresAccessor().GetFailureMessages(); if (failList.Any()) { foreach (var failureMessageAccessor in failList) { var failureDefinitionId = failureMessageAccessor.GetFailureDefinitionId(); // Пропускаю сообщения о дублированных значениях (Одинаковая марка) if (failureDefinitionId == BuiltInFailures.GeneralFailures.DuplicateValue) { e.GetFailuresAccessor().DeleteWarning(failureMessageAccessor); } // Пропускаю сообщения про группы ////if (failureDefinitionId == BuiltInFailures.GroupFailures.AtomViolationWhenOnePlaceInstance) ////{ //// e.GetFailuresAccessor().DeleteWarning(failureMessageAccessor); ////} ////if (failureDefinitionId == BuiltInFailures.GroupFailures.AtomViolationWhenMultiPlacedInstances) ////{ //// e.GetFailuresAccessor().DeleteWarning(failureMessageAccessor); ////} } } }
public void OnFailureProcessing(object sender, FailuresProcessingEventArgs args) { if (!ModuleData.AutoConfirmEnabled || !ModuleData.up_close_dialogs) { return; } bool gotErrors = false; foreach (FailureMessageAccessor i in args.GetFailuresAccessor().GetFailureMessages()) { if (i.GetSeverity() == FailureSeverity.Warning) { args.GetFailuresAccessor().DeleteWarning(i); } else { args.GetFailuresAccessor().ResolveFailure(i); gotErrors = true; } args.GetFailuresAccessor().DeleteAllWarnings(); args.GetFailuresAccessor().ResolveFailures(args.GetFailuresAccessor().GetFailureMessages()); } if (gotErrors) { args.SetProcessingResult(FailureProcessingResult.ProceedWithCommit); } else { args.SetProcessingResult(FailureProcessingResult.Continue); } }
public static void ProcessFailure(object sender, FailuresProcessingEventArgs args) { try { } catch (Exception ex) { string message = ex.Message; LogUtil.AppendLog("RevisionFailure-ProcessFailure:" + ex.Message); } }
private void FailureProcessor(object sender, FailuresProcessingEventArgs e) { FailuresAccessor fas = e.GetFailuresAccessor(); List <FailureMessageAccessor> fma = fas.GetFailureMessages().ToList(); foreach (FailureMessageAccessor fa in fma) { fas.DeleteWarning(fa); } }
private void Application_FailuresProcessing(object sender, FailuresProcessingEventArgs e) { // Inside event handler, get all warnings var failList = e.GetFailuresAccessor().GetFailureMessages(); if (failList.Any()) { // skip all failures e.GetFailuresAccessor().DeleteAllWarnings(); e.SetProcessingResult(FailureProcessingResult.Continue); } }
private void OnFailuresProcessing(object sender, FailuresProcessingEventArgs e) { FailuresAccessor failuresAccessor = e.GetFailuresAccessor(); //string transactionName = failuresAccessor.GetTransactionName(); IList <FailureMessageAccessor> fmas = failuresAccessor.GetFailureMessages(); if (fmas.Count > 0) { List <FailureMessageInfo> failureMessageInfoList = new List <FailureMessageInfo>(); foreach (FailureMessageAccessor fma in fmas) { FailureMessageInfo messageInfo = new FailureMessageInfo(); try { messageInfo.ErrorMessage = fma.GetDescriptionText(); messageInfo.ErrorSeverity = fma.GetSeverity().ToString(); messageInfo.FailingElementIds = fma.GetFailingElementIds().ToList(); } catch { messageInfo.ErrorMessage = "Unknown Error"; } failureMessageInfoList.Add(messageInfo); //add log message FailureDefinitionId definitionId = fma.GetFailureDefinitionId(); Guid defGuid = definitionId.Guid; if (!FailureDefinitionIds.Contains(defGuid)) { LogFileManager.AppendLog(messageInfo); FailureDefinitionIds.Add(defGuid); } if (FailureSeverity.Warning == fma.GetSeverity()) { failuresAccessor.DeleteWarning(fma); } else if (FailureSeverity.Error == fma.GetSeverity()) { e.SetProcessingResult(FailureProcessingResult.ProceedWithRollBack); return; } } if (failuresAccessor.IsFailureResolutionPermitted()) { failuresAccessor.ResolveFailures(fmas); } e.SetProcessingResult(FailureProcessingResult.ProceedWithCommit); return; } e.SetProcessingResult(FailureProcessingResult.Continue); }
/// <summary> /// Will dismiss all warnings /// </summary> private void DismissAllWarnings(object o, FailuresProcessingEventArgs e) { FailuresAccessor fa = e.GetFailuresAccessor(); IList <FailureMessageAccessor> failList = fa.GetFailureMessages(); // Inside event handler, get all warnings // warningsNum += failList.Count; foreach (FailureMessageAccessor failure in failList) { fa.DeleteWarning(failure); warningsNum += 1; } }
private void OnFailuresProcessing(object sender, FailuresProcessingEventArgs e) { FailuresAccessor failuresAccessor = e.GetFailuresAccessor(); IEnumerable <FailureMessageAccessor> failureMessages = failuresAccessor.GetFailureMessages(); foreach (FailureMessageAccessor failureMessage in failureMessages) { if (failureMessage.GetSeverity() == FailureSeverity.Warning) { failuresAccessor.DeleteWarning(failureMessage); } } e.SetProcessingResult(FailureProcessingResult.Continue); }
private void Application_FailuresProcessing(object sender, FailuresProcessingEventArgs e) { FailuresAccessor failuresAccessor = e.GetFailuresAccessor(); failuresAccessor.DeleteAllWarnings(); IList <FailureMessageAccessor> fmas = failuresAccessor.GetFailureMessages(); var options = failuresAccessor.GetFailureHandlingOptions(); options.SetClearAfterRollback(true); options.SetForcedModalHandling(false); failuresAccessor.SetFailureHandlingOptions(options); }
/// <summary> /// Error handler if we cannot commit the transaction for some reason. It will return proper message to UI. /// </summary> private static void FailureProcessing(object sender, FailuresProcessingEventArgs args) { var fa = args.GetFailuresAccessor(); var fmas = fa.GetFailureMessages(); var count = 0; if (fmas.Count == 0) { args.SetProcessingResult(FailureProcessingResult.Continue); if (IsUpdatingSheet) { Messenger.Default.Send(new SheetTaskCompletedMessage { Completed = true, Message = "Success!", CentralPath = CentralPath }); } return; } foreach (var fma in fmas) { if (fma.GetSeverity() == FailureSeverity.Warning) { fa.DeleteWarning(fma); } else { // (Konrad) Error is more than just a warning. Let's roll back. args.SetProcessingResult(FailureProcessingResult.ProceedWithRollBack); count++; } } if (count > 0) { if (IsUpdatingSheet) { Messenger.Default.Send(new SheetTaskCompletedMessage { Completed = false, Message = "Could not commit transaction. Try reloading latest.", CentralPath = CentralPath }); } } }
// (Konrad) We are not going to process warnings here. #else private static void OnFailureProcessing(object sender, FailuresProcessingEventArgs e) { var fa = e.GetFailuresAccessor(); var doc = fa.GetDocument(); foreach (var fma in fa.GetFailureMessages(FailureSeverity.Warning)) { var w = new WarningItem(fma, doc); if (Warnings.ContainsKey(w.UniqueId)) { continue; } Warnings.Add(w.UniqueId, w); } }
void OnFailureProcessings(object sender, FailuresProcessingEventArgs args) { FailuresAccessor f = args.GetFailuresAccessor(); string transName = f.GetTransactionName(); IList <FailureMessageAccessor> fmas = f.GetFailureMessages(); if (transName.Equals("Change shared coordinates in source")) { Debug.Write("lolkek"); } if (fmas.Count == 0) { args.SetProcessingResult(FailureProcessingResult.Continue); } }
public static void CheckFailure(object sender, FailuresProcessingEventArgs args) { if (IsFailureFound) { if (DoorFailure.IsDoorFailed) { DoorFailure.ProcessFailure(sender, args); } else if (DTMFailure.IsElementModified) { DTMFailure.ProcessFailure(sender, args); } else if (RevisionFailure.IsRevisionModified) { RevisionFailure.ProcessFailure(sender, args); } IsFailureFound = false; } }
/// <summary> /// Implements the FailureProcessing event /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void FailuresProcessing(object sender, FailuresProcessingEventArgs e) { FailuresAccessor failuresAccessor = e.GetFailuresAccessor(); String transactionName = failuresAccessor.GetTransactionName(); IList <FailureMessageAccessor> failures = failuresAccessor.GetFailureMessages(); if (failures.Count != 0) { foreach (FailureMessageAccessor f in failures) { FailureDefinitionId id = f.GetFailureDefinitionId(); if (id == BuiltInFailures.JoinElementsFailures.CannotJoinElementsError) { failuresAccessor.ResolveFailure(f); e.SetProcessingResult(FailureProcessingResult.ProceedWithCommit); return; } } } }
private static void FailuresProcessing(object sender, FailuresProcessingEventArgs e) { var failuresAccessor = e.GetFailuresAccessor(); var failures = failuresAccessor.GetFailureMessages(); if (failures.Count == 0) { return; } foreach (var f in failures) { var id = f.GetFailureDefinitionId(); if (id != BuiltInFailures.JoinElementsFailures.CannotJoinElementsError) { return; } failuresAccessor.ResolveFailure(f); e.SetProcessingResult(FailureProcessingResult.ProceedWithCommit); return; } }
private void FaliureProcessor(object sender, FailuresProcessingEventArgs e) { bool hasFailure = false; FailuresAccessor fas = e.GetFailuresAccessor(); List <FailureMessageAccessor> fma = fas.GetFailureMessages().ToList(); List <ElementId> ElemntsToDelete = new List <ElementId>(); fas.DeleteAllWarnings(); foreach (FailureMessageAccessor fa in fma) { try { //use the following lines to delete the warning elements List <ElementId> FailingElementIds = fa.GetFailingElementIds().ToList(); ElementId FailingElementId = FailingElementIds[0]; if (!ElemntsToDelete.Contains(FailingElementId)) { ElemntsToDelete.Add(FailingElementId); } hasFailure = true; fas.DeleteWarning(fa); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } } if (ElemntsToDelete.Count > 0) { fas.DeleteElements(ElemntsToDelete); } //use the following line to disable the message supressor after the external command ends //CachedUiApp.Application.FailuresProcessing -= FaliureProcessor; if (hasFailure) { e.SetProcessingResult(FailureProcessingResult.ProceedWithCommit); } e.SetProcessingResult(FailureProcessingResult.Continue); }
public static void CheckFailure(object sender, FailuresProcessingEventArgs args) { if (IsFailureProcessing) { return; } if (IsSynchronizing) { return; } if (!IsFailureFound) { return; } if (AnnotationFailure.IsElementModified) { AnnotationFailure.ProcessFailure(sender, args); } IsFailureFound = false; }