记一BIM出图插件和谐过程(大神略过)

查看 152|回复 10
作者:bimlgq   
最近要从revit导出大量图纸,并做简单标注,网上找到一款小巧插件。
使用工具:
de4dot
dnSpyx64安装完发现没有桌面快捷方式,打开revit后使用功能发现直接弹出登录对话框:



01.png (321.62 KB, 下载次数: 0)
下载附件
01
2022-3-13 00:35 上传

此时到C:\ProgramData\Autodesk\Revit\Addins\20xx查看Revit启动时加载的dll(xxx.addin文件),如下:


02.png (25.21 KB, 下载次数: 0)
下载附件
02
2022-3-13 00:36 上传


记录ZH.Plugin.Draw.dll及FullClassName,后在插件安装目录找到DLL,使用dnSpyx64神器打开dll。发现方法名全部混淆,使用de4dot大法去混淆。


03.png (285.25 KB, 下载次数: 0)
下载附件
03
2022-3-13 00:36 上传


Revit二次开发时定义按钮事件如下:
RibbonPanel Changyong = application.CreateRibbonPanel("插件名称", "一级菜单");
PushButtonData shensuoData = new PushButtonData("shensuo","功能名称",dll_path,"方法函数");
PushButton shensuoButton = Changyong.AddItem(shensuoData) as PushButton;
因此我们只需分析PushButtonData,后找到绑定的方法函数。以管道标注为例,进入(该插件对方法进行了封装)



04.png (18.84 KB, 下载次数: 0)
下载附件
04
2022-3-13 00:36 上传

比较明了,PipeLineTaging应该就是方法名称,点进去:后发现到新dll,去混淆,后进入,找到同名称方法,如下图:



05.png (56.94 KB, 下载次数: 0)
下载附件
05
2022-3-13 00:36 上传




06.png (29.18 KB, 下载次数: 0)
下载附件
06
2022-3-13 00:36 上传

话不多说,直接让if不执行,直接到else,修改如下:



07.png (27.88 KB, 下载次数: 0)
下载附件
07
2022-3-13 00:36 上传

保存测试。



08.png (165.68 KB, 下载次数: 0)
下载附件
08
2022-3-13 00:36 上传

发现已经秒杀,测试其他功能,已经可以使用了。
总结:revit插件主要还是要找到定义按钮时绑定的方法,而定义按钮时要吗数据全在dll里,要吗将数据写在xml里读取循环定义。

下载次数, 下载附件

bimlgq
OP
  


满不懂 发表于 2022-3-13 10:01
可能是建模助手。

年轻人,这眼力非常强
林山大王   

大佬牛逼
穿越水线   

牛啊,这操作
laowan1978   

牛啊,这操作,太厉害了
zhangyangblue   

这操作,牛啊
lzspain   

还有搞工程的大佬?
mokson   

遗憾的是,没有成品。
bimlgq
OP
  


lzspain 发表于 2022-3-13 07:57
还有搞工程的大佬?

得搞工程啊
bimlgq
OP
  


mokson 发表于 2022-3-13 08:11
遗憾的是,没有成品。

不能发成品,这个思路基本能解决大多数插件
您需要登录后才可以回帖 登录 | 立即注册

返回顶部