/// <summary>/// 根据两个点创建剖面视图/// </summary>/// <param name="doc">文档</param>/// <param name="el">元素</param>/// <param name="pointF">起点</param>/// <param name="pointT">终点</param>/// <param name="bodyWidth">视图可见范围的长度</param>private void CreateSectionBox(Document doc, Element el, XYZ pointF, XYZ pointT, double bodyWidth){var elOffset=el.get_Parameter(BuiltInParameter.INSTANCE_FREE_HOST_OFFSET_PARAM)?.AsDouble();// Determine view family type to useViewFamilyType viewFamilyType= new FilteredElementCollector(doc).OfClass(typeof(ViewFamilyType)).Cast<ViewFamilyType>().FirstOrDefault<ViewFamilyType>(x =>ViewFamily.Section == x.ViewFamily);// Determine section boxXYZ vecPoint = pointT - pointF;BoundingBoxXYZ  boundingBoxXYZ = el.get_BoundingBox(null);double minZ = boundingBoxXYZ.Min.Z;double maxZ = boundingBoxXYZ.Max.Z;double len = vecPoint.GetLength();double offset = 0.1 * len;var boxWidth = bodyWidth / 304.8;if (elOffset == null){elOffset = 0;}XYZ min = new XYZ(-len, minZ - offset- (double)elOffset, -offset);XYZ max = new XYZ(len, maxZ + offset- (double)elOffset, boxWidth);XYZ midpoint = pointF + 0.5 * vecPoint;XYZ eldir = vecPoint.Normalize();XYZ up = XYZ.BasisZ;XYZ viewdir = eldir.CrossProduct(up);Transform transform = Transform.Identity;transform.Origin = midpoint;transform.BasisX = eldir;transform.BasisY = up;transform.BasisZ = viewdir;BoundingBoxXYZ sectionBox = new BoundingBoxXYZ();sectionBox.Transform = transform;sectionBox.Min = min;sectionBox.Max = max;// Create section viewusing (Transaction tx = new Transaction(doc)){tx.Start("Create Section View");var temp = ViewSection.CreateSection(doc, viewFamilyType.Id, sectionBox);tx.Commit();}}

关于SectionBox的方向:把两个点调换一下就可以翻转SectionBox的方向。

Revit二次开发-根据两个点创建剖面视图相关推荐

  1. Revit二次开发——三角面创建

    Revit二次开发--三角面创建 文章目录 Revit二次开发--三角面创建 前言 一.三角面是什么? 二.三角网 三.使用步骤 1.引入库 2.开启事务 3.创建 总结 前言 三角面是创建实体的基础 ...

  2. [Revit二次开发] 轴网交点创建柱子

    项目完整代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using ...

  3. Revit二次开发中如何创建结构平面,修改结构平面的视图范围

    创建结构平面: 使用API:public static ViewPlan Create(Document document, ElementId viewFamilyTypeId, ElementId ...

  4. Revit二次开发 通过boundingBox创建实体

    用户选择任意元素,生成这个元素的包围盒实体.就这么简单.被curveLoop不封闭整到人傻掉 namespace SizeAdjustment{[Autodesk.Revit.Attributes.T ...

  5. Revit二次开发之俯视图缩放匹配

    时隔多日偶有所得,来写自己的第二篇博客,和大家共同进步. 应用场景是在Revit二次开发中需要将当前视图切换成三维视图,并且切换成俯视图,从而可以在平面上选点布置族实例.步骤如下: 第一步:找到Rev ...

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

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

  7. Revit二次开发——Ribbon菜单的创建以及各种不同的button(按钮)的代码总结

    目录 一.创建普通的一个panel里面三个32px*32px的pushbutton,剩下两个写法一样 二.创建三个层叠按钮 层叠按钮图标需为16px*16px 层叠按钮最多为一列放三个,这个也要创建个 ...

  8. #开发catia_CATIA工程制图二次开发之15:从平面创建剖面视图

    从平面创建剖面视图 如何创建与平面关联的切割剖面视图 摘要 本文讨论 CAADrwCreateSectionFromPlane用例.此用例说明如何创建由与平面关联的切割剖面定义的生成剖面视图.因此,如 ...

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

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

最新文章

  1. Java动态追踪技术探究
  2. 非主流图片编辑软件_快火拼多多直播发言软件怎么下载
  3. Cocos Creator 3D 材质系统:曲面效果如何实现?
  4. 计算机科学与技术班级口号八字,班级的八字口号
  5. C语言 二维数组做函数参数的几种情况
  6. Siddhi : Siddhi maven 仓库
  7. 回归分析加不加常数项_时间序列分析基础(一)
  8. android write file,Android Study Day 3 --Android File Read And Write
  9. 在ISA Server 2004上发布使用非标准的21端口进行连接的FTP服务器
  10. App Store新规即将到来 你准备好了吗?
  11. paip.c++ qt 外部dll共享库的导入以及引用
  12. 【传感器大赏】酒精传感器
  13. 消息推送技术干货:美团实时消息推送服务的技术演进之路
  14. linux用什么命令查看ip,Linux中ip命令的使用实例
  15. ADS5517IRGZ 德州TI 11 位、200MSPS 模数转换器 (ADC)
  16. Clover引导Windows10,Mac OS High Sierra,CentOS7 经验分享
  17. 【理财入门一】三大资产与财务自由
  18. css中div怎么飞翔
  19. Linux--系统网络测试和测试工具
  20. C#中MemoryStream类的介绍

热门文章

  1. 怎么上传ftp服务器文件,ftp服务器如何上传本地文件
  2. java用代码实现星期菜谱,基于jsp的家庭食谱管理-JavaEE实现家庭食谱管理 - java项目源码...
  3. Beautiful Soup 基础入门(实验楼学习笔记2)
  4. CUDA out of memory问题(已解决)深度学习
  5. 为什么要有不同的参考文献格式?
  6. hualinux 1.25:Web开发技术发展史
  7. JVM学习笔记(二):垃圾回收、垃圾回收算法、垃圾回收器(Serial、Parallel、CMC、G1)、内存分配原则实战
  8. jvm内存模型与垃圾回收
  9. 地铁自动驾驶模型,地铁列车牵引系统整车模型。
  10. [求助]hyperledger fabric在创建peer通道时出现this policy requires 1 of the 'Writers' sub-policies to be……