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); }
// 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); }