- 博客(66)
- 资源 (1)
- 收藏
- 关注
转载 一个基于Revit的MCP服务框架
revit-mcp 是一个基于 Revit 软件的 mcp 协议实现框架。允许通过兼容mcp协议的AI对话客户端驱动Revit。:功能集是实际可执行的具体命令,基于revit外部事件进行包装。开发者可以通过在命令集中增加功能,或者定制个人的工作集。:与对话AI对话客户端连接部分。负责向ai对话客户端提供可执行功能和与revit通讯。:这是一个revit插件,用于接收ai的命令、装载命令集、执行具体功能。联系我们,期待与你共同建设项目。
2025-04-08 04:18:25
149
原创 Revit二次开发-创建并切换到新文档
方法用于创建新项目,但这个方法仅在内存中对项目进行创建,Revit的界面并不会将这个项目显示出来。方法,该方法可以打开一个相关视图,以显示输入的元素。利用该方法,传入文档中被显示在某个视图中的一个元素,就可以将该文档切换成活动文档。方法时,如果传入的元素的相关视图都没有被打开,则会弹出一个警告框,需要用户手动确认是否遍历全部视图。如果不想显示该警告框,则需要通过。也就是说,目前在API提供的方法中,需要重新打开文档才能激活成活动文档。下面的代码片段实现了在Revit中创建一个新项目,并直接切换成活动文档。
2023-04-17 03:01:28
926
原创 解决Autodesk License Patcher (NLM Crack)重命名电脑名的问题
解决安装Autodesk 2021~2023 NLM Crack 脚本导致的电脑命名被锁的问题
2022-08-14 11:10:54
3372
原创 Dynamo_修复导出EXCEL时出现的组件丢失问题
Dynamo读取Excel时出现类似”Data.ImportExcel Microsoft.Office.Interop.Excel….“这样的警告
2022-08-04 04:25:18
687
3
原创 Python_修正Unity离线手册打开缓慢的问题
unity的离线手册是静态的html,因为某些原因打开的时候会很慢很慢最直接的解决方法是断网,当然了,断网使用体验太差了,也可以通过改环境的方法解决,例如小飞机或者改host等等,如果不想改环境,可以把所有html文件里的关键文本改掉,下面代码通过Python代码删掉html中的:cdn.cookielaw.org/scripttemplates/otSDKStub.jswww.googletagmanager.comfonts.googleapis.com代码#!/usr/bin/env
2022-05-27 13:58:35
484
1
原创 Revit二次开发_快速切换快捷键的插件
以前在办公室总要去同事电脑排查问题,或者有时要用公用电脑进行Revit演示,但不同使用者的快捷键方案不一样 而Revit的快捷键管理只能通过手动导入导出的方式进行快捷键的批量替换 通过这个扩展工具,Revit可以保存多套快捷键方案,并可以很方便地进行切换使用方法:将RevitShortcutExpansion.addin和RevitShortcutExpansion.dll放到C:\ProgramData\Autodesk\Revit\Addins\\<你的Revit版本号>\里,
2022-05-23 15:35:30
480
原创 Revit二次开发_修改快捷键
目录示例代码Revit 2019命令ID快捷键设置规则保留的快捷键Revit官方的似乎并没有提供修改快捷键的api,感谢@魏无忌的这篇博文——Revit开发之快捷键相关类_魏无忌的博客-优快云博客,在对应的dll里找到一些可用的方法。通过UIFramework.ShortcutsHelper类,以及UIFrameworkServices.ShortcutItem类,可以用代码对功能进行快捷键的指定与删除示例代码//获得 选择链接 命令的ShortcutItem对象S
2022-05-15 22:07:38
2765
原创 映射网络盘的批处理写法
需求公司更新了服务器共享盘,需要几十个同时映射新的网络盘,这个时候想到直接用批处理来完成这个工作,一方面可以统一盘符,另一方面新同事来了以后不需要过多的交代原理映射网络盘的批处理命令如下net use [盘符] [路径]例:将路径\\NASimfour\Public映射到h盘net use h: \\NASimfour\Public解决方案公司新的网络路径有三个,分别要映射到三个盘符,新建文本文档写入以下命令@echo offnet use P: \\XXXXXX
2021-06-25 02:23:14
4322
3
原创 Revit二次开发_关于TransactionMode标签
好久没写东西了,随便写点什么以前刚学Revit二次开发的时候并不是很理解为什么每个外部命令都要设置TransationMode,后面碰碰撞撞写了一些功能有了概念后才慢慢理解。using Autodesk.Revit.Attributes;using Autodesk.Revit.DB;using Autodesk.Revit.UI;namespace MyTest{ [Transaction(TransactionMode.Manual)] class Class1 :
2020-11-08 16:03:53
814
原创 Excel_项目节点对比图表
需求:在一个时间段内进行多个项目节点周期的对比,要求图表联动。表首行为固定的计划节点,首列为多个项目,次列为项目开始时间,表中数据为各个节点的完成日期。图横轴为日期;竖轴为时间;横向柱状堆积图;堆积图的每个颜色段表达每个节点周期,体现与总周期(柱总长度)的占比。演示核心思路堆积柱状图可以将多个数据堆积到一条柱中。先利用辅助表计算节点周期,与开始时间组合堆积到图中,然后将开始日期的色段设置为透明,即可只在图中表达节点周期,获得该图。制作步骤1. 原表格式..
2020-09-29 03:31:37
3519
原创 Revit二次开发_对参数进行文本替换、加前缀、加后缀
我一般都用Dynamo做简单的参数批量修改,但也不能要求项目上每个人都会用Dynamo,这需求偶尔又会有,于是写成插件。想慢慢写成一个通用一点的参数管理工具,批量写入或者修改什么的,看精力了。目前功能还是针对特定参数进行文本替换、加前缀、加后缀。代码: class ModifyValue : IExternalCommand { public Result Execute(ExternalCommandData commandData, ref strin
2020-06-07 01:46:11
1065
原创 Dynamo_对图纸中的参数进行文本替换
Revit自带的文字替换功能只适用于注释文字,项目有时要对图纸编号和图名进行替换,Dynamo可以很快速地完成这个工作。环境Revit 2019 (19.0.0.405)Dynamo 2.0.3.8811逻辑思路Revit中图纸名称或图纸编号都是图纸的内置实例参数,首先使用Dynamo读取所有图纸,获取上述参数,通过字符编辑节点完成替换工作,然后将修改后的字符覆盖到上述对应的参数中。节点1.获得所有图纸2.获得图纸中的图纸名称参数3.通过String...
2020-06-07 00:54:34
1580
原创 Revit二次开发_打开与关闭插件功能页(Tab)的可见性
偶尔会写一些关于Revit的教程,为了避免产生疑惑,截图的时候一般展示原始的Revit界面。不想看到插件的功能页的话可以把插件的注册文件移走,避免插件加载,但这个方法相对来说还是有点繁琐,所以直接用API在Revit里进行tab页的显示与隐藏。要对tab进行管理的话,需要引用AdWindows.dll库,这个库可以在Revit程序的根目录找到。下面这段代码通过判断keyTip来区分原始Tab与插件Tab,然后切换插件Tab的可见性。代码:Autodesk.Windows.RibbonC
2020-06-06 20:06:06
1305
4
原创 Revit二次开发_为天花板平面设置工作平面
发现Revit创建的天花板平面默认是没有工作平面的,使用例如Selection.PickPoint()这类需要工作平面的方法会报错,需要设置一下工作平面。代码实现起来也很简单,读取天花板平面的标高,用标高生成一个SketchPlane,再将这个SketchPlane设置到视图中就可以了。代码:activeView.SketchPlane = SketchPlane.Create(doc, activeView.GenLevel.Id);一点强迫症,跑完命令后我希望把视图恢复到本
2020-06-06 18:06:53
2144
2
原创 阿里云Docker部署WikiJs
想试用一下其他的wiki引擎环境轻量应用服务器 单核,1GBcentos7.3镜像部署过程Docker安装设置Docker的镜像仓库yum install -y yum-utilsyum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo安装Dockeryum install docker-ce docker-ce-cli container
2020-05-29 17:48:53
1408
2
原创 Revit二次开发_对段落进行整体缩放
还是要多休息,用了甲方提供的项目样板,里面预设的设计说明图幅和项目对不上,调比例,导入CAD都碰到了不同的问题,于是直接上代码下面代码可以框选注释文字,进行整体缩放,没有考虑文字类型的重命名,使用的时候要注意将文字先复制到一个空项目,缩放后改类型名称粘回去 [Transaction(TransactionMode.Manual)] public cla...
2020-04-16 19:45:13
552
翻译 Typora中的Markdown语法
Typora中的Markdown语法Typora自带了其语法的英文版帮助文档,试着翻译成了中文,顺便也可以练一下Typora的使用。概述Markdown 的原始指引发布在Daring Fireball博客1,你可点击这里查看。在不同的解析器或编辑器中,使用的Markdown语法并不完全相同。Typora使用GitHub Flavored Markdown2作为其语法标准。文章目录Typor...
2020-03-18 00:51:38
930
原创 Dynamo_引用RevitAPI的常规模板
在Dynamo中引用RevitAPI的常规模板import clrclr.AddReference('ProtoGeometry')from Autodesk.DesignScript.Geometry import *clr.AddReference('RevitAPI')clr.AddReference('RevitAPIUI')import Autodeskfrom Au...
2020-03-17 19:39:51
752
原创 Dynamo_参数化造型3
之前看见过一些设计是利用格栅天花的多个缝隙填充成一个品牌LOGO的,忽然有一个想法想用图片生成这种格栅内的造型,然而功力不够,按照思路做出来的东西和想象的相差还是有点大,这里还是把这次的失败记录下来。演示思路开始思路是将图片读取进Dynamo,通过Dynamo获取图片的明度信息(使用的图片LOGO为白色,背景为黑色),结合图片的尺寸,在有明度的位置创建一系列...
2019-11-22 02:51:52
1361
原创 Excel_使用条件格式制作甘特图
之前想用Excel做一个可以反映项目进度计划的自动甘特图,网上查了一些教程,但都只能反映计划,不能反映项目进度情况。然后发现Excel的联机模板里面就有一个比较好的甘特图模板,于是参考其原理仿做了一个简单的Excel甘特图。原资料分析参考的Excel联机模板这个甘特图模板有几个特点:可以反映出计划周期与实际周期的关系 日期高亮 百分比换算表示实...
2019-10-19 21:59:02
8260
3
原创 Dynamo_参数化造型2
看到一个商场的造型柱子,觉得有点意思,便尝试使用Dynamo进行了参数化建模参数化演示创建思路如下1、创建两个圆圈,用作控制柱体的高度及半径2、在上下两个圆圈上分割出若干个点,将这些点相连则获得基础的组成柱体的装饰木条路径,木条的数量可以由过木条的宽度及柱子的周长计算获得3、按相隔1条的原则,过滤出需表现造型的木条路径4、使用两个...
2019-10-11 03:17:57
2219
原创 Epplus获取数据区域的第一行或最后一行
使用Epplus编辑表格文件时,有时需要知道表格中数据的第一行或最后一行,以便追加数据。此时可通过下列方法获取: //获得有数据的区域 var lastAddress = worksheet.Dimension.Address; //获得有数据的区域最上且最左的单元格 ...
2019-09-24 01:23:24
5451
4
原创 Dynamo_参数化造型1
使用Dynamo制作的参数化造型墙,可以通过调整曲线,控制弯曲位置,通过调整数据,控制造型的数量及弯曲程度。Dynamo节点:以下为解析:整个逻辑其实比较简单,用到节点也不多。首先需要在Revit里面创建3根线,我们通过这3根线来控制整个造型。使用Dynamo选择这三根线,获取其curver将上下两根直线按数量均分...
2019-09-15 01:43:27
1510
原创 Dynamo_在Revit参数间复制数据
在Revit中有时需要将一个参数的数据复制到另外一个参数中,这时可以使用Dynamo快速批量地完成这个工作。下面讲述如何使用Dynamo实现类型参数与实例参数之间的数据复制,类型参数间或者实例参数间的参数数据复制相对更加简单,参考相同逻辑即可。我使用自带的案例作为例子,自带案例【rac_basic_sample_project】中树的类型中有一个说明的参数,我要将这个参数数据复...
2019-09-11 23:48:24
1825
原创 Revit二次开发_轴网快速标注
通过Revit二次开发实现对平行轴网的快速标注。交互操作是框选轴网->点选尺寸标注出现的位置->生成两道尺寸标注。要达到设想的结果一些地方需要特殊考虑:框选操作容易误选轴网,起码要把与所选轴网不平行的轴网过滤出来。选用了第二步操作所选点的最近轴网作为轴网平行的参考基准。遍历所有框选的轴网,如果轴网与基准轴网的向量相同或相反,则判定为平行轴网; 外侧的尺寸标注需...
2019-06-29 01:00:46
2842
原创 Revit二次开发_重复执行命令直至使用Esc结束
Revit有部分创建元素的命令有一个特点,就是创建命令执行完后会重新调用这个命令,除非使用Esc或者右键取消这个命令。例如创建门,常规交互是这样的:点击门按钮->进入选择状态->选择一面墙->门族被创建->重新进入选择状态。如果编写的插件也想实现类似的交互效果,其实也很简单,只需要把命令写到一个方法内部,方法最后重新调用本身即可。要注意的是当在选择状态取消命令时会出现O...
2019-06-22 00:57:10
3221
2
原创 Python_定时自动发送邮件
虽然主流邮箱都可以定时发送邮件,但还是尝试用python写了一个定时发送邮件的脚本,设定好一个发送时间后,可以按下面步骤将文件通过QQ邮箱发送出去。文件的最后修改及最后访问时间随机调整为发邮件前20~25分钟; 文件超过10M或是一个文件夹时,则自动生成zip压缩包; 通过邮箱自动发送。有几个点需要特别注意一下:修改文件的时间属性需要用到win32API的SetFileTime,所以...
2019-06-17 03:01:39
3606
原创 Revit二次开发_调用Revit的图元创建界面创建图元
RevitAPI中有许多特定图元的创建方法,例如Wall.Create,Document.NewFamilyInstance等等,调用这些方法后会在文档中直接创建出对应的图元,但有时候希望使用Revit的创建界面进行图元的创建:先点击图元创建按钮->选择类型或调整参数->鼠标移到工作界面中预览创建图元->鼠标点击生成。这时可以使用UIDocument.PostRequestFor...
2019-04-13 03:00:10
1176
原创 Revit二次开发_项目文件分离
赶项目节点的时候觉得导图纸、分离模型这种工作实在是太难受了,图纸量大的时候即麻烦又容易出错,于是通过二次开发的方法直接将导CAD、PDF、分离模型的工作整合成批量导出,并且自动放到对应的路径。写到分离模型的时候发现了一些API里面不太友好的地方,首先是项目不能直接由当前文档分离,需要先把当前文档关掉,通过打开的方式分离;但是API又不支持直接关掉当前文档,而且又没有给出直接切换文档的方法…最后解决...
2019-03-05 20:55:26
2138
1
原创 Revit二次开发_末端点位修改检查
这段时间一直在忙项目,加上过年休息了一段时间,重新接触代码的时候竟感到有点陌生,思绪也有点乱,看来状态还是要慢慢调整回来呀。因为软件及协同方式的原因,Revit相对Cad来说会更容易出现误删除元素的情况,这段时间做项目的时候出现了两次电气末端点位误删除或误修改的情况,所以想通过二次开发来对这些点位进行检查,降低项目的审核成本。思路其实很简单,首先在第一次点位确定后,读取点位的ID与位置信息...
2019-02-17 18:57:13
845
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人