Revit二次开发
嘿呦嘿呦嘿呦嘿
这个作者很懒,什么都没留下…
展开
-
Revit二次开发---未打开项目使自定义面板功能可用
打开Revit还没打开项目是需要使用自定义功能,需要如下设置......原创 2022-06-21 17:45:51 · 334 阅读 · 0 评论 -
Revit二次开发---载入模型组
1.创建一个模型组2.将模型组保存为rvt文件3.通过程序将模型组rvt文件导入到Revit前两步略过。我找了半天并没有找到可以直接将rvt文件导入转换成模型组的API,于是先用面板按钮看看流程是怎样的。点击面板按钮将保存好的模型组rvt文件(我绘制了几面墙)加载进来然后加载过程中弹出提示框看到提示我了解到模型组rvt中的墙实例是被复制到当前项目文档的,点击确定,从项目浏览器可以找到导入的模型组分析过程:1.模型组导出的是rvt文件,可得出加载时要把rvt文件导入2.重复类型提示框,可得出是将模型组rvt内原创 2022-06-01 15:53:39 · 1242 阅读 · 2 评论 -
Revit二次开发---截取项目错误/警告弹窗
不必开启事务也可以截取错误/警告弹窗。public Result Execute(ExternalComandData commandData,ref string message,ElementSet elements){ commandData.Application.Application.FailuresProcessing += Application_FailuresProcessing;}private void Application_FailuresProcessin原创 2021-10-20 16:40:09 · 661 阅读 · 0 评论 -
Revit二次开发---获取项目文件路径
分离打开项目时无法通过doc.PathName获取到项目路径,只能在DocumentOpening事件里获取到。Public class Menu : IExternalApplication{ public Result OnStartuo(UIControlledApplication application) { application.ControlledApplication.DocumentOpening += ControlledApplicat原创 2021-09-07 13:22:41 · 945 阅读 · 0 评论 -
Revit二次开发---屏蔽警告提示窗口
Revit2017版本以外没试过。实现接口public class FailurePreprocessor : IFailuresPreprocessor{ public FailureProcessingResult PreprocessFailures(FailuresAccessor fa) { IList<FailureMessageAccessor> lstFma = fa.GetFailureMessages(); if(l原创 2021-02-18 09:17:38 · 1346 阅读 · 1 评论 -
Revit二次开发---隐藏遮挡元素
背景:冲突检测完成后需要显示相互碰撞的元素并截图,因为会有房子、地面等等大的元素,所以经常会遇到碰撞的元素被遮挡。解决思路:1、将项目的“视觉样式”改为“隐藏线”模式(选中截图时更清晰的显示)、设置视图方向为俯视(从上往下看)。2、创建一条模型线用于检测都有哪些遮挡元素,并将元素隐藏。3、截图后再把隐藏的元素显示出来。...原创 2021-02-10 10:00:16 · 787 阅读 · 0 评论 -
Revit二次开发---操作系统按钮
笔记操作Revit系统功能按钮需要引用“AdWindows.Dll”这个文件。以得到“注释”——“详图”——“区域”按钮为例://得到系统控件Autodesk.Windows.RibbonControl ribbon = Autodesk.Windows.ComponetManager.Ribbon;//获取“注释”标签页Autodesk.Windows.RibbonTab rt=null;//“注释”标签页中“详图”面板Autodesk.Windows.RibbonFoldPane原创 2021-02-04 11:48:36 · 536 阅读 · 1 评论 -
Revit二次开发---链接文件碰撞检测
功能大概就是检测项目中的元素(包括链接文件中的构件)是否冲突大致思路:1、先获取到链接文件中所有构件转换后的solid,转化后的solid就可以直接和项目中的元素做检测了2、获取要对比的元素所有边、面、solid3、如果元素有边:用边和solid做检测,如没检测到还需面和边做检测; 如果元素没有边:用面和面做检测-----------------代码有时间再写,下班了----------------...原创 2021-01-26 10:59:19 · 1748 阅读 · 1 评论 -
Revit二次开发---操作族文档
1、获取/设置族参数2、切换族类型3、原创 2021-01-19 16:26:28 · 1040 阅读 · 0 评论 -
Revit二次开发---剖切视图
需求:手动绘制剖切线,绘制完成直接切换到刚才绘制的剖面视图。原创 2021-01-12 17:28:57 · 1082 阅读 · 0 评论 -
Revit二次开发---获取梁的厚度/长度/高度
梁的厚度/长度/高度不能直接获取到,可以根据几何信息计算得出。 /// <summary> /// 获取梁厚度 /// </summary> /// <param name="inst"></param> /// <returns></returns> public double GetBeamThick(FamilyInstanc.原创 2021-01-04 09:44:49 · 1082 阅读 · 0 评论 -
Revit二次开发---修改墙体厚度
墙体厚度是只读的,无法修改,所以只能通过修改其内部结构的层厚度。1、得到墙体结构2、得到所有层,并遍历修改厚度3、修改后的层集合设置给结构,并把结构设置给墙类型大致代码如下:Wall wall;double dThickness = 500 / 304.8;double dHeight = wall.get_Prarmeter(BuiltInParameter.WALL_USER_HEIGHT_PARAM).AsDouble();double dOffset = wall..原创 2020-12-23 11:01:42 · 2455 阅读 · 2 评论 -
Revit二次开发---墙体开洞
此功能要实现 管线与构筑物(墙、梁、楼板、天花板、屋顶)交点开洞,并且要把管线与洞口关联起来。首先要开洞,这里说一下我的方法是用洞口族在构筑物上剪切开出的洞口,大致思路:1、得到构筑物的面 2、得到管线的中心线与构筑物面相交的两点,并计算出中点 3、在中点创建洞口族并剪切...原创 2020-12-17 17:53:17 · 1723 阅读 · 2 评论 -
Revit二次开发---碰撞检测
记录一下,写的比较简单 核心代码就这点。没仔细测,反正目前检测的都是和rvt自带碰撞检测结果一样的。List<ElementId> left;//要检测碰撞的元素idList<ElementId> right;//要检测碰撞的元素idstring sResult="";foreach(ElementId eid left){ Element elem = doc.GetElement(eid); FilteredElementCollector co原创 2020-12-10 16:06:43 · 4091 阅读 · 3 评论 -
Revit二次开发---项目文件转族文件
将项目文件(.rvt)转换成族文件(.rfa), 项目中的系统族用这种方式转不了1. 获取到项目中实例2.遍历实例记录属性/坐标/中心线等,并且将实例保存成.rfa格式文件3. 加载一个空的族文件,并且把刚刚导出的实例全部加载到空的族文件中设置其属性/坐标等4. 将族文件保存//获取实例FilteredElementCollector fec = new FilteredElementCollector(doc).ofClass(typeof(FamilyInstance));.原创 2020-12-10 14:23:51 · 3686 阅读 · 6 评论 -
Revit二次开发---绘制模型线
模型线绘制方法不难,看过API都懂。只是在构建模型线所需平面时遇到了问题,也是本人数学不太好,绘制的时候总是报错:"模型线不在平面上" ,我也是蒙蒙的后来才知道需要构造一个垂直于线方向的平面才可以。 /// <summary> /// 绘制模型线 /// </summary> /// <param name="doc">文档</param> /// <para原创 2020-10-23 17:10:49 · 2872 阅读 · 1 评论 -
Revit 二次开发---用命令绘制墙体预设置定位线
最近刚换了份工作,是做Revit二次开发的,刚开始让我熟悉两周Revit软件和API之后,产品给了个需求文档,文档里其他功能都实现了,唯独有两个需求卡住了。一个是 绘制墙之前要预先设置“定位线”(我是调用的Revit命令去画墙),第二个是通过程序调出Revit的“编辑构建”窗口。首先是预设置“定位线”:直接在百度上搜索“Revit 预设值定位线”,找到了两个有用的信息:http://bbs.glsbim.com/forum.php?mod=viewthread&tid=57这..原创 2020-06-21 20:14:36 · 1350 阅读 · 2 评论