コード例 #1
0
 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);
 }
コード例 #2
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);
        }