
Revit中Dynamo编程——利用反编译工具读取Dynamo的ProtoGeometry.dll的代码
上一篇博客讲了怎么用反编译工具,这篇博客直接可以用在实战方面。 我们知道Dynamo好用,其实原因是它里面封装了好多方法,免去我们重复的操作。而RevitAPI又没有那么多方法怎么办?这个时候完全可以借鉴一下Dynamo的ProtoGeom...

Revit二次开发——怎样在类中直接应用WPF窗口
WPF是winform的升级版,在做Revit二次开发,用WPF界面来做会好看且方便快捷好多。那么怎么在Revit二次开发中用到WPF呢?这个也很简单。 在类中,没办法直接添加WPF窗口,只能方便快捷的添加Winform窗口,所以winfo...

Revit二次开发winform简单的标准模板以及wpf简单的标准模板
《Revit二次开发官方教程》里的代码适合练手以及功能测试,但是在实际开发中,这种代码肯定不符合开发公司的标准。 这里可以使用这个简单的标准模板,这个标准模板的主要参考revit的SDK的Samples案例以及我自己在公司开发的实践来写的。...
Revit二次开发——从链接文件中选取指定元素
这里稍微讲一下怎么从链接文件中选取指定元素,这里以选取Space为例。 首先要另写一个Class。 public class SelectionLinkFilter : ISelectionFilter { Document linkDoc...
Revit二次开发——让窗口一直显示在Revit前面
在做开发的时候,经常会碰到这个问题,你把插件的窗口打开之后,然后运行其他软件,盖住Revit后,然后再打开Revit就会发现窗口不见了,感觉像死机一样。这个时候需要将窗口绑定到主窗口之上,也就是在view.ShowDialog()的时候,要...
Revit二次开发——读取链接cad文件的地址
链接cad文件的地址没法用Lookup来查找,所以常规方法读取不了这个地址。 这个时候需要用如下方法来读取这个地址: Reference reference = uiDoc.Selection.PickObject(ObjectType.E...

Revit二次开发——怎样建变直径螺旋箍筋
变截面螺旋箍筋是一条空间曲线,在Revit当中,空间曲线可以通过CurveByPoints来建立空间可见的螺旋曲线,也可以通过HermiteSpline在后台来建立空间曲线。 其实通过LookUp,就可以看到,其实CurveByPoints...

Revit二次开发——关联族参数
在建族的时候,有个关联族参数的操作。应用场景比如:给族里的元素关联材质,关联长度等。 string paramName = "材质"; FamilyParameter familyParameter = familyDoc.FamilyMa...
Revit二次开发——利用Dispatcher类添加进度条
当程序运行时间很长,然后避免程序假死,比较好的办法是增加一个进度条,如果当前只有你的这一个功能在跑,用Dispatcher类是一个简单的好选择。 这里用wpf的窗口来实现。 public partial class ProgressBarV...
Revit二次开发——非模态窗口
非模态窗口有一个好处,就是可以一直停留在程序之前,然后持续完成操作。但是在Revit二次开发中,非模态窗口也有几个注意事项。 1、需要在文档关闭的时候,把非模态窗口也关闭掉,不然会导致文档关闭,窗口还在这样奇怪的Bug。 2、非模态的窗口的...
Revit二次开发——加快过滤速度,以及对ElementIntersectsSolidFilter的API的Bug的处理办法
在Revit的API中有快过滤器和慢过滤器,其中慢过滤器和快过滤器合用会加快过滤器的速度。 首先来看一个例子,以下是一个用了ElementIntersectsSolidFilter 慢过滤器的例子,如果元素多达几千个,下面最后一行代码起码耗...

Revit二次开发——字体的问题
在Revit二次开发中设置文字字体还是一件比较容易的事情,因为有现成的API. 首先需要获取系统文字名称,这里用最简单的方式,百度一下: https://zhidao.baidu.com/question/69549353.html 获取好...

Revit二次开发——如何搭建多版本的框架,方便编程
Revit基本两年一大变。所以在做开发的时候需要做多个版本的才行。但是每个版本做一个项目又很不方便,因为很多代码类似,改了前面忘了后面的版本,所以很头疼,最好能够几个版本共用一个类,不同版本通过预编译来解决。这里只说怎么解决多...
Revit二次开发_在Revit启动后创建Tab
在Revit中,一般插件的UI是通过IExternalApplication接口的OnStartup函数的UIControlledApplication类型在Revit启动时进行创建的。 在查看SDK的时候发现UIApplication类型...
Revit二次开发_快速显示隐藏剖面框
难得不用加班,闲下来写两行代码。 最近遇到一种状况需要经常切换剖面框的可见性,于是想将剖面框的显示与隐藏做成一个按钮,方便切换。 其他类似元素想做成快速切换可见性应该可以使用类似做法。 这次的隐藏对象是剖面框,所以我直接就隐藏元素了。 以下...

Dynamo_导入图纸信息
=======================修正========================= =======================原文========================= 想用Excel先把图纸信息编辑好,然...

Dynamo_导入图纸信息_修正1(临时图纸编号)
上一会用Dynamo做了一个在Revit中导入图纸信息的功能,后面在项目中使用的时候发现一个比较严重的问题,就是如果我在Excel中的图纸编号与Revit中已有的图纸编号冲突的时候,会导致修改失败,于是做了一点小改动。 逻辑上就是先将要修改...
批处理_文件名操作
使用Revit批量导出CAD或PDF的时候文件名总会带一些前缀,用批处理写了一个小脚本去对文件名进行操作,可以实现批量去除前缀,添加前缀,字符串替换。 以下核心代码: rem 添加前缀 :cmdAddPrefix echo 要处理的文件类型...

Dynamo_随机获取填充样式
最近使用Dynamo的时候碰到一个问题,我需要随机取一些填充样式用于样式替换,于是我使用了自带的All Elements of Type获取项目中的填充样式,但这样获取的填充样式有一个问题就是绘图填充样式与模型填充样式都被包含在里面,而我只...
Revit二次开发_获取视图样式替换
目的是用于导出视图样板中的图形替换,但Revit中视图样板其实也属于视图,所以对于所有视图都通用。 方法十分简单,视图中的样式替换都可以通过OverrideGraphicSettings读取,要注意的地方是需要...

BIM建筑网









