Files
06-Note/Revit-API/UIDocument.md
sherlockforrest bf2ed2e31f 更新
2023-06-20 09:22:53 +08:00

3.5 KiB
Raw Permalink Blame History

UIDocument

方法

CanPlaceElementType

当前视图是否可以放置该类型构件

方法名 描述
GetOpenUIViews 获取 Revit 用户界面中所有打开的视图窗口的列表。
GetPlacementTypes 获取输入族类型的有效放置类型的集合。
GetRevitUIFamilyLoadOptions 返回选项对象,允许您使用 Revit 的对话框让用户响应在加载族期间出现的问题。
PostRequestForElementTypePlacement 在Revit的命令队列中放置一个请求让用户放置指定ElementType的实例。这不会立即执行而是在控制权从当前API上下文返回到Revit时执行。

GetOpenUIViews

获取 Revit 用户界面中所有打开的视图窗口的列表。

UIDocument uidoc = commandData.Application.ActiveUIDocument;
Document doc = uidoc.Document;
IList<UIView> views = uidoc.GetOpenUIViews();
foreach (UIView view in views)
{
       if (view.ViewId != uidoc.ActiveView.Id) continue;
       view.ZoomToFit();
}

- close()

关闭窗口

- GetWindowRectangle

获得窗口的Rectangle

 Rectangle

- GetZoomCorners()

获得窗口四个角的点

- ViewId

所属View的ID

- Zoom(double d)

变焦

- ZoomAndCenterRectangleXYZ 1XYZ 2

根据提供的Rectangle变焦

- ZoomToFit

变焦至显示所有构件(缩放匹配)

- ZoomSheetSize

变焦至Sheet的大小

GetPlacementTypes

获取输入族类型的有效放置类型的集合。

PostRequestForElementTypePlacementElementType type

在Revit的命令队列中放置一个请求让用户放置指定ElementType的实例。这不会立即执行而是在控制权从当前API上下文返回到Revit时执行。

UIDocument uidoc = commandData.Application.ActiveUIDocument;
Document doc = uidoc.Document;
 // id为ElementType  的ID可根据自己的项目文件修改
  int id = 266107;
 uidoc.PostRequestForElementTypePlacement(doc.GetElement(new ElementId(id)) as ElementType);

GetRevitUIFamilyLoadOptions

返回选项对象,允许您使用 Revit 的对话框让用户响应在加载族期间出现的问题。

RefreshActiveView()

  • 刷新当前视图

RequestViewChangeView view)

  • 改变当前视图 可用ActiveView

UIDocument uidoc = commandData.Application.ActiveUIDocument; Document doc = uidoc.Document; // id 为视图的Id需要根据自己项目更改 int id = 3728299; View view = doc.GetElement(new ElementId(id)) as View; uidoc.RequestViewChange(view);

SaveAndClose

  • 保存关闭

SaveAs

属性

Selection

获得Selection对象

UIDocument uidoc = commandData.Application.ActiveUIDocument;
Document doc = uidoc.Document;
Selection sel = uidoc.Selection;
Reference r = sel.PickObject(ObjectType.Element);
Element element = doc.GetElement(r);
TaskDialog.Show("AS", element.Name);

ActiveView

  • UIDocument uidoc = commandData.Application.ActiveUIDocument; Document doc = uidoc.Document; // id 为视图的Id需要根据自己项目更改 int id = 3728299; View view = doc.GetElement(new ElementId(id)) as View; uidoc.ActiveView = view;

ViewDirection是视图朝向观察者的方向UpDirection视图向上的方向 UpDirection x ViewDirection=RightDirection ViewDirection x RightDirection=UpDirection RightDirection xUpDirection=ViewDirection