Revit API切换三维视图

切换视图必须在事务结束之后,这个困惑了半天,记录一下。
//切换三维视图
[Transaction(TransactionMode.Manual)]
[Regeneration(RegenerationOption.Manual)]
public class cmd3D : IExternalCommand
{
    public Result Execute(ExternalCommandData cmdData, ref string msg, ElementSet elements)
    {
        UIDocument uiDoc = cmdData.Application.ActiveUIDocument;

        Transaction ts = new Transaction(uiDoc.Document, "Change3D");

        try
        {
            ts.Start();
            View3D view3D = uiDoc.Document.Create.NewView3D(new XYZ(-11, -1));//斜视45度
            ts.Commit();
            //切换视图必须在事务结束后,否则会提示错误:
            
//Cannot change the active view of a modifiable document
            uiDoc.ActiveView = view3D;
        }
        catch (Exception ex)
        {
            TaskDialog.Show("ex", ex.ToString());
            ts.RollBack();
        }

        return Result.Succeeded;
    }
}
url:http://greatverve.cnblogs.com/p/change3d.html
posted @ 2013-11-03 12:17  大气象  阅读(4458)  评论(0编辑  收藏  举报
http://www.tianqiweiqi.com