コード例 #1
0
 /// <summary>
 /// Utility method to return the internal Name of the failure in the BuiltInFailures class
 /// </summary>
 /// <param name="failure">the failure to evaluate</param>
 /// <returns>The String value used to internally represent the BuiltInFailure in Revit</returns>
 public static String GetBuiltInFailuresInternalName(this FailureDefinitionAccessor failure)
 {
     return(builtInFailuresList
            .Where(x => x.Guid == failure.GetId().Guid)
            .Select(x => x.Name)
            .FirstOrDefault());
 }
コード例 #2
0
 /// <summary>
 /// Utility method to return the SubCategory (expressed as an inner class in BuiltInFailures) of a failure if it is found in BuiltInFailures
 /// </summary>
 /// <param name="failure">The failure to evaluate</param>
 /// <returns>The SubCategory, or null if the failure was not found in BuiltInFailures</returns>
 public static String GetBuiltInFailuresSubCategory(this FailureDefinitionAccessor failure)
 {
     return(builtInFailuresList
            .Where(x => x.Guid == failure.GetId().Guid)
            .Select(x => x.Category)
            .FirstOrDefault()); //this specifies that if no matching failure was found, null is returned, based on null being the default value for String because it is a reference type
 }
コード例 #3
0
        //todo: for debugging. delete
        public String GetAvailableResolutionsDescription()
        {
            String result = String.Empty;
            FailureDefinitionAccessor fa = GetCorrespondingFailureDefinitionAccessor();

            foreach (var fRT in fa.GetApplicableResolutionTypes())
            {
                result += "***" + fa.GetResolutionCaption(fRT) + " (" + fRT + ")***\n";
            }
            return(result);
        }
コード例 #4
0
        public AutoFailureHandlingOptions(FailureDefinitionAccessor fda) : this()
        {
            FailureGuid = fda.GetId().Guid;
            BuiltInFailuresInternalName = fda.GetBuiltInFailuresInternalName();
            UserDescription             = fda.GetDescriptionText();
            BuiltInFailuresSubCategory  = fda.GetBuiltInFailuresSubCategory();

            switch (fda.GetSeverity())
            {
            case FailureSeverity.None:
                SeverityDescription = "None";
                break;

            case FailureSeverity.Warning:
                SeverityDescription = "Warning";
                break;

            case FailureSeverity.Error:
                SeverityDescription = "Error";
                break;

            case FailureSeverity.DocumentCorruption:
                SeverityDescription = "Document Corruption";
                break;

            default:
                break;
            }

            HasResolutions = fda.HasResolutions();

            if (fda.GetSeverity() == FailureSeverity.Warning)
            {
                AvailableResolutions = AutoOptionsResolution.WarningResolutions.Concat(fda.GetRevitFailureResolutionOptions()).ToList();
            }
            else if (fda.GetSeverity() == FailureSeverity.Error)
            {
                AvailableResolutions = AutoOptionsResolution.ErrorResolutions.Concat(fda.GetRevitFailureResolutionOptions()).ToList();
            }
            else
            {
                AvailableResolutions = new List <FailureResolutionOption>();
            }

            HasResolutions = fda.HasResolutions();
            FailureResolutionOption noActionRes = AvailableResolutions
                                                  .Where(x => x is AutoOptionsResolution)
                                                  .Cast <AutoOptionsResolution>()
                                                  .Where(x => x.Resolution == ((AutoOptionsResolution)AutoOptionsResolution.NoActionRes).Resolution)
                                                  .FirstOrDefault();

            SelectedResIndex = AvailableResolutions.IndexOf(noActionRes);
        }
コード例 #5
0
 /// <summary>
 /// Utility method to determine whether a failure is part of Revit's BuiltInFailures
 /// </summary>
 /// <param name="failure">The failure to evalutate</param>
 /// <returns>Whether the Fauilure was found in the API's BuiltInFailures object</returns>
 public static Boolean IsBuiltInFailure(this FailureDefinitionAccessor failure)
 {
     //Contains() wasn't recognizing equal FailureDefintionId values, so I compared values by FailureDefinitionId.Guid instead
     if (builtInFailuresList.Select(x => x.Guid).Contains(failure.GetId().Guid))
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
コード例 #6
0
 public CorruptDocumentHandlingOptions(FailureDefinitionAccessor fa) : base(fa)
 {
 }
コード例 #7
0
 public ErrorHandlingOptions(FailureDefinitionAccessor fa) : base(fa)
 {
 }
コード例 #8
0
 public WarningHandlingOptions(FailureDefinitionAccessor fa) : base(fa)
 {
 }
コード例 #9
0
        /// <summary>
        /// Extension method to return a List of all FailureResolutionTypes encapsulated as FailureResolutionOptions
        /// </summary>
        /// <param name="fda"></param>
        /// <returns></returns>
        public static List <FailureResolutionOption> GetRevitFailureResolutionOptions(this FailureDefinitionAccessor fda)
        {
            List <FailureResolutionOption> result = new List <FailureResolutionOption>();

            foreach (FailureResolutionType frt in fda.GetApplicableResolutionTypes())
            {
                result.Add(new RevitResolution()
                {
                    Resolution      = frt,
                    FriendlyCaption = fda.GetResolutionCaption(frt) + " (" + frt + ")",
                    //todo: add FriendlyDescriptions for all the FailureResolutionTypes
                    FriendlyDescription = "Revit Internal Name: " + frt.ToString() + "\nRevit Caption: " + fda.GetResolutionCaption(frt)
                });
            }

            return(result);
        }