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