用户选择任意元素,生成这个元素的包围盒实体。就这么简单。被curveLoop不封闭整到人傻掉

namespace SizeAdjustment{[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.Manual)]public class WindowDoorOpening : IExternalCommand{public Autodesk.Revit.UI.Result Execute(ExternalCommandData commandData,ref string message, ElementSet elements){UIApplication uIApp = commandData.Application;Application application = uIApp.Application;UIDocument uIDoc = uIApp.ActiveUIDocument;Document document = uIDoc.Document;Selection selection = uIDoc.Selection;View view = uIDoc.ActiveView;//【】过滤墙体 用户选择IList<Element> faces = uIDoc.Selection.PickElementsByRectangle();Transaction trans = new Transaction(document, "LS");trans.Start();var solid  = solidBoundingBox(view, faces.First());var ds7 = DirectShape.CreateElement(document, new ElementId(BuiltInCategory.OST_GenericModel));ds7.GetGeneratingElementIds(solid);ds7.SetShape(new List<GeometryObject>() { solid });trans.Commit();return Result.Succeeded;}public static Solid solidBoundingBox(View view,Element inputSolid){BoundingBoxXYZ bbox = inputSolid.get_BoundingBox(view);// corners in BBox coordsXYZ pt0 = new XYZ(bbox.Min.X, bbox.Min.Y, bbox.Min.Z);XYZ pt1 = new XYZ(bbox.Max.X, bbox.Min.Y, bbox.Min.Z);XYZ pt2 = new XYZ(bbox.Max.X, bbox.Max.Y, bbox.Min.Z);XYZ pt3 = new XYZ(bbox.Min.X, bbox.Max.Y, bbox.Min.Z);//edges in BBox coordsLine edge0 = Line.CreateBound(pt0, pt1);Line edge1 = Line.CreateBound(pt1, pt2);Line edge2 = Line.CreateBound(pt2, pt3);Line edge3 = Line.CreateBound(pt3, pt0);//create loop, still in BBox coordsList<Curve> edges = new List<Curve>();edges.Add(edge0);edges.Add(edge1);edges.Add(edge2);edges.Add(edge3);Double height = bbox.Max.Z - bbox.Min.Z;CurveLoop baseLoop = CurveLoop.Create(edges);List<CurveLoop> loopList = new List<CurveLoop>();loopList.Add(baseLoop);Solid preTransformBox = GeometryCreationUtilities.CreateExtrusionGeometry(loopList, XYZ.BasisZ, height);Solid transformBox = SolidUtils.CreateTransformed(preTransformBox, bbox.Transform);return transformBox;}}
}

Revit二次开发 通过boundingBox创建实体相关推荐

  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二次开发-根据两个点创建剖面视图

    /// <summary>/// 根据两个点创建剖面视图/// </summary>/// <param name="doc">文档</p ...

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

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

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

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

  7. Revit二次开发——扩展存储

    Revit二次开发--扩展存储 ​  在revitAPI中,提供了Extensible Storage framework,可以使开发者将需要存储的数据存到Revit的rvt文件中, 扩展的数据始终跟 ...

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

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

  9. revit二次开发之教学视频

    一.背景 刚入门revit二次开发的小伙伴,很多是零基础的工程人员,为了解决这个问题,博主做了revit二次开发的一系列教学视频(包括C#基础与revit二次开发两个模块),来帮助大家更好的入门. 二 ...

最新文章

  1. spring AOP编程
  2. xargs的简单解析
  3. 02.centos6.4找不到ifcfg-eth0(静态ip配置)
  4. 汇编语言——16位寄存器实现32位二进制数左移4位。
  5. 关于 SAP Spartacus 服务器端渲染 SSR 无法使用窗口宽度以进行自适应设计的问题
  6. python初学者怎么找工作_学python找工作好找吗
  7. lr LoadRunner Internal Architecture loadrunner运行原理图解
  8. c语言学习-自定义并调用函数求三个数的最小公倍数
  9. CAAnimation KeyPath学习总结
  10. linux 命令行下导出查询的数据
  11. Nginx源码阅读 --- http模块 --- TCP连接过程
  12. 成语答题小程序 开源的成语答题小程序
  13. java并发测试工具_Java并发测试工具类
  14. mysql获取某天的开始时间和结束时间
  15. 大数据分页实现与性能优化【转】
  16. 大事 | 生活终于对我的联想Y430P下手了!
  17. 3D打印机开源项目遭克隆或成开源拐点
  18. 工控系统主动安全防御体系的构建
  19. 春招从0到1offer的总结和经验分享
  20. 高一计算机计算器,上了高一 赶紧扔了计算器吧!

热门文章

  1. 霍金已逝,人工智能的威胁还在!
  2. 计算机网络实验环境介绍与基本操作,实验一计算机网络基本操作33.docx
  3. 华为手机有线共享网络_华为手机怎么投屏到电视?这2个方法又快又简单
  4. 解决Win10无法修改hosts文件
  5. [设计模式]享元模式
  6. 腾讯云主机SSL证书配置
  7. 云计算毕业设计论文:企业级私有云平台设计报告目录加绪论
  8. PH测定仪、电导率测定仪、叶绿素荧光测定仪使用
  9. Zookeeper系列(二)、核心原理
  10. 五分钟学会各种环形进度条