![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
开发技巧
叶雄进-橄榄山
中国Revit二次开发技术推动者和l领军者
展开
-
Revit 内部比较数据的公差: 1e-9
在二次开放时,常常需要比较两个数是否一样大。比如给定一个梁,查看是在那个楼层上. 就要比较楼层的标高和梁的Z坐标。如果Z坐标与一个楼层的Elevation属性相差小于或等于1e-9, Revit认为梁就在这个楼层上。原创 2011-02-11 15:51:00 · 3558 阅读 · 0 评论 -
如何用API从风管类型获取风管类型的截面形状
刚刚在我们ADN的全球博客里发布了一篇这篇文章。在这里给出同一个链接。现在Revit没有开放直接可用的API从DuctType来获取管道类型的形状。本文给出了一个替代解决办法来获取。思路是这样的: 从风管类型获取与风管类型关联的弯头族类型,然后打开这个弯头族,在从打开的族文档中获取连接件DuctConnector的截面形状。这个事可以工作的。但是效率不是很高,因为需要打开族的文档(EditFami原创 2013-03-14 17:11:49 · 2898 阅读 · 0 评论 -
通过编程的方式根据一组封闭的线绘制相同形状的箍筋
很多的时候我们希望给Revit的构件配筋, 通过编程的方式可以将你用手工绘制的模型线转化成箍筋。非常方便直观。我们调用Rebar.CreateFromCurves() 函数来创建箍筋。函数定义如下:public static Rebar CreateFromCurves( Document doc, RebarStyle style, RebarBarType barType, RebarHook原创 2013-05-20 14:32:02 · 4471 阅读 · 1 评论 -
欧特克开发者训练营(Autodesk DevCamp 2013)的视频教程可以下载
Autodesk 2013 DevCamp China 2013年6月19-21日在京举行。该活动详情请看 http://blog.csdn.net/joexiongjin/article/details/9170205在该活动中的所有课程全部录制下来,可以到Autodesk AU China上去下载,下载列表如下。演讲人员来自Autodesk上海研究院的2为资深研发人员(刘培君,夏晓飞)和我本人原创 2013-08-21 16:35:52 · 5141 阅读 · 9 评论 -
Revit编程修改板的边界(含完整源代码)
我在ADN AEC英文博客中发表了一篇文章用于修改板的边界。Revit没有直接提供API来修改板的边界。发现了这个解决方案,先写了英文版的。这里就不翻译,直接贴过来。原帖地址:http://adndevblog.typepad.com/aec/2013/10/change-the-boundary-of-floorsslabs.htmlChange the boundary of floors/s原创 2013-10-10 18:18:42 · 8143 阅读 · 4 评论 -
用Revit API 如何获取工作集的名称
问题:我得到的一个参数名称是:工作集,但是我获取它的值是Integer类型(438)。但是属性对话框中显示的是“建筑内墙”。这个438表示什么呢?怎样得到“建筑内墙”这个字符串呢?谢谢!答:最简单的办法是你从这个参数里的AsValueString() 函数可以直接获得工作集的名称, Parameter.AsValueString()为了大家对WorkSet有一个更好的理解,下面我用完整代码来演示如原创 2014-01-02 16:27:36 · 3996 阅读 · 0 评论 -
如何编程隐藏Revit 中的组Group?
我在ADNDevBlog中写了一篇英文博客, 由于比较语言简单,直接在这里黏贴出来分享给大家。我们无法直接用HideElements() 函数来隐藏一个组Group对象。但是可以分别隐藏组中的对象,达到对这个组进行隐藏的目的。Through Revit UI command, we can hide group by picking it and click the hide command li原创 2014-01-06 12:44:56 · 5074 阅读 · 3 评论 -
蛇年最后一篇以及新春之礼:高效开发视频讲座下载
又是一年要过去,在这里不禁感概时间飞逝,不知不觉中近40岁了,好想酸一把。在潜意识中觉得好像自己还是30岁,处于一生中最黄金的阶段。 担心时间飞逝,黄金时间过去就再也不复返,无可追寻。从我的孩子出生,我开始这个博客,现在孩子也快3岁了,能说会道,能耍赖,也能辩解;好撒娇,亦很体贴人。让我禁不住想起她我就开心。 今天我看到我的一个好朋友的QQ相册里面都是他的孩子各种获奖的奖状和奖牌照片,父亲常以孩子原创 2014-01-28 19:42:29 · 2905 阅读 · 2 评论 -
捕获参数修改事件从而修改Revit其它模型
我们收到中南市政院(Central & Southern China Municipal)的张辛平的原创 2014-04-25 15:19:23 · 3240 阅读 · 0 评论 -
如何编程在Revit里创建长度小于0.8mm的线
Revit不知为何出有一个奇怪的规矩,那就是无法绘制长度小于 0.8mm的长度的线. (0.8mm等于 32分之一英寸). 导致很多小的短线无法绘制.在轻钢薄壁构件里,其厚度有的只有0.5, 有的是0.7, 均无法绘制. 这给Revit的工作带来一些局限性.这里有一个用编程的办法来绕弯路创建小于0.8mm, 其用法确实有点难以想到.首先我们创建一个长度放大100倍的长线. 然后给这个线添加尺寸约束原创 2014-12-18 13:50:27 · 10124 阅读 · 0 评论 -
4月1-5号在武汉举行第五届全国Revit开发中高级实战训练营
各建筑设计、施工、咨询、业主、高校等单位: BIM在工程建设行业的应用越来越广泛和深入,在教育、设计、施工、咨询等方面迅速发展,Revit二次开发人才炽手可热。在BIM快速发展之际,拥有Revit软件开发技能和培训证书,对于找到高端BIM工作非常有帮助。部分大型企业随着应用的深入,广大BIM用户对于Revit功能的需求呈现出多样化,Revit软件现有功能不能满足多样化的需要。比如有些用户希望将Re原创 2017-02-10 22:04:26 · 2166 阅读 · 1 评论 -
第七届全国Revit开发实战训练课程2018年元旦在武汉举行,叶雄进领衔主讲
各相关单位:为贯彻落实《国家中长期教育改革和发展规划纲要(2010-2020年)》,提升国内建筑行业从业者BIM技能应用水平,改善企业BIM应用型人才紧缺的现状,提高全国工程建设行业相关单位对Revit二次开发的作用的认知,促进BIM工作流更加顺畅以及研发出符合本单位全面需要的BIM软件,北京绿色建筑产业联盟联合北京橄榄山软件有限公司共同举办全国Revit研发实战训练课程。现将有关事项通知如下:一原创 2017-11-18 22:27:33 · 2212 阅读 · 0 评论 -
转:C# 文件与二进制互转数据库写入读出
转载一篇文章:作者: fariyeye, 踱步在Code的尽头C# 文件与二进制互转数据库写入读出 我们经常需要经文件存放到数据库中,可以用下现成的代码。 //这个方法是浏览文件对象 private void button1_Click(object sender, EventArgs e) { /转载 2012-11-14 18:40:11 · 2350 阅读 · 0 评论 -
Revit启动后,如何把你的命令显示在Revit的Ribbon(工具栏)上?
在开发的过程中,大家经常用AddinManager来运行你的外部命令,这样的好处是程序的修改,运行,调试速度可以很快。我就此也写过一篇文章。当你开发结束后,希望你的客户直接在Revit启动后就可以点击工具栏中的你的命令按钮,直观地使用你开发的命令。这个过程需要一些环节来实现:大体两种解决方案:简单的解决方案高级的解决方案一. 简单方案:原创 2012-11-14 15:34:48 · 18840 阅读 · 6 评论 -
编程隐藏对象
Revit提供了三种方法来隐藏对象,1按照类别2按照对象3按过滤器对应的对于前两种有API来做相同的工作1. 按类别: publicvoid Document.setVisibility(Categorycategory,boolvisible)2. 按照对象:把需要隐藏的对象放在集合参数中即可 publicvoidHide(ElementSetelemSet)下面是Hide的使用样例,用VSTA创建。Visual Studio 稍加修改即可,方法不变。 public void Hide原创 2011-02-11 15:59:00 · 3060 阅读 · 2 评论 -
编程修改楼层名,但是不修改相应的视图名
用API编程来修改楼层名称,有两种方式。 1. 通过修改Level.Name 的属性值修改楼层名2. 通过修改Level 的Name参数值来修改楼层名称。 当时这两个方法有一些不同。方法1: 修改完楼层名称后,其对应的所有视图(平面视图,天花板视图)都自动修改名称,保持与楼层名一致。方法2: 改完楼层名称后,弹出一个对话框,询问是否要修改其对应的所有视图的名称? 用户可以自己选择原创 2011-03-03 17:28:00 · 3793 阅读 · 0 评论 -
根据共享参数来过滤满足条件的对象(代码)
<br /> <br />我们经常会添加自己的参数到对象中,一个参数可以添加到多个类别的对象。2011提供的过滤功能可以用参数的值来进行过滤。<br />下面代码可以对自定义参数按照参数值进行过滤。<br /> <br /> <br /> <br />using System;using System.Collections.Generic;using System.Text;//using System.Windows.Forms;using Autodesk.Revit .DB;原创 2011-05-13 16:45:00 · 2056 阅读 · 0 评论 -
如何得到在指定视图下沿折线或曲线的展开剖面
用Revit产品的生成剖面功能,我们可以指定一个直线的剖切位置。然后选在这个剖先,在上下文菜单中,使用"Split Segment" 命令可以把剖切线分成多段(每段是平行的)来生成平行折线剖面。但是如果想生成剖切线不是平行的折线剖面,Revit还未没有提供这个功能。替代办法是原创 2011-09-20 01:54:24 · 8957 阅读 · 2 评论 -
如何编程创建线的样式(LineStyle)
从函数看,Revit没有直接提供方法来创建线的样式。LineStyle也没有提供Duplicate方法来复制新的样式。 我们可以通过创建一个新的线的子类别来创建一个新的线型。请看下面的代码。 [TransactionAttribute(Autodesk.Revit.Att原创 2011-10-19 11:09:31 · 3316 阅读 · 0 评论 -
64 位操作系统下, Revit 如何修改代码后再次快速调试新代码
Visual Studio (简称VS)提供了暂时中断调试,然后修改代码,接着更新代码就可以实现继续调试运行的功能。但是这个再调试过程中暂时中断修改代码的功能在64位操作系统下无法实现。 这个问题导致64-位上对Revit的二次开发程序的代码修改变的比较麻烦。特别是程序开发过程中,需要反复,就显得更痛苦。这里我介绍一个办法,能大大减少痛苦,大幅提高工作效率。 :) 通常思路是先退出调试原创 2012-01-12 18:20:28 · 6082 阅读 · 7 评论 -
如果某一个对象没有提供创建函数,或创建函数无法达到期望的效果,如果创建新的这个类型的对象?
转载请复制以下信息: 原文链接: http://blog.csdn.net/joexiongjin/article/details/7399889作者: 叶雄进 出处: 我爱Revit-应用与二次开发专栏2012.3.27 Revit 已经提供了许多函数来创建新可以保存在文档中的元素,在Autodesk.Revit.Creation.Document 这个类的原创 2012-03-27 17:55:26 · 2389 阅读 · 1 评论 -
如果获取条形基础的基线?
转载请复制以下信息: 原文链接: http://blog.csdn.net/joexiongjin/article/details/7399989作者: 叶雄进 2012.3.27 一般情况下Revit条状对象的基线可以通过Location属性来获得,会返回一个LocationCurve的对象。然后从LocationCurve.Curve 得到基线的信息。 但是对于Rev原创 2012-03-27 18:19:07 · 4910 阅读 · 2 评论 -
编程获取墙的原始几何尺寸
转载请复制以下信息: 原文链接: http://blog.csdn.net/joexiongjin/article/details/7474247作者: 叶雄进 2012.4.18 在Revit里面,构件之间会有互相相交的关系,彼此会相切。也可以用Revit的命令功能(Join Geometry或Unjoin Geometry)来实现构件几何相切或解除相切。这样原创 2012-04-18 17:21:17 · 5583 阅读 · 5 评论 -
武汉BIM & CAD 二次开发大会
转载请复制以下信息:原文链接: http://blog.csdn.net/joexiongjin/article/details/7472836作者: 叶雄进 2012.4.18 这里向大家报告一下刚结束的这次会议的一些情况:主办单位:武汉土木建筑学会计算机专业委员会协办单位:欧特克在汉派出机构及产品代理、国内主流CAD二次开发产品提供商等。参会单位:武汉大型原创 2012-04-18 11:56:51 · 11251 阅读 · 10 评论 -
如何获取墙,圆形 管道或圆心风管的中心线的引用Reference
先说说引用Reference的一点常识和作用:Revit大量使用引用(Reference)指向一个对象,来指向对象之间的关系,这是Revit能智能更新模型的关键技术。比如对于一个尺寸标注对象Dimension,它保留了对所指向的那些面或对象的引用Reference,当这些Reference指向的对象发生修改时,尺寸标注随着更新。 Revit里面的Element,Face,Edge,端点具有原创 2012-10-31 17:33:14 · 6098 阅读 · 1 评论 -
Visual Studio 2013 或VS2015 无法调试Revit插件代码的解决办法
有些开发者在用VS2013 或VS2015调试插件代码时,发现无法跟踪调试。 但是在VS2010,VS2012下没有问题。一个可能的原因是Revit加载的其它插件的一个兼容性的问题。 VS2013由于引进了新的一些调试功能,导致对旧的一些调试模式不支持了。严格的是说是VS新版带来的问题,微软在以后的更新版本中计划要修正这个问题。比如安装橄榄山快模后,会出现无法调试的问题;国内的另一个算量软件也会有...原创 2018-04-25 21:24:55 · 2498 阅读 · 2 评论