BoundingBoxXYZ定义了一个三维的长方体盒。它与BoundingBoxUV不同的是,BoundingBoxXYZ继承于APIObject对象。

它的Transform属性可以用来将数据从局部坐标系变换到模型系统的坐标。

如果要得到模型空间的长方体盒边界数据,可以用Transform依次转换各个数据。

1) 定义视图的边界 
BoundingBoxXYZ可以通过视图的裁剪盒属性(View.CropBox)来定义视图的边界。

如图所示:

2) 定义三维视图剖面框
BoundingBoxXYZ也可以通过三维视图的GetSectionBox方法来获取三维视图的剖面框(Section Box)。在在Revit UI界面的三维视图属性框里,勾选剖面框属性,即可在视图中显示出来,如图所示:

3) 其他用法
① 定义元素的几何边界盒(Element.BoundingBox属性),这种情况BoundingBoxXYZ是平行于坐标轴的。
② 用于ViewSection类的CreateSection和CreateDetail方法。

以下的表格是ViewSection类的主要属性。

属性名

描述 .,

Max/Min

最大/最小坐标值。这两个属性确定了平行于坐标的三维边界盒。最大值点是右上前点;最小值点足左下后点

Transform

从盒子坐标空间到投型空间的变换

Enable

表明边界盒是否打开

MaxEnabled/ MinEnabled

表明最大/最小边界在某一维度上是否可用的,使用0参数X轴,1代表Y轴,2代表Z轴。

•如果是一般的视图(ViewScction,ViewPlan 等),BoundingBoxXYZ是从视图的 CropBox属性获取的,那么表明是否可以用视图的裁剪盒来剪辑元素

•如果Enable属性是false,那么这两个属性也会返回false

•如果视图的裁剪视图属性是打开的,即API中View.CropBoxActive为true,那么MaxEnalbed和MinEnalbed属性都会返回true

•如果视图的裁剪视图属性是关闭的,即API中View.CropBoxActive为false,那么MaxEnalbed和MinEnalbed属性都会返回false

•如果BounduigBoxXYZ是从三维视图的GetSectionBox方法获取的,那么返回值取决于三维视图的“剖面框”属性有没有勾选。如果勾选了该属性,即API中BounduigBox Enalbe为true,那么这两个属性都返回true;否则返回false

•如果BounduigBoxXYZ是从元素Element.BounduigBoxXYZ属性获取的,那么这两个属性都返回true

Bounds

通过索引获取最大或者最小边界值。用0参数代表最小值,1代表最大值

BoundEnabled

通过索引获取边界是否打开。第一个参数为边界值,0代表最小值,1代表最大; 第二个参数是维度,0代表x轴,1代表y轴,2代表z轴。如果要单独打开各个维度边界,必须整个边界盒是打开的

以下代码实现了通过旋转BoundingBoxXYZ来修改三维视图的截面盒。

