![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Revit二次开发
文章平均质量分 52
Imkc
revit development
展开
-
凸包算法Revit实例
算法的基本逻辑与理念来自于《计算几何》这本书,后面其他几章的演示也都会在Revit中实现调试,希望能够每个算法都找一个合适的实现方向在Revit中实现所有的代码都是c#编写并在Revit中调试,因为部分接口与判定使用了Revit API,如果想单纯运行算法可以修改部分API到常用库。原创 2024-06-04 16:10:32 · 394 阅读 · 0 评论 -
Far Manager 3 显示界面乱的问题
Far Manager 3界面乱码的问题解决办法原创 2024-05-21 14:36:58 · 182 阅读 · 0 评论 -
Revit Add-in Manager 多重依赖无法更新的问题解决办法
Revit Add-in Management原创 2024-04-12 14:17:53 · 340 阅读 · 0 评论 -
Revit创建链接模型尺寸标注
创建链接模型尺寸标注原创 2024-03-26 10:27:26 · 349 阅读 · 0 评论 -
Revit中使用依赖注入
依赖注入的技术已经很成熟,本文主要是说明一下Revit中的适用版本与介绍相关的开源项目。原创 2024-01-31 16:54:05 · 437 阅读 · 0 评论 -
Revit二次开发 Grid无法获取reference的报错
ER2018及以上版本创建Grid Dimension报错的问题解决办法原创 2023-05-22 20:52:45 · 126 阅读 · 0 评论 -
Arc 打断拆分成多个线段
拆分弧形原创 2023-05-16 14:59:40 · 382 阅读 · 0 评论 -
Revit二次开发 PromptForFamilyInstancePlacement 方法报错的解决办法
Revit二次开发 PromptForFamilyInstancePlacement 报错的问题解决办法原创 2023-05-12 21:22:42 · 657 阅读 · 0 评论 -
Revit 二次开发 创建零件
快速创建零件原创 2023-05-09 15:54:04 · 192 阅读 · 0 评论 -
WPF 通过一个dictionary管理多个Command注册
WPF通过CommandManage类管理绑定多个Command原创 2023-03-10 16:14:47 · 138 阅读 · 0 评论 -
Revit 二次开发修改填充区域线样式
修改Revit中填充区域(FilledRegion)的线样式原创 2023-03-10 16:07:49 · 395 阅读 · 0 评论 -
Revit 二次开发 创建紧凑型pushbutton
创建StackItemButton原创 2022-12-06 16:42:29 · 265 阅读 · 0 评论 -
Revit二次开发使用MaterialDesignThemes.Wpf
MaterialTheme.WPF.dll Revit报错问题解决方案原创 2022-10-24 09:50:52 · 1021 阅读 · 2 评论 -
Revit 二次开发 未能加载文件或程序集“Microsoft.Xaml.Behaviors”或它的某一个依赖项
Revit二次开发 WPF 无法加载文件 Microsoft.Xaml.Behaviors原创 2022-09-11 17:46:38 · 1447 阅读 · 0 评论 -
Revit二次开发 创建空心模型并与指定构件剪切
创建空心模型并载入到项目中实现剪切操作原创 2022-09-04 15:15:33 · 1988 阅读 · 0 评论 -
Inno Setup 创建Revit安装包
Inno Setup 创建Revit安装包原创 2022-09-01 15:19:59 · 336 阅读 · 0 评论 -
Revit 多版本类库项目创建WPF窗体
Revit 多版本类库项目创建WPF窗体原创 2022-07-15 17:36:36 · 331 阅读 · 0 评论 -
Revit 二次开发 HOF 方式调用transaction
创建泛型接口,将transaction函数调用封装,减少函数编写浪费原创 2022-07-01 15:55:11 · 223 阅读 · 0 评论 -
C++ 检测程序是否在运行
c++ 根据名称获取 process handle 和 pid原创 2022-06-10 16:56:46 · 1386 阅读 · 0 评论 -
Revit自动更新 - C++ FtpGetFiles()
FtpGetFiles()函数详细解释详见官方文档https://docs.microsoft.com/en-us/windows/win32/api/wininet/nf-wininet-ftpgetfilea网上搜这个函数发现这个函数介绍的有点少,所以将自己运行成功的代码放上来希望能够帮到一起学习的人。实现方式:链接服务器获取ftp连接句柄检索在项目中是否有此文件名称,如果存在则下载使用c++ 操作ftp按照文档说法我们应当首先创建InternetOpen获取句柄,并将句柄传原创 2022-05-16 15:14:07 · 484 阅读 · 0 评论 -
Revit二次开发 创建适配多版本项目(2)
https://www.cnblogs.com/ponus/p/11046624.html#!comments可以按照上方链接地址访问原作者博客和github此处按照自己的情况记录了一下项目迁移时遇到的问题多版本项目搭建创建新项目后,打开配置管理器创建多个版本的编译管理器卸载原有项目,打开*.csproj文件,按照版本号添加节点,此处可以限定编译的framwork版本,此处的编译可以将’Any CPU’修改为x64<PlatformTarget>x64</Pl.原创 2022-05-09 15:52:05 · 1289 阅读 · 0 评论 -
Revit二次开发 新创建构件无法使用JoinGeometry等问题
问题场景:实现梁间墙封堵的功能,在我创建墙后希望将上部梁与墙连接处理,呈现更好的视觉效果,但是在我创建墙体后直接使用joinGeometry将会报错无法连接。解决办法:刷新一下文档代码:using (Transaction trans = new Transaction(doc,"Create Close Wall")) { trans.Start(); //Wall Type原创 2022-04-20 17:30:19 · 331 阅读 · 0 评论 -
折线多边形的原位放大
文章目录需要生成的效果折线多边形的原位缩放两种办法6.10 多边形放大、缩小及移动 P309c#实现缺点分析向量缩放办法算法剖析算法步骤c#代码Revit API 方法需要生成的效果吊坑或集水坑的基本原理是按照板边界外侧生成一圈墙体进行封堵折线多边形的原位缩放两种办法一种是周培德的计算几何-算法设计与分析(第三版)中的办法另外一种是引用自折线平行线的计算方法的办法,最后第二种可以解决项目问题,但是两种算法都写了一遍就都分析一下,这种情况以后还会遇到方便回查。6.10 多边形放大、缩小及移动 P3原创 2021-12-17 15:23:55 · 889 阅读 · 0 评论 -
Revit二次开发 自动生成剖面楼梯标注
引用revit坐标与屏幕坐标的转换内容上面链接文件中提供了一种屏幕坐标转换为项目坐标的办法,原理时通过屏幕中的点与边界的比例换算到项目中计算得出,但是博主的方法只适用于XY平面的情况下,如果应用到剖面中就无法满足了,剖面会出现正交剖面及平行XY轴切割或是斜向剖面,所以下面的使用了博主的思想修改了一下方法首先分析剖面视图,可以看作横向与纵向,纵向仅代表Z值,横向代表(X,Y)值,但是横向面会出现旋转偏移,可以把这个看作小时候转的皮蜻蜓一样,其次我们再Revit中看到的剖面视图其实是斜剖面对于屏幕的投原创 2021-12-01 18:08:15 · 1157 阅读 · 0 评论 -
关于Revit中楼梯竖向标注的问题记录及生成方式的解决方案
最终成果成果还需要补充,目前只完成了楼梯部分还需要外侧墙体做联动标注考虑到正向中分专业建模的情况还需要对链接模型进行处理用户自定义选取竖向标注位置做尺寸标注字体避开梯段标高与尺寸标注样式的选择问题楼梯架构楼梯的开发首先需要分清这几个名称方便后期调用楼梯 Stairs梯段 StairsRun踢面 StairsRiser踏板 Tread楼梯标注问题标注需要获取Reference及楼梯平台或是梯段的横向面以及竖向面,而楼梯分为上面几个部分,每个都有单独的Solid可以拾取,我的问原创 2021-11-26 14:25:55 · 1152 阅读 · 0 评论 -
Revit 二次开发 ManageMC3.0 引用冲突
生成项目是发现这个警告但是不影响程序正常运行,搜索这个dll的作用发现是在Revit中才会出现的链接库,查看自己引用的dll文件发现adwindows.dll文件引用的2019导致版本冲突,问题不大但还是记录下来,防止再次粗心出错。...原创 2021-11-19 09:13:10 · 133 阅读 · 0 评论 -
Teigha开发读取CAD文字信息出现偏移
今天读取cad文字发现文字出现偏移,反复测试发现不是代码的问题,午休时想起来cad图纸中的文字因为设计师使用插件会出现一定的问题,所以打开cad发现文字坐标点与实际位置差距正好是生成偏差,下面的图片就是cad文字的坐标信息。看了一下cad的text函数,发现也没有能够直接取到位置的函数,但是可以使用方法AlignmentPoint,这种办法可以生成相应的文字但是会出现一定的偏差,因为涉及左对齐与右对齐,可能文字的起始点在字体的右侧~~~~~。发现这个问题后我对翻模的精度有了更深刻的理解,但是由于目前原创 2021-11-16 14:46:33 · 495 阅读 · 0 评论 -
QT Copy Table 复制文档内已有表格
参照:word操作的接口,我前期是对照博主的代码对应api学习的 QT操作Word,插入表格用Qt操作Word文档成果复制图中的表格到文档末尾今天想实现一个需求,复制word模板内的表格,搜索各大引擎大部分是修改表格内部属性或是取值赋值之类的操作,没有整体复制一个表格的需求。在开始之前应该先了解QT 中 QAxObjext 方法中 querySubObject与dynamicCall,通俗点来说前者是调用方法或者调用属性,因为时间太长相关知识我也是囫囵吞枣,理解不太清楚。操作wo原创 2021-10-19 16:45:29 · 950 阅读 · 0 评论 -
QT+ CLion + Revit 问题汇总
因为一直想实现QT+CLion+Revit的开发路径,所以从头开始学习QT与C++,在这里记录一下QT遇到的问题及后续的问题。如果开发周期不足估计会用一两周爆肝出来,随时会断更。目前的思路是C++创建dll,在dll里面编写QT界面,之后用C++ Revit 的API接口实现整个步骤。中间需要用到sqlite3的数据库组件,目前就想到这么多。现在已经实现c++读取sqlite3并完成数据接口。QTCMAKE文件cmake_minimum_required(VERSION 3.20)proje原创 2021-09-14 15:55:10 · 623 阅读 · 1 评论 -
Winform DataGridView 绑定资源后设置行高与布满图片的设置
我通过datasource绑定了datagridview的资源,通过遍历dataTable后台增加行,因为有图片所以需要修改列宽与行高,但是修改属性界面中的几个属性都无法干预这个动作,排查后发现,直接在增加Row的类里面修改即可。下面是code:var dateRow = new DataGridViewRow(); dateRow.Height = 150; dateRow.CreateCells(this.dataGridView1);2. 图.原创 2021-08-31 18:33:07 · 597 阅读 · 0 评论 -
Teigha 4.0 Net 开发记录
因为做Revit的二次开发多一点,拿到Teigha的时候还有点懵,看完样例还是觉得一知半解的,原因还是对于AutoCad的底层逻辑不是很明白,包括视图与布局之间的层级关系,块与视图的关系等等,看代码会有些累。下面通过一个案例说一下昨天一天整理的知识点。teigha本身是ODA下面的Cad分项,有需要的可以去ODA官网下载或是从CSDN的链接下载。刚申请完会有一段时间的试用期,这个时间可以和ODA邮件沟通。Teigha本身沿用AutoCad的逻辑,如果和我一样有Revit或是其他Autodesk家的开原创 2021-08-24 09:38:30 · 5472 阅读 · 3 评论 -
WPF WrapPanel IsMouseOver 控制Visibility控件不停闪烁
搜索问题,发现答案都是如果使控件闪烁的答案,最后去stackflow找答案,如果希望鼠标进入就显示控件,可以使用Opacity属性控制显隐。code:<WrapPanel.Resources> <Style x:Key="WrapPanelStyle" TargetType="WrapPanel">原创 2021-06-16 11:12:34 · 465 阅读 · 0 评论 -
Revit PromptForFamilyInstancePlacementOptions 族放置API
这段时间在做族库,在做到最后需要与Revit连同时,希望可以用户选择下载然后直接在Revit中布置构件,查找API ,发现可以使用PromptForFamilyInstancePlacementOptions方法实现族放置。代码 比较简单,只不过需要记住,由于PromptForFamilyInstancePlacementOptions会自己创建一个事务,所以使用的话需要将此方法挪出事务。code:Family family; using (Transacti原创 2021-06-08 14:12:09 · 667 阅读 · 0 评论 -
Revit二次开发 斜面上旋转基于面构件错误的问题
今天修改了一下之前的功能,测试时发现无法在斜面上旋转基于面的构件,检查了一下午,从面的获取到tranform的转换都核查的一遍发现没有错误,最后发现应该是旋转时AXIS参数的问题,检查AXIS的向量与斜面的FACE.NORMAL一致,垂直于指定面,但是每次旋转都出错,之后将旋转轴设置为(0,0,1)之后就可以正常生成,,,不清楚问题在哪,暂时记录下来,想明白后继续补充...原创 2021-05-09 16:29:27 · 158 阅读 · 0 评论 -
使用C++进行Revit二次开发
由于做族库中,考虑到连接数据库代码可能会被反编译,上个版本中我采用的是WCF的方式与服务器数据交互,文章可在我前几篇找到,但是最近在学习QT相尝试使用QT+C++或是VC++开发,看一下效果,所以简单写了一个c++开发的demo。参考链接:C++ Revit Add-In步骤:需要确保我们的VS上面安装CLI工具,如果按照上面的步骤直接进行的话,是没有类库选项需要我们安装额外的组件。安装点击:工具-获取工具和功能即可安装创建类库,输入名字与.netframwork框架版本即可,版本与RevitA原创 2021-05-09 16:23:59 · 2087 阅读 · 3 评论 -
Revit多版本管理
本文参考:Revit二次开发——如何搭建多版本的框架,方便编程)创建解决方案并在解决方案中创建多个版本的项目创建一个总文件夹负责放多个版本的csproj文件,并将项目解决方案中的文件复制到文件夹中在项目解决方案中移除改项目,重新添加现有项目,项目路径为管理版本文件夹下的.csproj文件此时重新引用,会发现AssemblyInfo.cs是错误状态,参考博客中对这一点未说明,因为是多版本统一管理,所以需要一个同一个配置文件,只需要将任意一个项目的文件复制到版本管理文件夹的地方,并作下图的修改即可原创 2021-04-26 15:49:48 · 642 阅读 · 0 评论 -
Revit Winform显示在Revit上层
引用文章:《BuilderCoder Revit Parent Window 》当我们使用模态窗体时,当焦点不在窗体上时,窗体会隐藏在所有层级后方,如果遇到不熟悉的用户会不停点击按钮,从而生成多个窗体。并且对于单一窗体的交互也不友好。在网站中搜索,经常会告诉大家设置TopMost但是这一操作会把窗体设置为最顶层,当我们使用其他应用程序,如:浏览器。窗体依旧显示在最上层不符合交互逻辑。通过设置IWin32Window将Revit设置为窗体的父窗体,但是我们通过 var rvtPt原创 2021-03-15 15:15:52 · 583 阅读 · 0 评论 -
WCF使用控制台驱动Revit
目前再做族库项目,已经将WPF界面做好但是由于开始的时候是WPF项目,中间的交互操作需要在Revit中实现,想着通过WPF驱动Revit从而实现两个窗口之间的互通。一个办法是通用的,使用外部事件实现,这一条路径比较容易另一个办法是在看jimmy的博客的时候发现有一个案例,通过WCF作为连接驱动两个独立的程序。关于创建WCF程序可以参照官网控制台与Revit均需要管理员权限运行,否则将会报错无法接受终结点的错误我的代码放到GitHub,只修改了关于Revit的部分,如果官方案例无法运行可以对照两个案原创 2021-01-19 16:58:41 · 165 阅读 · 0 评论 -
Mysql 根据父节点查询所有子节点函数
数据量5k+,参照博客中给出的函数,运行一次需要15s,耗时太长,所以最终没有选择在Mysql中进行数据的遍历,而是采用在用户选取父节点时,在类中遍历,总体耗时会小很多,也不会给用户带来尺钝感。平时使用Mysql 的函数不多,所以还是记录下来以后学习使用在Mysql 中函数创建后会提示This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its de的错误信息,参照博客:MySQL 创建函数报错 This funct原创 2021-01-06 19:10:48 · 1050 阅读 · 0 评论 -
WCF 已超过传入消息(65536)的最大消息大小配额。若要增加配额,请使用相应绑定元素上的 MaxReceivedMessageSize 属性。
今天使用WCF从数据库拉取数据时,爆出这个错误,查看Web.config看到里面maxReciveMessageSize已经设置为最大,最后通过在WCF调试器中修改配置文件中的参数,将数修改为最大,重新配置后即可运行成功。参考博客:WCF请求数据:已超过传入消息(65536)的最大消息大小配额。若要增加配额,请使用相应绑定元素上的 MaxReceivedMessageSize 属性。其中vs自带的WCF调试器路径为:“C:\Program Files (x86)\Microsoft Visual Stu原创 2021-01-06 15:45:40 · 1041 阅读 · 0 评论