9. Revit API UI: UIView、UIDocument、框选聚焦

9. Revit API UI: UIView、UIDocument、框选聚焦

UI命名空间下的API,到这里差不多就押送讲完了,同Application那篇所讲的几个类与接口,都是带UI的对应了一个不带UI的,如UIApplication和Application,作用呢,也是类似的。

UI级别提供到DB级别的入口。

所以呢,内容较少,作用也有限。

一个应用可以打开多个文档,一个文档包含多个视图。

用偏软件运用的说法就是:Revit可以同时打开多个项目,每个项目都有各种视图(如三维、平面、图纸、统计表等)。

在这里插入图片描述


UIDocuemnt

UIDocumentUIApplication中获取。

UIApplication uiApp = commandData.Application;
UIDocument uiDoc = uiApp.ActiveUIDocument;

获取当前活动的项目文档。至于获取到全部项目文档,得再Application中才行,里面有属性"Documents"。

回到UI话题,来看看类成员吧。

主要属性:

属性描述
ActiveGraphicalView
ActiveView
当前活动的视图
Application:UIApplication互相存了对方的引用
Document:Document提供DB级别文档操作的入口
Selection一个选择器的实例,位于UI.Selection命名空间中

部分方法:

方法描述
GetOpenUIViews()
UpdateAllOpenViews ()
获取已打开的视图
更新已打开的视图
ShowElements(…) x4缩放显示指定元素。
效果类似于双击鼠标中键,或者选择模型后,点击右上角视角盒子。
SaveAs() x2
SaveAndClose()
保存
其它

UIDocument就这样了,至于Document,到Autodesk.Revit.DB命名空间时再讲,应该很快了。


UIView

UIView得使用UIDocument的GetOpenUIViews()方法获取,至于活动视图所对应的UIView,可以通过属性ViewId比较获得。

UIView成员:

类成员描述
ViewId:ElementID所对应的View
Close()关闭视图
GetWindowRectangle()获取View在屏幕上的像素范围
GetZoomCorners ()获取View在模型空间中当前视角的范围
Zoom(…)
ZoomAndCenterRectangle(…)
ZoomSheetSize()
ZoomToFit()
按比例缩放,传入比例
缩放到指定的范围,传入范围
缩放到指定范围,框选范围
缩放到适应大小(双击鼠标中键)

感觉UIDocument上的缩放,就是调用的UIView上的方法。

1. 获取ActiveUIView

private UIView GetActiveUIView(UIApplication uiApp)
{UIDocument uiDoc = uiApp.ActiveUIDocument;Document doc = uiDoc.Document;View activeView = uiDoc.ActiveView;IList<UIView> uiViews = uiDoc.GetOpenUIViews();UIView activeUIView = null;string viewNames = string.Empty;foreach (UIView uiView in uiViews){View view = doc.GetElement(uiView.ViewId) as View;if (view.Id == activeView.Id){activeUIView = uiView;}viewNames += $"{view.Name}\r\n";}viewNames += $"\r\nActive View: {activeView.Name}";TaskDialog.Show("OpenUIViews", viewNames);return activeUIView;
}

在这里插入图片描述

2. 框选聚焦

框选聚焦,可以直接采用ZoomSheetSize()方法。为什么还有写这个呢,因为开始时,我没有测试这个方法的效果,然后采用了另一个方法实现(不推荐),这里还是记录一下。

采用UIView的ZoomSheetSize()方法

自己计算范围的框选聚焦实现。

// 效果等同于 ZoomSheetSize()
private void ZoomToRectangle(Selection selection, UIView uiView)
{PickedBox box = selection.PickBox(PickBoxStyle.Enclosing);XYZ minPoint = box.Min;XYZ maxPoint = box.Max;uiView.ZoomAndCenterRectangle(minPoint, maxPoint);
}

在这里插入图片描述


总结

这篇内容就这些了,感觉有用/有趣点的就框选聚焦了。

到这里,UI篇主要内容都讲完了吧,但还是有一些边边角角漏掉了,看看下篇就结束的掉吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/36826.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jenkins 下使用 Node 和 Npm(借助 nvm-wrapper 插件)构建前端程序

一、前言 搭建完Jenkins后&#xff0c;如何使用node进行构建前端呢&#xff0c;多个项目会使用的node的多个版本。如何动态指定node的版本进行构建呢。 方案一&#xff1a; 安装多个node版本&#xff0c;然后进行指定。这样比较麻烦。 方案二&#xff1a; 使用Jenkins的nv…

Spring相关面试题(三)

29 如何在所有的BeanDefinition注册完成后&#xff0c;进行扩展 Bean工厂的后置处理器&#xff0c;在所有的Bean注册完成后&#xff0c;就被执行。 public class A implements BeanFactoryPostProcessor {private String name "a class";private B b; ​public St…

ARM芯片架构(RTOS)

前言&#xff1a;笔记韦东山老师的rtos教程&#xff0c;连接放在最后 #ARM介绍 arm芯片属于精简指令集risc&#xff0c;所用的指令比较简单&#xff0c;ARM架构是一种精简指令集&#xff08;RISC&#xff09;架构&#xff0c;广泛应用于移动设备、嵌入式系统、物联网等领域。AR…

Linux:简单说说分号“;”、单竖线“|”、双竖线“||”、单“”、双“”作为多个命令分隔符的用法

以下符号都可以用来连接多个命令&#xff0c;在一行中作为多个命令的分隔符。区别如下&#xff1a; 1、分号“;” 按照先后顺序执行命令。每个命令都会在前一个命令执行完毕后立即执行。 如果其中一个命令出现错误&#xff0c;后续命令仍然会继续执行。 2、单竖线“|” 作为管…

2. jenkins发布java项目

