View 继承结构

所有的视图都是继承自 Autodesk.Revit.DB.View,分别对应各种视图类型。

View 的实例

以官方给的文件为例:

楼层平面:ViewPlan
三维视图:View3D
立面、剖面、详细视图:ViewSection
渲染:ImageView
图例:View
明细表:ViewSchedule
图纸:ViewSheet

获取 View 的信息

视图的基本信息,包括:

视图名称,view.Name
视图裁剪区域,view.CropBox
视图起始点,view.Origin
视图平面投影区域,view.Outline
视图往右、往上、指向观察者的方向,view.RightDirection,view.UpDirection,view.ViewDirection
视图缩放比例,view.Scale

方法示例:

        private void Getinfo_View(Autodesk.Revit.DB.View view){string message = "View: ";// 得到视图的名称message += "\nView name: " + view.Name;// 视图裁剪区域包围盒BoundingBoxXYZ cropBox = view.CropBox;XYZ max = cropBox.Max; // 最大值,包围盒右上角XYZ min = cropBox.Min; // 最小值,包围盒左下角message += "\nCrop Box: ";message += "\nMaximum coordinates: (" + max.X + ", " + max.Y + ", " + max.Z + ")";message += "\nMinimum coordinates: (" + min.X + ", " + min.Y + ", " + min.Z + ")";// 视图的起始点(想象一下透视视图)XYZ origin = view.Origin;message += "\nOrigin: (" + origin.X + ", " + origin.Y + ", " + origin.Z + ")";//视图投影到平面的范围框BoundingBoxUV outline = view.Outline;UV maxUv = outline.Max; // 最大值,包围盒右上角UV minUv = outline.Min; // 最小值,包围盒左下角message += "\nOutline: ";message += "\nMaximum coordinates: (" + maxUv.U + ", " + maxUv.V + ")";message += "\nMinimum coordinates: (" + minUv.U + ", " + minUv.V + ")";// 视图往右的方向XYZ rightDirection = view.RightDirection;message += "\nRight direction: (" + rightDirection.X + ", " +rightDirection.Y + ", " + rightDirection.Z + ")";// 视图往上的方向XYZ upDirection = view.UpDirection;message += "\nUp direction: (" + upDirection.X + ", " +upDirection.Y + ", " + upDirection.Z + ")";// 视图指向观察者(即我)的方向XYZ viewDirection = view.ViewDirection;message += "\nView direction: (" + viewDirection.X + ", " +viewDirection.Y + ", " + viewDirection.Z + ")";// 视图的缩放比例message += "\nScale: " + view.Scale;// Scale is meaningless for Schedulesif (view.ViewType != ViewType.Schedule){int testScale = 5;//设置视图比例,需要 Transactionview.Scale = testScale;message += "\nScale after set: " + view.Scale;}TaskDialog.Show("Revit", message);}

主程序调用:

using System;
using System.Collections.Generic;
using System.Text;
using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;namespace PersonalTools
{[Transaction(TransactionMode.Manual)]public class Command : IExternalCommand{public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements){UIApplication uiApp = commandData.Application;UIDocument uiDoc = uiApp.ActiveUIDocument;Document doc = uiDoc.Document;using(Transaction transaction = new Transaction(doc, "View")){transaction.Start();View view = doc.ActiveView;Getinfo_View(view);transaction.Commit();}return Result.Succeeded;}

前视图数据:可知 Revit 中的坐标系,往右是 X 方向,往上是 Z 方向。因此前视图是从 Y 方向从屏幕外指向屏幕里面。

View 视图解析(Revit二次开发)相关推荐

  1. Revit二次开发选择模型面生成新的三维视图

    觉得自己做的一些Revit二次开发的项目经验需要找个地方保存下来,不然以后碰到类似的又得去冲浪捞人家的结晶再整合,所以从今天起开始写CSDN博客啦 选择模型面生成新的三维视图 废话不多说,直接上代码! ...

  2. revit二次开发调整三维视图的视角方向

    revit二次开发调整三维视图的视角方向 1.找到或创建了三维视图之后,操作视图的orientto()属性.(前提是该视图为View3D类型 其中:参数为视角方向. 前视图:0,1,0: 后视图:0, ...

  3. 【Revit 二次开发】满应力文件解析

    [Revit 二次开发]满应力文件解析 using System; using System.Collections; using System.Collections.Generic; using ...

  4. Revit二次开发 获取模型截面线、截面轮廓

    描述 获取Revit模型的截面线.横切面线.截面轮廓. 用途 用于获取模型的截面线.横切面线.截面轮廓. 实现方式 创建视图平面: 从视图平面获取轮廓线: 获取平面标高处的截面线. 效果 示例 /// ...

  5. revit二次开发--异形柱翻模

    最近写了一个revit二次开发的异形柱翻模的功能,柱子翻模网上有很多插件可以用,我用的比较多的是红瓦,其中异形柱的翻模对于图纸的要求较高,有很多不准确的地方.很多异形柱,整体翻模出来是错误的,翻出来之 ...

  6. C# Revit二次开发基础/核心编程---建筑建模-标高和轴网

    一.本节课程 C# Revit二次开发基础/核心编程---建筑建模-标高和轴网 二.本节要讲解的知识点 1.标高的高度.创建标高 2.轴网曲线.创建轴网 具体内容 1.标高 标高是有限水平平面,大多数 ...

  7. Revit二次开发_轴网快速标注

    通过Revit二次开发实现对平行轴网的快速标注.交互操作是框选轴网->点选尺寸标注出现的位置->生成两道尺寸标注. 要达到设想的结果一些地方需要特殊考虑: 框选操作容易误选轴网,起码要把与 ...

  8. Revit二次开发学习笔记

    Revit二次开发学习笔记1 20220314: 概念:Application与Document 接口函数:IExternalCommand.ActiveView与Selection 20220316 ...

  9. Revit二次开发——自动生成构件图(总结)

    之前测试导出构件图的功能实现,拆分了各模块分布进行测试: Revit二次开发--一键导出构件图(1) Revit二次开发--叠合板自动配筋(2) Revit二次开发--自动标注钢筋思路(3) 本篇为这 ...

  10. 【Revit 二次开发 】创建带箭头的文字注释(字体设置+引线箭头设置)

    此篇文章仅是自己的开发经验分享,不具备官方参考价值,如有不足,欢迎批评指正 开发目的: 创建一个带箭头的文字注释 字体为新宋体,大小2.5mm,宽度系数0.7,箭头为30度实心箭头 like this ...

最新文章

  1. ElasticSearch Groovy脚本远程代码执行漏洞
  2. 翟萍python程序设计_Python程序设计(高等学校计算机教育规划教材)
  3. 如何将Android的AOSP仓库放置到自己的gitlab服务器上?
  4. android 放大镜
  5. 详解英伟达三大专业视觉解决方案,覆盖数据中心和边缘计算
  6. Setting Gdb on Windows
  7. 美团面试题:Redis 内存满了怎么办?
  8. 中国新型储能市场技术进展与投资经营模式建议分析报告2022-2028年版
  9. exfat分配单元大小选多少_安防监控摄像机视角大小和镜头毫米数的基础知识!...
  10. anaconda base环境_如何在最新版的Anaconda下安装Tensorflow 1.9
  11. wget下载速度太慢,mwget多线程下载工具
  12. OSPF工作机制——OSPF邻居状态机详解(附图)
  13. hook NSArray 方法在debug模式下会崩溃, 在release模式下会返回nil
  14. 外媒:Airbnb为2020年直接上市作准备
  15. Galaxy S5维修难 仅拆屏幕就需一小时
  16. win2003 程序时间提供程序 NtpClient错误解决
  17. MongoDB 3.0 新特性【转】
  18. springboot 2中文手册_基于spring boot的JAVA开源商城系统实战,后台管理系统免费分享...
  19. python将xml文件转换成excel文件
  20. BFS宽度优先搜索(新冠病毒的传播)

热门文章

  1. 统计一下项目中的代码有多少行是你贡献的
  2. 视频去重(hashlib.md5)
  3. 2014全国计算机等级考试大纲,2014全国计算机等级考试大纲级.doc
  4. 计算器软件测试数据,计算器软件测试报告.doc
  5. 免费网盘如何选择@2020年
  6. iphone通讯录 android,3个方法,教你如何快速而又有效的将联系人从iPhone转移到安卓...
  7. 【研究生】计算机架构的新黄金时代,两位图灵奖得主最新力作
  8. NLP文本情感分析:测试集loss比训练集loss大很多,训练集效果好测试集效果差的原因
  9. eMMC ext4综述【转】
  10. 重磅!北京出落户新政:7所大学本科及以上毕业生,符合一定条件可直接落户!...