Revit二次开发——标记/标注自动避让思路分享

Revit二次开发——标记/标注自动避让思路分享_第1张图片

在【注释】选项卡中,Revit提供了“全部标记”这个快速标记对象的方法

梁墙板柱、常规模型等都可以实现快速标注

配合之前开发的“直墙标注”功能,对于解决装配式应用中内隔墙、砌体墙的平面表达的效率,有极大的提升

Revit二次开发——标记/标注自动避让思路分享_第2张图片

 

设计师使用后也反馈良好,但也遇到问题,自动创建的标注及标记会存在遮挡打架的情况,影响了平面阅读效果,仍需手动移开

需求比较明确,即判断尺寸标注、标记族之间的碰撞,并移开


本文分享标记/标记自动检测碰撞避让的插件开发思路

 

开发环境 visual studio2017 + revit2016

 

界面

 

Revit二次开发——标记/标注自动避让思路分享_第3张图片Revit二次开发——标记/标注自动避让思路分享_第4张图片

由于带引线的标记族,其BoundingBoxXYZ是包含引线范围的,不适合用于碰撞检查,所以我这里是用标记族的插入点为原点,根据字高及文字内容来构筑一个矩形框来进行碰撞

Revit二次开发——标记/标注自动避让思路分享_第5张图片

 

对于尺寸注释的碰撞检查范围,也可根据此方法

 

实现思路:

检查碰撞的方法,简化成判断矩形范围是否有重叠的问题:Revit二次开发——标记/标注自动避让思路分享_第6张图片

判断矩形的关系是否重叠

Revit二次开发——标记/标注自动避让思路分享_第7张图片

循环判断模型中是否仍有碰撞的标记/标注Revit二次开发——标记/标注自动避让思路分享_第8张图片

随机移动标记族

 

 

需要注意的

  • 尺寸标注是倾斜的情况时,需要将计算包围框及检测碰撞的方法进行优化
  • 本次需求比较简单,如果遇到平面视图大规模标记碰撞的情况,可以使用爬山算法:将碰撞的某元素移动,再计算当下碰撞的数量,如果碰撞情况降低,则执行此次移动,若碰撞的标记数量相同或增加,则不执行此次移动,循环......(或者有没有矩形碰撞挤开算法)

 

总结

对于一个功能需求的实现,会有很多方案,简单轻便,复杂运算都有。对开发工作来说,只要满足需求预期即可,但也降低了拓展应用的可能

 

点击加入歌手插件交流群​jq.qq.com

 

       快速弹夹已经发布一段时间,交流群小伙伴也反馈了很多优化建议,想要和歌手一起交流学习开发知识,或者对快速弹夹有优化建议的朋友都可以加群(只想要使用插件的话,可以不加群私聊群主获取安装包,也可在插件官网http://www.kuaisudanjia.cn自行下载)

 

关于歌手

你可能感兴趣的:(Revit二次开发思路分享)