Revit 使用 Revit API 2014 激活 3D 视图
Revit Activate 3D View using Revit API 2014
我在 Idling 事件处理程序中使用 Revit API 2014 打开了一个 Revit 文档。之后,我尝试激活 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)
我会在 Idling 事件处理程序之外调用更改视图。你还能把它放在哪里?进入稍后调用的某些方法,并且不是空闲事件处理程序。我想到的一种可能性是实现一个外部命令 X,它设置视图并在空闲事件处理程序中调用 PostCommand 以在稍后的时间点启动 X。请让我们知道这是否更好。谢谢。
我在 Idling 事件处理程序中使用 Revit API 2014 打开了一个 Revit 文档。之后,我尝试激活 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)
我会在 Idling 事件处理程序之外调用更改视图。你还能把它放在哪里?进入稍后调用的某些方法,并且不是空闲事件处理程序。我想到的一种可能性是实现一个外部命令 X,它设置视图并在空闲事件处理程序中调用 PostCommand 以在稍后的时间点启动 X。请让我们知道这是否更好。谢谢。