Files
06-Note/Revit-API/UIDocument.md

136 lines
3.5 KiB
Markdown
Raw Permalink Normal View History

2023-06-20 09:22:53 +08:00
# 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