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

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

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

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

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


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

开发环境 visual studio2017 + revit2016

界面

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

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

实现思路:

检查碰撞的方法,简化成判断矩形范围是否有重叠的问题:

判断矩形的关系是否重叠

循环判断模型中是否仍有碰撞的标记/标注

随机移动标记族

需要注意的

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

总结

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

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

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

关于歌手

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

  1. 标注的尺寸避让lisp_Revit二次开发——标记/标注自动避让思路分享

    在[注释]选项卡中,Revit提供了"全部标记"这个快速标记对象的方法 梁墙板柱.常规模型等都可以实现快速标注 配合之前开发的"直墙标注"功能,对于解决装配式应 ...

  2. Revit二次开发——结构模型构件自动扣减

    **Revit二次开发实例--模型自动扣减** 本文章来源于微信公众号 '有福BIM' 有福BIM的第四篇原创文章! 阅读前望知悉: 我晓得各位读者和粉丝中不乏C#二开大佬 有福作为一个二开新手(编程 ...

  3. Revit二次开发-修改标注线尺寸界线的方向

    有时候,我们想标注一个尺寸,正常情况下尺寸界线最好是贴着要标注的物体. 尺寸界线贴着物体 在Revit中,用以下代码生成标注 Line lineVertical = Line.CreateBound( ...

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

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

  5. Revit二次开发_轴网快速标注

    通过Revit二次开发实现对平行轴网的快速标注.交互操作是框选轴网->点选尺寸标注出现的位置->生成两道尺寸标注. 要达到设想的结果一些地方需要特殊考虑: 框选操作容易误选轴网,起码要把与 ...

  6. Revit二次开发之轴网标注

    Revit二次开发之轴网标注 using System; using System.Collections.Generic; using Autodesk.Revit.DB; using Autode ...

  7. Revit二次开发之管道避让

    管道翻弯避避让 本项目实现了管道碰撞的时候跳跃或者翻弯的方式实现避让的功能.废话不多说,直接上代码 这个Command类是项目的主要类. using System; using System.Coll ...

  8. revit二次开发--异形柱翻模

    最近写了一个revit二次开发的异形柱翻模的功能,柱子翻模网上有很多插件可以用,我用的比较多的是红瓦,其中异形柱的翻模对于图纸的要求较高,有很多不准确的地方.很多异形柱,整体翻模出来是错误的,翻出来之 ...

  9. Revit二次开发案例一(第1讲)

    这期起,将为大家带来二次开发的小案例讲解,通过借助Revit建模与二次开发,帮助大家快速提高开发水平,快快参加吧!!! 族实例是通过族类型创建的,而创建族实例是Revit二次开发尤其重要的,因此小伙伴 ...

  10. Revit二次开发环境搭建(Revit 2019+Visual Studio 2017)

    Revit二次开发环境搭建(Revit 2019+Visual Studio 2017) 安装 Revit 2019 Visual Studio 2017 Revit SDK 2019 配置Addin ...

最新文章

  1. CentOS7.0重置Root的密码
  2. 搭建WEB服务详解(二)
  3. 包银消费CTO汤向军:消费金融大数据风控架构与实践
  4. LeetCode5377. 将二进制表示减到1的步骤数
  5. severity distribution: tail of distributions
  6. Delphi的Socket编程要分几步?
  7. Golang通过syscall调用win32的Api
  8. java 中格式化小数位数
  9. python从入门到实践答案第四章_python从入门到实践课后习题第四章
  10. python的pass语句_Python pass语句–通过Python
  11. javascript 一次开发,多平台运行
  12. 网络模型介绍、数据网络传输过程与网络传输速率
  13. 编程软件有哪些比较好用
  14. idea打包时控制台中文乱码
  15. 图神经网络的困境,用微分几何和代数拓扑解决
  16. ES:java.nio.file.AccessDeniedException: /opt/shan/es/config/elasticsearch.keystore
  17. Linux命令 - rm命令
  18. svg图片调整大小和颜色
  19. skynet 游戏服务器探索(1)--熟悉skynet(网络)
  20. otg usb 定位_USB OTG插入检测识别

热门文章

  1. Python安装教程_Python运行环境的搭建
  2. 初中数学知识点总结_初中数学知识点总结
  3. 饥荒服务器模组全部显示冲突,饥荒联机洞穴设置及常见问题的解决方法
  4. 【我的OpenGL学习进阶之旅】EGL简介
  5. 捷普服务器群组防护系统,捷普入侵防御系统
  6. windows启动修复_如何使用Windows启动修复工具修复启动问题
  7. 2021年应届生面试题(一文到底)
  8. Java 二维码及条形码处理
  9. python窗口中导入图片_Python3 tkinter基础 Text image 文本框中插入图片
  10. Resnet网络中数字的含义以及连接方式