public void idleUpdate(object sender, Autodesk.Revit.UI.Events.IdlingEventArgs e) { e.SetRaiseWithoutDelay(); UIApplication uiapp = sender as UIApplication; Document doc = uiapp.ActiveUIDocument.Document; UIDocument uidoc = uiapp.ActiveUIDocument; while (COVER.Instance.messageQueue.Count > 0) { COVERMessage m = COVER.Instance.messageQueue.Dequeue(); if ((MessageTypes)m.messageType == MessageTypes.AvatarPosition || (MessageTypes)m.messageType == MessageTypes.SetView || (MessageTypes)m.messageType == MessageTypes.Resend)//read only messages { COVER.Instance.handleMessage(m.message, m.messageType, doc, uidoc,uiapp); } else { Transaction transaction = new Transaction(doc); FailureHandlingOptions failOpt = transaction.GetFailureHandlingOptions(); failOpt.SetClearAfterRollback(true); failOpt.SetFailuresPreprocessor(new NoWarningsAndErrors()); transaction.SetFailureHandlingOptions(failOpt); if (transaction.Start("changeParameters") == TransactionStatus.Started) { COVER.Instance.handleMessage(m.message, m.messageType, doc, uidoc,uiapp); if (TransactionStatus.Committed != transaction.Commit()) { // Autodesk.Revit.UI.TaskDialog.Show("Failure", "Transaction could not be committed"); //an error occured end resolution was cancled thus this change can't be committed. // just ignore it and dont bug the user } } } } }