Revit应用类
应用类包括UlApplication和Application两大类
1. Application
- Application表示一个Revit应用,提供对文档、选项及其它应用范围的数据的访问和设置。
2. UIApplication
- UIApplication表示一个活动的Revit会话,提供了对UI定制、事件以及活动文档的访问。
Revit文档类
文档类主要分为UIDocument和Document两大类
1.Document
- Document对象用于存储Revit的元素、管理视图和数据
- Document类主要提供获取管理元素、文件管理等功能
2. UIDocument
- 主要包含了跟UI相关的文档信息和操作,比如ActiveView和 ShowElement
- Selection属性用来选择Revit模型
- ShowElements方法显示适当的元素
- 视图管理
-
- ActiveView属性可以返回或设置当前的文档的活动视图
-
- RefershActiveView()方法可以用来刷新当前文档的活动视图
入门案例
using Autodesk.Revit.ApplicationServices;
using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
namespace pro
{
[Transaction(TransactionMode.Manual)]
public class Class1 : IExternalCommand
{
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
UIApplication uiApp = commandData.Application;
Application application = uiApp.Application;
TaskDialog.Show("版本号",application.VersionName);
UIDocument uIDocument = uiApp.ActiveUIDocument;
View view = uIDocument.ActiveView;
TaskDialog.Show("活跃的视图名称", view.Name);
return Result.Succeeded;
}
}
}
运行截图
左边目录标高二为粗体,标高二为当前活跃的视图的名称(下面的方式效果相同)
- Document document = uIDocument.Document;
- View view = document.ActiveView;
- TaskDialog.Show(“当前活跃的视图”,view.Name);
TaskDialog.Show(“视图id”,view.Id.IntegerValue+"");//查看当前视图的id
视图信息的所有信息可以通过view.来查看
设置当前活跃视图
using Autodesk.Revit.ApplicationServices;
using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
namespace pro
{
[Transaction(TransactionMode.Manual)]
public class Class1 : IExternalCommand
{
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
UIApplication uiApp = commandData.Application;
UIDocument uIDocument = uiApp.ActiveUIDocument;
Document document = uIDocument.Document;
View view = document.ActiveView;
TaskDialog.Show("当前活跃的视图", view.Name);
ElementId id = new ElementId(312);//标高1id
uIDocument.ActiveView = document.GetElement(id) as View;//把当前活跃视图换成标高1
View view1 = document.ActiveView;
TaskDialog.Show("修改后的活跃视图", view1.Name);
return Result.Succeeded;
}
}
}
当点击标高1,标高1为当前活跃视图,会弹出两次标高1
当点击标高2,标高2为当前活跃视图,会弹出一次标高2,再弹出一次标高1