public void ModifySectionBox(Autodesk.Revit.DB.Document doc){using (Transaction transaction = new Transaction(doc, "Modify Section Box")){transaction.Start();View3D view3d = doc.GetElement(new ElementId(186350)) as View3D;BoundingBoxXYZ box = view3d.GetSectionBox();if (false == box.Enabled){TaskDialog.Show("Error", "The section box for View3D isn't Enable.");return;}// 创建旋转变换 XYZ origin = new XYZ(0, 0, 0);XYZ axis = new XYZ(0, 0, 1);Transform rotate = Transform.CreateRotationAtPoint(axis, 2, origin);// 把旋转变换应用于三维视图的剖面框 box.Transform = box.Transform.Multiply(rotate);view3d.SetSectionBox(box);transaction.Commit();}}

=========【更多高级应用请关注公众号】========

==================================

Revit API之BoundingBoxXYZ的用法和剖面框(Section Box)相关推荐

  1. Revit API:View 视图概述

    前言 本文介绍 Revit 视图相关的基本接口. 内容 View 继承结构 所有的视图都是继承自 Autodesk.Revit.DB.View,分别对应各种视图类型. View 的实例 以官方给的文件 ...

  2. Revit API:找到轮廓族的路径

    前言 以封檐板为例,介绍如何找到某个族中使用的轮廓族. 内容 如下图所示,这是在屋顶边缘家的封檐板: 封檐板的类型中有一个轮廓的属性: 如何通过 Revit API 去获取这个轮廓? 从封檐板获取类型 ...

  3. Revit API、AddInManager、RevitLookup、SDK的用途

    关注公众号及时获取文章更新 NET versions are: .NET 4.0 for Revit 2014, .NET 4.5 for Revit 2015/2016/2017, .NET 4.5 ...

  4. Revit API: Dimension 尺寸标注

    前言 本文介绍 Revit API 的尺寸标注. 内容 在 Revit API 中,尺寸标注相关的有三个类:Dimension.AngularDimension 和 SpotDimension. 后两 ...

  5. 为 Revit API 插件创建 WPF 窗口的基本项目(Revit API+WPF 系列 2/3)

    在本系列的第二部分中,我们将讨论在创建 WPF 窗口时应用的基本项目. 为了继续,请确保您的插件项目能够创建 WPF 窗口.如果没有,您最好创建一个具有 WPF 功能的项目模板并创建另一个新项目.然后 ...

  6. Revit API 开发 (10): ExtensibleStorage 外部存储

    前言 很多时候,需要往Revit的文件里面放自己的数据.这里简单介绍一下 Revit API 如何处理数据的保存和读取,并且这些数据是绑定到具体的构件上的.另外,也可以自己创建一个 DataStora ...

  7. Revit API:Element 继承体系

    继 "Revit API 开发周边:得到 Element 的所有子类" 之后,整理了一下所有 Element 的子类,内容源自 Revit SDK 中的 RevitAPI.chm ...

  8. 如何调用Revit API实现风道末端与风管连接?

    将风道末端连接到风管上,在Revit的UI界面上操作步骤如下:选择"风道末端"->"风道末端安装到风管上"->"拾取风管". 那 ...

  9. Revit API:预制零件 Fabrication Part

    前言 预制零件是 Revit 系统的功能,这个系统指的是水暖电系统.预制零件在 Revit 的软件系统中以 FabricationPart 的形式出现,它的数据源头并不在 Revit 里,而是从 Au ...

最新文章

  1. 重读TCP协议(3)
  2. MyBatis之传入参数
  3. linux 查询注册服务,window下注册服务的命令小结
  4. 信阳哪些技校有学计算机的,2018年信阳十大技校排名 排名前十的学校有哪些
  5. Elasticsearch索引原理
  6. 最优化理论与方法(part3)--矩阵的Rayleigh商
  7. shiro学习(24):Spring的transaction-manager的用法
  8. unix mysql备份_数据库操作 备份篇 unix
  9. Netscaler 10.5 VPX与XenApp XenDesktop 集成配置系列之三enable StoreFront Remote Access
  10. office communications server 2007 标准版部署详细步骤及错误分析
  11. Senparc.Weixin.MP SDK 微信公众平台开发教程(二):成为开发者
  12. 政简网:还剩一个月时间怎么科学有效复习公务员考试?
  13. 超级实用网址合集(必须收藏一波)
  14. 软件工程---团队作业4
  15. 360浏览器各历史版本大全和bug汇总(及历史版本官方下载地址)
  16. 使用PPT保存300dpi或者指定dpi的高质量图片
  17. ftp服务器连接时间太长(耗时20s或40s)问题解决(超详细图文教程)
  18. 第四届高教杯计算机绘图教程,第三届“高教杯”机械类计算机绘图试卷(三维).pdf...
  19. [$injector:unpr] Unknown provider:--angular.module()函数解答
  20. 对视频声音,音频进行音量标准化和响度均化,归一化的标准,原理以及具体操作

热门文章

  1. 如何生成jks证书文件
  2. OpenCV深入学习(6)--直方图之calcHist使用(补)
  3. 怎样用手机把视频变成GIF表情包?原来那么简单,网友:看完涨知识了
  4. xampp软件安装流程
  5. I \ Q信号、IFI \ IFQ信号、差分信号、单端信号知识总结
  6. 【转】PHP乱码问题,UTF-8(乱码)
  7. 非对称加密和对称加密
  8. 安卓开发实战讲解!首发10万字Android开发实战文档,完整版开放下载
  9. Jmeter接口测试中参数化的多种方法,你知道的有几种?欢迎评论留言。
  10. Python - 寻找数组的子集