切换视图必须在事务结束之后,这个困惑了半天,记录一下。
//切换三维视图
[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(-
1,
1, -
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.cnb
logs.com/p/change3d.html