我正在尝试使用 Revit API 激活视图。我想要做的是提示用户选择一些墙,但是当用户被问到时,他不能切换视图来选择更多的墙(那时一切都变灰了)。所以我要激活的视图(我的意思是,我希望这个视图实际显示在屏幕上)已经存在,我可以访问它的 ID。
我已经看到有关创建、浏览、过滤视图的线程,但没有激活它……这是一个平面图视图。
到目前为止,我可以访问其关联的 ViewPlan 对象和关联的参数(名称、Id、..)。
有可能吗?
非常感谢 !
阿尔诺。
我正在尝试使用 Revit API 激活视图。我想要做的是提示用户选择一些墙,但是当用户被问到时,他不能切换视图来选择更多的墙(那时一切都变灰了)。所以我要激活的视图(我的意思是,我希望这个视图实际显示在屏幕上)已经存在,我可以访问它的 ID。
我已经看到有关创建、浏览、过滤视图的线程,但没有激活它……这是一个平面图视图。
到目前为止,我可以访问其关联的 ViewPlan 对象和关联的参数(名称、Id、..)。
有可能吗?
非常感谢 !
阿尔诺。
我认为最首选的方法是 UIDocument.RequestViewChange() 方法。这方面的棘手部分是,除非您将应用程序设计为与外部事件或空闲无关的模式,否则直到稍后控制权从您的插件返回给 Revit 时才会真正发生。(还有设置 UIDocument.ActiveView 属性 - 如果这有不同的约束,则不是肯定的)。
我以前做过的另一种方法是使用 UIDocument.ShowElements() 命令。这里的诀窍是您无法控制确切的视图 - 但如果您可以找出仅出现在该视图中的元素,您通常可以实现它(即使您必须执行单独的查询才能获得一堆仅在给定平面图视图中的元素)。
祝你好运!
我认为您的问题的解决方案可能是:
commandData.Application.ActiveUIDocument.ActiveView = View;
这ActiveView
是一个属性,它有 {get and set} 选项。