2014-05-23 3 views
1

"각"동일한 빔 또는 열에 대해 고유 한 "표시"매개 변수 값을 설정하는 프로그램이 있습니다. 이는 일반적으로 동일한 "마크"매개 변수가있는 둘 이상의 보를 가져오고 Revit은 이상한 "경고 - 무시할 수 있음 ....... 요소는 마크 값을 복제합니다."(실제로는 무시할 수 없기 때문에 홀수 임) , 항상 표시되기 때문에).C# 프로그램 중에 Revit에서 "Duplicate Mark"프롬프트를 표시하지 않을 수 있습니까?

누구든지 프로그램 실행 중에이 경고를 끄는 방법을 알고 있습니까? 나는 추가 요소 유형 (예 : 연결, 보강재 또는 기초)을 수집하고 "표식"매개 변수를 할당 할 가능성이 높습니다. 경고가 4 ~ 5 번 나타나지 않도록하는 것이 좋습니다.

답변

0

사실 아주 간단합니다.

public class DuplicateMarkSwallower : IFailuresPreprocessor 
{ 
    public FailureProcessingResult PreprocessFailures(FailuresAccessor a) 
    { 
     var failures = a.GetFailureMessages(); 
     foreach (var f in failures) 
     { 
      var id = f.GetFailureDefinitionId(); 
      if (BuiltInFailures.GeneralFailures.DuplicateValue == id) 
      { 
       a.DeleteWarning(f); 
      } 
     } 
     return FailureProcessingResult.Continue; 
    } 
} 

는 그런 다음과 같이 사용할 수 있습니다 :

using (var trans = new Transaction(_doc, "Creating Numbers")) 
{ 
    trans.Start(); 

    // Set failure handler 
    var failureOptions = trans.GetFailureHandlingOptions(); 
    failureOptions.SetFailuresPreprocessor(new DuplicateMarkSwallower()); 
    trans.SetFailureHandlingOptions(failureOptions); 

    // do your thing here 

    trans.Commit(); 
} 

이 처리기 클래스를 만들기 : 당신은 모든 경고를 잡아 코드에서 그들을 해제 IFailurePreprocessor라는 것을 사용할 수 있습니다