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