Idle 이벤트 핸들러에서 Revit API 2014를 사용하여 Revit 문서를 열었습니다. 그 후에는 3D보기를 활성화하려고하는데 몇 가지 예외가 발생합니다 (활성보기 설정이 일시적으로 비활성화 됨). 이 예외를 피할 수있는 방법이 있습니까? 아래의 코드와 저널 출력을 참조하십시오. 감사.Revit Revit API 2014를 사용하여 3D 뷰 활성화
참고 : 모델 없음 대화 상자는 아무 문제없이 3D보기를 활성화합니다.
코드 조각은 3D 뷰를 활성화하려면 저널 파일의
Document doc = uiApp.ActiveUIDocument.Document;
FilteredElementCollector viewCollector = new FilteredElementCollector(doc);
ElementClassFilter viewFilter = new ElementClassFilter(typeof(Autodesk.Revit.DB.View3D));
viewCollector.WherePasses(viewFilter);
try
{
foreach (Autodesk.Revit.DB.View3D vw in viewCollector)
{
if (vw.IsValidObject && !vw.IsTemplate)
{
uiApp.ActiveUIDocument.ActiveView = vw;
break;
}
}
}
catch (Exception e)
{
throw e;
}
finally
{
viewCollector.Dispose();
viewFilter.Dispose();
}
지난 몇 라인 : 나는 공회전 이벤트 핸들러 중보기를 변경하려면 전화를받을 것
' 1:< ::10:: Delta VM: Avail -27 -> 8384734 MB, Used +4 -> 437 MB; RAM: Avail -13 -> 3329 MB, Used +5 -> 528 MB
' C 07-Sep-2016 12:17:22.868; 1:< Exception in exportToObj() method :: Setting active view is temporarily disabled.
' at RevitCommandListener.RevitCommandListenerService.OpenAndActivate3DView(UIApplication uiApp)
' at RevitCommandListener.RevitCommandListenerService.exportToObj(UIApplication uiApp)
특정 Autodesk.Revit.Exceptions를 찾아 문제를 좁힐 수 있습니다. Revit API SDK는 UIDocument.ActiveView : ArgumentNullException, ArgumentException 및 InvalidOperation Exception을 사용하여 3 가지 잠재적 예외를 설명합니다. 활성보기를 설정할 때 예외가 발생할 수있는 조건을 설명합니다. – mtumminello
이외에도 mtumiminello의 제안에 따라 모든 예외를 잡아서는 안된다는 점을 지적하고자합니다. http://thebuildingcoder.typepad.com/blog/2016/04/how-to-distinguish-redundant-rooms. html # 3 –
위의 메모에서 "메모 : 모 델 대화 상자가 아무런 문제없이 ** 2D ***보기를 활성화합니다."라고 말하고 싶습니까? –