这里记录一下项目上遇到的问题,就是创建带洞口的墙的时候,会发现创建接口仅有一个线集合传进去(如下图)。当墙体有洞口的时候,线段就只能再一个集合中传进去了。

这时候会遇到一点问题,就是直接把两个轮廓的线传进去,会出现无法创建墙体的错误(如下图)

经过一段时间的研究,发现,只要所有的轮廓首尾相连,然后轮廓线的方向都一致,即顺时针或者逆时针,就可以生成墙体了。

 public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements){UIDocument uidoc = commandData.Application.ActiveUIDocument;Document doc = uidoc.Document;List<Curve> wallBoundaryList = GetWallBoundaryList();Transaction trans = new Transaction(doc, "创建墙体");trans.Start();Wall.Create(doc, wallBoundaryList, false);trans.Commit();return Result.Succeeded;}public List<Curve> GetWallBoundaryList(){List<Curve> result = new List<Curve>();XYZ p1 = new XYZ(0, 0, 0);XYZ p2 = new XYZ(10, 0, 0);XYZ p3 = new XYZ(10, 0, 10);XYZ p4 = new XYZ(0, 0, 10);XYZ p5 = new XYZ(3, 0, 3);XYZ p6 = new XYZ(7, 0, 3);XYZ p7 = new XYZ(7, 0, 7);XYZ p8 = new XYZ(3, 0, 7);Line l1 = Line.CreateBound(p1, p2);Line l2 = Line.CreateBound(p2, p3);Line l3 = Line.CreateBound(p3, p4);Line l4 = Line.CreateBound(p4, p1);Line l5 = Line.CreateBound(p5, p6);Line l6 = Line.CreateBound(p6, p7);Line l7 = Line.CreateBound(p7, p8);Line l8 = Line.CreateBound(p8, p5);result = new List<Curve>(){l1,l2,l3,l4,l5,l6,l7,l8,};return result;}

这次分享的是创建带洞口墙的方法。希望对你有帮助~~~


#21.10.14 记录新研究的几个点,有可能影响墙体的创建
1、轮廓线的第一根线不能和最后一根线平行。
2、内轮廓的第一根线不能和外轮廓的第一根线垂直
满足这两个条件,基本带轮廓的墙都可以生成。

Revit二次开发小技巧(十二)创建带洞口的墙相关推荐

  1. 用友NC二次开发小技巧:服务端执行SQL语句的方法

    大家好,今天给大家分享一下NC二次开发过程中的一个非常有用的小技巧:执行SQL语句. 我们在NC二开的过程中,经常需要直接查询数据库或者直接修改数据库表的字段值.这是一个非常简单并且通用的需求.下面给 ...

  2. Revit二次开发小技巧(十六)寻找最短路径

    最近遇到一个需求,指定两个配电箱,然后找到两个配电箱之间最短的桥架路径.运用了Dijkstra算法去计算最短路径,以配电箱实体.三通.四通为节点,简化中间弯头计算的方式. 背景 选择起点和终点的配电箱 ...

  3. Revit二次开发小技巧(十四)封闭墙体最大外轮廓

    前言:当前方法使用在既定的情况下,选择闭合的墙体,然后找到对应的外轮廓,并不支持存在开口的情况,仅提供一种思路.Revit版本为2019 代码: using Autodesk.Revit.Attrib ...

  4. Revit二次开发小技巧(十七)实时监控模型线的生成

    前言:项目中需要一个需求,用户想调用出Revit中自带的绘制模型线方法,然后再绘制结束时,可以拿到绘制的模型线,然后实现后面的算法.这里记录一种方法,通过DocumentChange事件+修改Tag的 ...

  5. Swift开发小技巧--扫描二维码,二维码的描边与锁定,设置扫描范围,二维码的生成(高清,无码,你懂得!)...

    二维码的扫描,二维码的锁定与描边,二维码的扫描范围,二维码的生成(高清,无码,你懂得!),识别相册中的二维码 扫描二维码用到的三个重要对象的关系,如图: 1.懒加载各种类 // MARK: - 懒加载 ...

  6. RCP开发小技巧(二)

    定制Console View的ToolBar: 去掉RCP Console View 中的Open Console和Select Console按钮. WorkbenchPage page = Pla ...

  7. 小六六平时的开发小技巧二(Nacos在服务配置中心的妙用)

    前言 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/bin392328206/six-finger 絮叨 小六六打算开一个系列把自己平时的一些开发经验分享出来和 ...

  8. 《C++游戏开发》笔记十二 战争迷雾:初步实现

    本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9475979 作者:七十一雾央 新浪微博:http:// ...

  9. 【转载】古龙·断章·小札[十二]:《多情剑客无情剑》

    古龙·断章·小札[十二]:<多情剑客无情剑> 作者:边城不浪 十年前,朝廷里的风流翰林,兵器谱上排名第三的探花郎黯然出关,展开自我放逐生涯.十年后,流放者归来. <多情剑客无情剑&g ...

最新文章

  1. Ubuntu8.04 LTS Hardy下的常用命令
  2. 三星q90r如何升级系统_看尚电视强制升级风行系统,如何安装第三方软件?
  3. 如何使用SubtitleWorkshop制作字幕
  4. Sharepoint学习笔记---Debug--使用ULS Log跟踪Solution错误信息
  5. java如果目录不存在则创建目录_java – 创建一个目录,如果它不存在,然后再创建该目录中的文件...
  6. java写企业员工信息管理系统
  7. 江湖魔头-BugkuCTF平台
  8. matlab 画三棱柱,教大家几何画板画出三棱柱图形
  9. 拉里·佩奇(Larry Page)的伟大归来
  10. excel的最大行数和列数
  11. 帝国CMS7.5忘记后台密码怎么找回
  12. ArcGIS10试用体验之安装篇
  13. matlab如何显示神经网络的均方误差,matlab神经网络工具箱
  14. 大数据技术十大核心原理
  15. 管理软件到底有没有前途(三)-从国家十一五信息化战略规划来看
  16. 高性价比美国WordPress主机WebHostingPad
  17. 欺骗的艺术——第二部分(9)
  18. cad指北针lisp_用CAD里的LISP画图,题目如图片,编写一程序,可在任意位置任意方向绘制指定大小的指北针。...
  19. AD17如何将图片转化为PCB图片丝印,定制你的专属logo!
  20. 论文阅读笔记《Self-Supervised Hypergraph Convolutional Networks for Session-based Recommendation》

热门文章

  1. CTF-安卓手机文件分析取证(陌陌发送的图片)
  2. C# .net MVC 实战项目 使用wangEditor实现word在线编辑 + 导出到word文档(解决html图片导出到word是个大红叉问题) (六)
  3. 前端如何实现一个滚动的文本字幕
  4. [量化-033]金融哲学-道德经解读-004-道德经最好理解的部分
  5. 与卿共赴鸿蒙是什么意思,《山河令》看来周子舒是真的很爱温客行,君心似我心,此生无憾...
  6. 《领导沟通艺术与真实影响力》感想一
  7. Error Some file crunching failed, see logs for details 解决方案
  8. 淘宝店铺商品接口 item_search_shop数据获取、拼多多关键词、1688原数据接口、淘宝商品详情sku信息等各大电商平台接口采集调用展示
  9. CSP-J1 CSP-S2第1轮 初赛资料集(2022.09.09)
  10. 隐私黑产:2亿余条个人信息卖了2000余万元