Revit二次开发——从链接文件中选取指定元素
这里稍微讲一下怎么从链接文件中选取指定元素,这里以选取Space为例。 首先要另写一个Class。 public class SelectionLinkFilter : ISelectionFilter { Document linkDoc...
这里稍微讲一下怎么从链接文件中选取指定元素,这里以选取Space为例。 首先要另写一个Class。 public class SelectionLinkFilter : ISelectionFilter { Document linkDoc...
在做开发的时候,经常会碰到这个问题,你把插件的窗口打开之后,然后运行其他软件,盖住Revit后,然后再打开Revit就会发现窗口不见了,感觉像死机一样。这个时候需要将窗口绑定到主窗口之上,也就是在view.ShowDialog()的时候,要...
链接cad文件的地址没法用Lookup来查找,所以常规方法读取不了这个地址。 这个时候需要用如下方法来读取这个地址: Reference reference = uiDoc.Selection.PickObject(ObjectType.E...

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

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

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

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

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

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

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

一个使用Winform窗体获取用户输入的例子。 新建一个简单窗体: 窗体部分代码: public partial class Form1 : Form { public Form1() { InitializeComponent...
前段时间想到一个点,为了保证项目数据的统一,应当禁止载入未知来源的族,所有可以载入的族应由管理员审核通过存放在企业族库内。那么就需要Revit在族载入前对族进行检查,匹配路径或其他信息。其实严格的来讲还需要禁止编辑族,以及在拒...
做项目的时候有时要通过轴网定位与别人交流,常规操作是点选最近的两根轴网,看轴网的名称。可能我记性太差,一个地方总是要确认几次才放心。现在也有一些插件可以将轴圈显示在工作视图最外侧,但在轴网比较多且密集的时候看起来效果还是比较糟糕的。 ...