jenkins发布java项目 一、环境描述二、部署tomcat业务服务器三、部署git服务器&#xff0c;上传测试代码1、部署git服务器2、上传测试代码 四、jenkins对接组件1、安装必要的插件2、对接git客户端3、对接maven工具4、配置maven需要的jdk5、配置gitlab服务器的连接6、在jenkins上…

1161. 最大层内元素和

1161. 最大层内元素和 题目链接&#xff1a;1161. 最大层内元素和 代码如下&#xff1a; /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr)…

AI智能体文章索引

1&#xff0c;探索AI世界系列&#xff1a;俗说AI智能体 2&#xff0c;是真的吗&#xff0c;不会代码也能开发一款AI应用&#xff1f;GPTs让人梦想成真 3&#xff0c;来了&#xff0c;你的第一个AI智能体 4&#xff0c;制作一个智能体&#xff1a;抖音热点话题文案制作助手 5&am…

【Django】网上蛋糕项目商城-首页

概念 本文在上一文章搭建完数据库&#xff0c;以及创建好项目之后&#xff0c;以及前端静态文件后&#xff0c;对项目的首页功能开发。 后端代码编写 这里我们使用pymysql模块对数据库进行操作&#xff0c;获取数据。因此需要在dos窗口使用以下指令下载该库文件 pip instal…

springboot3搭建WebSocket服务

springboot3搭建WebSocket服务 文章目录 springboot3搭建WebSocket服务前言一、创建SpringBoot工程二、pom.xml中引入依赖1.引入库2. application.yml配置 三、主启动类四、WebSocket配置类五、编写WebSocket服务类六、编写测试页面总结 前言 本文详细介绍了如何在SpringBoot项…

新型发电系统——光伏行业推动能源转型

一、发展背景 “十四五”期间&#xff0c;随着“双碳”目标提出及逐步落实&#xff0c;本就呈现出较好发展势头的分布式光伏发展有望大幅提速。就“十四五”光伏发展规划&#xff0c;国家发改委能源研究所可再生能源发展中心副主任陶冶表示&#xff0c;“双碳”目标意味着国家…

Java面试题:比较Maven和Gradle的构建生命周期和依赖管理

Maven和Gradle是两个流行的构建工具&#xff0c;各自有不同的构建生命周期和依赖管理机制。以下是它们的比较&#xff1a; 构建生命周期 Maven Maven有一个固定的生命周期&#xff0c;由一系列阶段&#xff08;phases&#xff09;组成&#xff0c;每个阶段代表一个构建步骤。…

ubuntu更改ssh默认端口22

编辑 /etc/ssh/sshd_config&#xff0c;把Port前的#去掉&#xff0c;端口号改成8022&#xff0c;重启ssh。 // 1. 修改配置 sudo vi /etc/ssh/sshd_config// 2. 重启 ssh sudo systemctl restart ssh//【不想确认可跳过此步骤】 3. 查看 ssh 监听端口 sudo lsof -i:22 // 无…

MySQL改密

这里写目录标题 更改登录密码&#xff1a;有权限账号能登录mysql中&#xff1a;有权限账号不能登录mysql中&#xff1a;mysql5.6版本命令mysql5.7版本命令修改密码8.0版本改完后&#xff1a; mysql登录不上了本机安装了5.6后&#xff0c;又安装了mysql8.0 更改登录密码&#xf…

QT QVariant 类和 C++ 的 union有什么区别

QVariant 类和 C 的 union&#xff08;共用体&#xff09;在概念、用途和实现上有所不同。以下是对它们的区别和使用的简要概述&#xff1a; QVariantQT 如何储存多种数据类型&#xff08;QVariant &#xff09;-CSDN博客 概念&#xff1a;QVariant 是 Qt 框架中的一个类&…

易查分小程序丨查询开始和截止时间如何设置?

老师在发布查询时&#xff0c;希望让学生家长在指定的时间段才能查询&#xff0c;应该如何实现&#xff1f; 通过查询时段功能&#xff0c;老师可以自主设置查询开始和截止时间&#xff0c;下面就来教给大家如何使用吧&#xff01; 设置查询时段演示效果 &#x1f4cc;使用教程…

ASP.NETMVC-简单例子-数据库查询+razor使用+项目发布

环境&#xff1a; win10&#xff0c;SQL Server 2008 R2 参考&#xff1a; asp.net mvc框架之EF的使用 - black娃 - 博客园 https://www.cnblogs.com/fjiqiang/p/11131365.html 目录 数据库查询要求思路操作 razor使用项目发布要求实现 数据库查询 要求 从服务器的数据库中查…

干货分享 | 学会这7个工具方法,数字化转型规划不是难题

提到数字化转型&#xff0c;首要做的便是分析企业现有的业务流程和价值流&#xff0c;发现企业利润来源的关键点&#xff0c;进而有针对性的数字化转型。要实现传统业务向数字化业务的转变&#xff0c;制定出高效、灵活的业务流程优化策略显得至关重要&#xff0c;这样才能找到…

简化数据提取:Excel-Extractor 使用指南

前言 在当今数据驱动的世界中&#xff0c;从复杂的 Excel 文件中提取和分析数据是许多业务和研究工作的基本需求。为了简化这一过程&#xff0c;Excel-Extractor 项目应运而生。本文将为你介绍 Excel-Extractor 的功能和如何在你的项目中使用它。 什么是 Excel-Extractor&…

【C#】制作图集

如题目&#xff0c;用好几个图片拼在一个大图里&#xff0c;博主是用于Unity游戏开发使用的&#xff0c;话不多说&#xff0c;上代码&#xff01; using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Imaging;namespace EffectsPac…

Spring Boot中的安全性配置详解

Spring Boot中的安全性配置详解 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将深入探讨如何在Spring Boot应用中实现全面的安全性配置&#xff0c;保…