public WarningItem(FailureMessageAccessor msg, Document doc) { CentralPath = FileInfoUtil.GetCentralFilePath(doc).ToLower(); FailingElements = msg.GetFailingElementIds().Select(x => doc.GetElement(x).UniqueId).ToList(); DescriptionText = msg.GetDescriptionText(); CreatedBy = Environment.UserName.ToLower(); UniqueId = msg.GetFailureDefinitionId().Guid + string.Join("", FailingElements); }
public FailureProcessingResult PreprocessFailures(FailuresAccessor failuresAccessor) { IList <FailureMessageAccessor> failureMessageAccessorList = (IList <FailureMessageAccessor>) new List <FailureMessageAccessor>(); using (IEnumerator <FailureMessageAccessor> enumerator = ((IEnumerable <FailureMessageAccessor>)failuresAccessor.GetFailureMessages()).GetEnumerator()) { while (((IEnumerator)enumerator).MoveNext()) { FailureMessageAccessor current = enumerator.Current; FailureDefinitionId failureDefinitionId = current.GetFailureDefinitionId(); if (FailureDefinitionId.op_Equality(failureDefinitionId, BuiltInFailures.RoomFailures.get_RoomTagNotInRoom()) || FailureDefinitionId.op_Equality(failureDefinitionId, BuiltInFailures.RoomFailures.get_RoomTagNotInRoomToArea()) || FailureDefinitionId.op_Equality(failureDefinitionId, BuiltInFailures.RoomFailures.get_RoomTagNotInRoomToRoom()) || FailureDefinitionId.op_Equality(failureDefinitionId, BuiltInFailures.RoomFailures.get_RoomTagNotInRoomToSpace())) { failuresAccessor.DeleteWarning(current); } } } return((FailureProcessingResult)0); }
// Step 5. //protected override void AfterSolveInstance() {} // Step 5.1 #region IFailuresPreprocessor void AddRuntimeMessage(FailureMessageAccessor error, bool?solved = null) { var level = GH_RuntimeMessageLevel.Remark; switch (error.GetSeverity()) { case FailureSeverity.Warning: level = GH_RuntimeMessageLevel.Warning; break; case FailureSeverity.Error: level = GH_RuntimeMessageLevel.Error; break; } string solvedMark = string.Empty; if (error.GetSeverity() > FailureSeverity.Warning) { switch (solved) { case false: solvedMark = "❌ "; break; case true: solvedMark = "✔ "; break; } } var description = error.GetDescriptionText(); var text = string.IsNullOrEmpty(description) ? $"{solvedMark}{level} {{{error.GetFailureDefinitionId().Guid}}}" : $"{solvedMark}{description}"; int idsCount = 0; foreach (var id in error.GetFailingElementIds()) { text += idsCount++ == 0 ? $" {{{id.IntegerValue}" : $", {id.IntegerValue}"; } if (idsCount > 0) { text += "} "; } AddRuntimeMessage(level, text); }
static private bool GetFailureResolutionType(FailuresAccessor failuresAccessor, FailureMessageAccessor failure, ref FailureResolutionType type) { IList <FailureResolutionType> resolutionTypeList = failuresAccessor.GetAttemptedResolutionTypes(failure); if (!resolutionTypeList.Contains(FailureResolutionType.Default) && failure.HasResolutionOfType(FailureResolutionType.Default)) { type = FailureResolutionType.Default; return(true); } else if (!resolutionTypeList.Contains(FailureResolutionType.CreateElements) && failure.HasResolutionOfType(FailureResolutionType.CreateElements)) { type = FailureResolutionType.CreateElements; return(true); } else if (!resolutionTypeList.Contains(FailureResolutionType.DeleteElements) && failure.HasResolutionOfType(FailureResolutionType.DeleteElements)) { type = FailureResolutionType.DeleteElements; return(true); } else if (!resolutionTypeList.Contains(FailureResolutionType.SkipElements) && failure.HasResolutionOfType(FailureResolutionType.SkipElements)) { type = FailureResolutionType.SkipElements; return(true); } else if (!resolutionTypeList.Contains(FailureResolutionType.MoveElements) && failure.HasResolutionOfType(FailureResolutionType.MoveElements)) { type = FailureResolutionType.MoveElements; return(true); } else if (!resolutionTypeList.Contains(FailureResolutionType.FixElements) && failure.HasResolutionOfType(FailureResolutionType.FixElements)) { type = FailureResolutionType.FixElements; return(true); } else if (!resolutionTypeList.Contains(FailureResolutionType.DetachElements) && failure.HasResolutionOfType(FailureResolutionType.DetachElements)) { type = FailureResolutionType.DetachElements; return(true); } else if (!resolutionTypeList.Contains(FailureResolutionType.QuitEditMode) && failure.HasResolutionOfType(FailureResolutionType.QuitEditMode)) { type = FailureResolutionType.QuitEditMode; return(true); } else if (!resolutionTypeList.Contains(FailureResolutionType.UnlockConstraints) && failure.HasResolutionOfType(FailureResolutionType.UnlockConstraints)) { type = FailureResolutionType.UnlockConstraints; return(true); } else if (!resolutionTypeList.Contains(FailureResolutionType.SetValue) && failure.HasResolutionOfType(FailureResolutionType.SetValue)) { type = FailureResolutionType.SetValue; return(true); } else if (!resolutionTypeList.Contains(FailureResolutionType.SaveDocument) && failure.HasResolutionOfType(FailureResolutionType.SaveDocument)) { type = FailureResolutionType.SaveDocument; return(true); } else if (!resolutionTypeList.Contains(FailureResolutionType.ShowElements) && failure.HasResolutionOfType(FailureResolutionType.ShowElements)) { type = FailureResolutionType.ShowElements; return(true); } else if (!resolutionTypeList.Contains(FailureResolutionType.Others) && failure.HasResolutionOfType(FailureResolutionType.Others)) { type = FailureResolutionType.Others; return(true); } return(false); }