Revit二次开发——标记/标注自动避让思路分享
在【注释】选项卡中,Revit提供了“全部标记”这个快速标记对象的方法
梁墙板柱、常规模型等都可以实现快速标注
配合之前开发的“直墙标注”功能,对于解决装配式应用中内隔墙、砌体墙的平面表达的效率,有极大的提升
设计师使用后也反馈良好,但也遇到问题,自动创建的标注及标记会存在遮挡打架的情况,影响了平面阅读效果,仍需手动移开
需求比较明确,即判断尺寸标注、标记族之间的碰撞,并移开
本文分享标记/标记自动检测碰撞避让的插件开发思路
开发环境 visual studio2017 + revit2016
界面
由于带引线的标记族,其BoundingBoxXYZ是包含引线范围的,不适合用于碰撞检查,所以我这里是用标记族的插入点为原点,根据字高及文字内容来构筑一个矩形框来进行碰撞
对于尺寸注释的碰撞检查范围,也可根据此方法
实现思路:
检查碰撞的方法,简化成判断矩形范围是否有重叠的问题:
判断矩形的关系是否重叠
循环判断模型中是否仍有碰撞的标记/标注
随机移动标记族
需要注意的
- 尺寸标注是倾斜的情况时,需要将计算包围框及检测碰撞的方法进行优化
- 本次需求比较简单,如果遇到平面视图大规模标记碰撞的情况,可以使用爬山算法:将碰撞的某元素移动,再计算当下碰撞的数量,如果碰撞情况降低,则执行此次移动,若碰撞的标记数量相同或增加,则不执行此次移动,循环......(或者有没有矩形碰撞挤开算法)
总结
对于一个功能需求的实现,会有很多方案,简单轻便,复杂运算都有。对开发工作来说,只要满足需求预期即可,但也降低了拓展应用的可能
点击加入歌手插件交流群jq.qq.com
快速弹夹已经发布一段时间,交流群小伙伴也反馈了很多优化建议,想要和歌手一起交流学习开发知识,或者对快速弹夹有优化建议的朋友都可以加群(只想要使用插件的话,可以不加群私聊群主获取安装包,也可在插件官网http://www.kuaisudanjia.cn自行下载)
关于歌手
Revit二次开发——标记/标注自动避让思路分享相关推荐
- 标注的尺寸避让lisp_Revit二次开发——标记/标注自动避让思路分享
在[注释]选项卡中,Revit提供了"全部标记"这个快速标记对象的方法 梁墙板柱.常规模型等都可以实现快速标注 配合之前开发的"直墙标注"功能,对于解决装配式应 ...
- Revit二次开发——结构模型构件自动扣减
**Revit二次开发实例--模型自动扣减** 本文章来源于微信公众号 '有福BIM' 有福BIM的第四篇原创文章! 阅读前望知悉: 我晓得各位读者和粉丝中不乏C#二开大佬 有福作为一个二开新手(编程 ...
- Revit二次开发-修改标注线尺寸界线的方向
有时候,我们想标注一个尺寸,正常情况下尺寸界线最好是贴着要标注的物体. 尺寸界线贴着物体 在Revit中,用以下代码生成标注 Line lineVertical = Line.CreateBound( ...
- Revit二次开发——自动生成构件图(总结)
之前测试导出构件图的功能实现,拆分了各模块分布进行测试: Revit二次开发--一键导出构件图(1) Revit二次开发--叠合板自动配筋(2) Revit二次开发--自动标注钢筋思路(3) 本篇为这 ...
- Revit二次开发_轴网快速标注
通过Revit二次开发实现对平行轴网的快速标注.交互操作是框选轴网->点选尺寸标注出现的位置->生成两道尺寸标注. 要达到设想的结果一些地方需要特殊考虑: 框选操作容易误选轴网,起码要把与 ...
- Revit二次开发之轴网标注
Revit二次开发之轴网标注 using System; using System.Collections.Generic; using Autodesk.Revit.DB; using Autode ...
- Revit二次开发之管道避让
管道翻弯避避让 本项目实现了管道碰撞的时候跳跃或者翻弯的方式实现避让的功能.废话不多说,直接上代码 这个Command类是项目的主要类. using System; using System.Coll ...
- revit二次开发--异形柱翻模
最近写了一个revit二次开发的异形柱翻模的功能,柱子翻模网上有很多插件可以用,我用的比较多的是红瓦,其中异形柱的翻模对于图纸的要求较高,有很多不准确的地方.很多异形柱,整体翻模出来是错误的,翻出来之 ...
- Revit二次开发案例一(第1讲)
这期起,将为大家带来二次开发的小案例讲解,通过借助Revit建模与二次开发,帮助大家快速提高开发水平,快快参加吧!!! 族实例是通过族类型创建的,而创建族实例是Revit二次开发尤其重要的,因此小伙伴 ...
- Revit二次开发环境搭建(Revit 2019+Visual Studio 2017)
Revit二次开发环境搭建(Revit 2019+Visual Studio 2017) 安装 Revit 2019 Visual Studio 2017 Revit SDK 2019 配置Addin ...
最新文章
- CentOS7.0重置Root的密码
- 搭建WEB服务详解(二)
- 包银消费CTO汤向军:消费金融大数据风控架构与实践
- LeetCode5377. 将二进制表示减到1的步骤数
- severity distribution: tail of distributions
- Delphi的Socket编程要分几步?
- Golang通过syscall调用win32的Api
- java 中格式化小数位数
- python从入门到实践答案第四章_python从入门到实践课后习题第四章
- python的pass语句_Python pass语句–通过Python
- javascript 一次开发,多平台运行
- 网络模型介绍、数据网络传输过程与网络传输速率
- 编程软件有哪些比较好用
- idea打包时控制台中文乱码
- 图神经网络的困境,用微分几何和代数拓扑解决
- ES:java.nio.file.AccessDeniedException: /opt/shan/es/config/elasticsearch.keystore
- Linux命令 - rm命令
- svg图片调整大小和颜色
- skynet 游戏服务器探索(1)--熟悉skynet(网络)
- otg usb 定位_USB OTG插入检测识别
热门文章
- Python安装教程_Python运行环境的搭建
- 初中数学知识点总结_初中数学知识点总结
- 饥荒服务器模组全部显示冲突,饥荒联机洞穴设置及常见问题的解决方法
- 【我的OpenGL学习进阶之旅】EGL简介
- 捷普服务器群组防护系统,捷普入侵防御系统
- windows启动修复_如何使用Windows启动修复工具修复启动问题
- 2021年应届生面试题(一文到底)
- Java 二维码及条形码处理
- python窗口中导入图片_Python3 tkinter基础 Text image 文本框中插入图片
- Resnet网络中数字的含义以及连接方式