自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(306)
  • 资源 (6)
  • 收藏
  • 关注

原创 想获取项目浏览器中出现的所有标准族该用什么条件?

你直接用Family这个类名来获取就可以了。请看下面代码: public void GetAllFamilies() { Application app = this.Application; Document doc = this.ActiveUIDocument.Document; FilteredEleme

2013-07-26 14:09:00 3150 4

原创 Revit编程把对象加入到选择集中

接到这个问题:怎么在用Api生成模型线或其他新生成的图元之后,选择刚生成的图元,并在revit文件中显示?答:Revit对象生成后,你可以把获得的对象加入到选择集中。Selection.Elements.Add(Element elem)比如这段代码是生成一根模型线线,然后把线加入到选择集中。 Document doc = ; //get the

2013-07-26 13:23:21 5063 1

原创 Revit MEP中如何利用API实现把弯头链接到风管上

如何利用API实现把弯头链接到风管上当创建弯头族实例时,试了两个方法来创建,1. 使用方法 NewFamilyInstance(XYZ location,FamilySymbol symbol,XYZ referenceDirection,Element host,StructuralType structuralType) 创建时,Host没有建立关联;2. 使用方法NewFamilyInsta

2013-07-11 11:31:59 6913 7

原创 Revit 中如何通过程序, 如何来控制插入门的方向?

使用NewFamilyInstance()方法插入门窗后,通过FamilyInstance.flipFacing()方法来设置门,窗的方向。如果你想获得当前门窗的开启方向:请看我的一篇英文博客:Get a door’s open direction and hinge sidehttp://adndevblog.typepad.com/aec/2012/06/get-doors-open-dire

2013-07-03 16:03:42 6277 1

原创 Autodesk 2013 DevCamp China 2013年6月19-21日在京胜利举行

会议的议程和简介请看:www.autodesk.com.cn/adndevcamp看了这么多年国家和政府会议总结,使我很难脱离胜利这两个字来概括会议的结果。:)  习惯的力量太强大。事情也确实如此,这次在北京腾达大厦举行。腾达大厦最近感觉重新装修过似的,会议室的感觉比往年好多了。 :)首日大家都在一个大会议室,内容专注在云和移动开发。参会人数达100多人,会议室坐地满满的。AutoCAD 也走向云

2013-06-25 16:30:16 3587 5

原创 编程如何修改Revit族类型名称

Revit族类型名称的修改 直接通过FamilySymbol.Name 属性值请看下面的代码: Selection sel = this.ActiveUIDocument.Selection; Reference ref1 = sel.PickObject(ObjectType.Element,"please pick a family instance");

2013-06-03 10:56:50 12726 7

原创 编程从一个项目中提取族到另一个项目中

已经完成的项目一般包含丰富的族,用户希望从一个项目中提取族到新项目中。通过Revit2014可以直接从一个项目复制族到另一个项目。请看下面的代码把指定族里面的类型都复制到另一个项目中。代码很简洁,没有包含错误处理。只是示意拷贝族类型的办法。using System;using System.Collections.Generic;using System.Text;using Syst

2013-06-03 10:18:48 6409

原创 通过编程的方式根据一组封闭的线绘制相同形状的箍筋

很多的时候我们希望给Revit的构件配筋, 通过编程的方式可以将你用手工绘制的模型线转化成箍筋。非常方便直观。我们调用Rebar.CreateFromCurves() 函数来创建箍筋。函数定义如下:public static Rebar CreateFromCurves( Document doc, RebarStyle style, RebarBarType barType, RebarHook

2013-05-20 14:32:02 4483 1

原创 Autodesk AutoCAD 二次开发视频讲座一键下载 (大量视频课程)

第二栏是语言。 Webcast Date AutoCAD .Net - Session 2 English 13-Sep-12 AutoCAD .Net - Session 1 English 6-Sep-12 AutoCAD API Chinese 25-Apr-12 DevTV: AutoCAD .Net API - Chinese

2013-05-10 13:37:13 6573 3

原创 Autodesk Revit 和Naviswork 众多二次开发培训视频教程一键下载

由于在ADN原网页中的提供ADN制作的视频培训教程下载页面在改版中需要删除,我们把Autodesk AEC行业(含Revit ,Naviswork等)的二次开发教程下载列在这里。需要说明下,包含所有历史培训教程,从时间可以看出录制日期。点击目标课程直接可以免费下载。enjoy it. Webcast Date DevTV: Navisworks .net plugin 1  1

2013-05-10 12:10:24 9949 8

原创 编程如何获取门窗洞口形状,几何尺寸和位置

当窗户,门插入到墙上后,会在墙上自动开洞口,嵌入门,窗构件。如何获取这些洞口的相撞,几何尺寸和位置。Revit没有直接提供方法来读取洞口的数据,你可以通过读取墙上的面的信息来获取这些数据。插入门窗后,墙的几何信息中就会体现出门窗洞口的信息。相对于没有门窗洞口的墙,它会拥有更多的面。 你可以获取这些额外的面的信息来计算出洞口的形状,尺寸和位置。从Wall.Geometry 获得Solid数据中可以看

2013-05-02 13:30:10 4495 6

原创 编程创建你自己的Ribbon选项卡

Revit的用户界面可以自定,但是只能通过Revit API来实现。无法想AutoCAD里面通过界面的功能设置的方式来实现,并能保存成cui文件,发送给别人。Revit的自定义界面只能通过二次开发来实现,可以在既有选项卡中添加(分析选项卡和外部命令选项卡)自己的功能按钮,也可以创建你自己的功能选项卡,自己来布置选项卡的样式。下面代码演示如何创建自定义的选项卡,并想其中添加一个Panel,然后向Pa

2013-05-02 12:51:45 6870 7

原创 Revit 2014 API新功能网络视频讲座 5月14号下午14:30(可下载讲座视频)

Revit 2014 新增了不少的API,这次网络视频讲座将详细讲解Revit API新功能,以及一些例子演示。这个讲座对所有的人开放,只要你有一根网线,一个电脑既可以参加。在会议开始前的30分钟点击下面链接,预备好环境既可以加入会议。https://www150.livemeeting.com/cc/_XML/autodesklearning/join?id=4N4D5H&role=attend

2013-04-29 10:35:19 4000 9

原创 Revit 2014 发布, Revit 2014 API新功能

Revit 2014 SDK 下载地址:http://usa.autodesk.com/adsk/servlet/index?siteID=123112&id=2484975Major changesand renovations to the Revit APIDocument APIsDocument.Save()Several modifications have been made to

2013-04-23 14:22:10 14373 6

原创 Revit编程如何提取轴线信息

问题描述:在Revit里面如何提取当前视图中轴网的信息,例如名称,标高,坐标等等?Solution:这个问题在Revit编程时是非常典型的应用情况。找到目标对象,然后获取目标对象上的信息。找到目标对象需要使用Revit的过滤机制,最核心的也是比用的类就是FilteredElementCollector类,他提供了添加过滤条件的方法,并且提供方法来获取满足条件的对象集合。获取对象信息需要用Revit

2013-04-16 10:47:40 7875 5

原创 香港Revit 二次开发培训归来

上周受香港金门建筑(Gammon Construction Company, 点击打开链接)的邀请给他们做了两天半的Revit二次开发培训。金门建筑是香港最大的建筑施工公司之一,在东南亚有工程项目。参加培训的有他们IT部门的4个同事,以及一位从BIM部门来的工程师。 公司地点在太古城。 香港用户的软件都是英文版的,他们不用繁体中文本。据我了解他们的邮件都是用英文写,但是口头交谈时他们用粤语。据了解

2013-04-14 22:34:13 3623 2

原创 Autodesk 首届中国开发者训练营于6月19-21在北京举行.

Autodesk今年6月在北京举行首届开发者训练营。Autodesk 的ADN团队每年都会举行一些培训,比如网上的产品和API新功能培训,教室培训以及一些DevTV讲座。 但是大家还是不满足我们于这些讲座。热切期望有一些更深入性的专题性讲座。把一些功能的API用法讲的更加深入透彻。基于这些需求,Autodesk今年在北京举行开发者训练营,在那里讲授分享开发专题技巧课程。我们特邀的开发主题讲座的讲员

2013-03-27 00:41:33 4227 11

原创 Revit 2013里面用程序新建族然后加载到模型中

我之前写了一篇文章谈到如何编程新建一个族,并加载到模型文件中。编程加载族文件(Revit2012)http://blog.csdn.net/joexiongjin/article/details/7636666在Revit2013里面,用LoadFamily方法加载族文件到模型中时,发生了一个变化。 那就是LoadFamily()函数的调用必须在主模型Document的事务没有打开的时候进行。但是

2013-03-21 17:30:48 7747 2

原创 如何编程发现钢筋的碰撞和相交

问题:现在在做一个钢筋冲突检测的功能,想判断当前项目中与指定钢筋发生冲突的对象的集合。 我查阅了API ,找到两个过滤器可用来判断相交,ElementIntersectsElementFilter和ElementIntersectsSolidFilter。但是这两个方法都不适用于钢筋对象,因为钢筋的Geometry属性无法返回solid对象。请问还有没有别的API可以实现钢筋的冲突检测?如果没有,

2013-03-19 12:06:20 7731 2

原创 编程读取Revit中材料的渲染属性

在Revit的材料属性里,有一个是渲染属性。读取软然属性看起来不是那么直接。下面的代码演示如何获取渲染属性中的具体属性。但是Revit还是尚未完全开放出所有属性可供访问,不如获取组织的表现文件名称。基本的思路是从Material.RenderAppearance, 返回Asset对象。然后从Asset的item属性获取其中的属性。请看下面详细VSTA代码演示: public void Mater

2013-03-14 17:24:59 5156 1

原创 如何用API从风管类型获取风管类型的截面形状

刚刚在我们ADN的全球博客里发布了一篇这篇文章。在这里给出同一个链接。现在Revit没有开放直接可用的API从DuctType来获取管道类型的形状。本文给出了一个替代解决办法来获取。思路是这样的: 从风管类型获取与风管类型关联的弯头族类型,然后打开这个弯头族,在从打开的族文档中获取连接件DuctConnector的截面形状。这个事可以工作的。但是效率不是很高,因为需要打开族的文档(EditFami

2013-03-14 17:11:49 2910

原创 关于Revit 二次开发学习书籍

经常有朋友问到Revit学习书籍的事,说网上或书店都找不到Revit二次开发的书籍。确实现在尚没有一本比较系统介绍Revit二次开发的中文书籍。随着Revit SDK2012 有一个 Revit开发者向导的pdf文件,比较系统的介绍了Revit的二次开发。但是是英文的电子书。我们上海的一些同事和我也在计划出一本中文的二次开发书,但是现在尚未出来。Revit SDK 2013不再提供那个pdf电子书

2013-03-12 18:09:43 5749

原创 美国出差返回,所见所闻感悟分享

朋友们,这次出差回来了。在美国待了半个月。这次出差是比较难受的一次。去的时候就感冒,到那里遇到支气管发炎咳嗽厉害,时差反应明显,还有淋巴发炎。前两次去我都不知道时差反应是什么,这次很好的体会了。时差反应最重要的特征是凌晨早早醒来(2点,或三点等),最厉害的是醒来后无法入睡。无论如何,这次差旅结束,到了Autodesk在美国的四个办公室(Waltham(Revit 研发中心),Manchester

2013-03-06 06:18:16 3093 3

原创 Inventor 二次开发中文博客上线啦

我的同事梁晓冬近日开通了Inventor 二次开发博客(Gear Up Inventor)。他经常发表一些Inventor二次开发方面的问题。目前有17篇原创,12篇译文。会也把Inventor二次开发的相关培训资料,国外的好文章做一些中文摘要性的介绍。这样Inventor二次开发也有中文的博客了。愿意多了解Inventor方面的高级应用,请大家前去踩踩!Gear Up Inventor 博客注:

2013-01-21 22:34:56 3911 7

原创 AU China 2012 (上海) 课程提供下载啦。

AU China 2012 的课程可以提供下载了。主题演讲:http://au.autodesk.com.cn/au/res/au_campaign/130109_au2012_index.jspAEC行业:http://au.autodesk.com.cn/au/res/au_campaign/130109_au2012_aec.jsp每次AU的课程都做了录像,把演讲者的屏幕以及演讲者的声音都录

2013-01-21 15:53:47 2191

原创 Revit中如何编程实现窗口缩放视图

从Revit2013开始,提供了UIView类用于控制视图,也可以用于读取视图的信息。UIView.GetWindowRectangle:获取绘图区的范围,坐标值是屏幕坐标UIView.GetZoomCorners()  : 获取绘图区的范围,坐标是模型坐标系根据上缅的两个数据可以计算出模型坐标与屏幕坐标之间的关系。回到题目上的问题,我们可以用下面函数实现窗口缩放视图public void Zoo

2013-01-10 11:19:22 9704 4

原创 Revit里模型动态更新DMU的用法

许多时候,开发者希望Revit有这样的功能。当用户对模型进行修改后,二次开发的程序能够相应用户的修改,对模型作出一些相应的修改操作。例如,一些墙上的窗户要求永远居中显示。当用户对这个墙做了长度修改,这个窗户还要自动的在墙的中心处。这就是一个比较容易理解的应用。这要求Revit具有感知用户所做的操作,并且能随后对模型作出修改。对于感知用户的操作或动作,Revit有两个办法,一个是用反应器,也就是事件

2013-01-09 15:19:05 7247 1

原创 如何编程创建自适应构件对象?

在Revit里面创建普通族实例大家不陌生,用NewFamilyInstance函数即可。这个函数有10来个重载形式,可以创建各种族实例。在有自适应构件的模型里,我们用RevitLookup查看自适应构件的Location属性为空。(普通族实例的Location属性不会为空,或是一个LocationPoint,或者为LocationLine)。这个开发者带来困惑,我们如何编程创建自适应构件的实例呢?

2013-01-07 11:44:24 5603 3

原创 如何编程创建自适应族?

自适应族被广大的Revit用户喻为Revit特强大的宝剑之一。关于自适应族的特性请大家看Revit的相关文档。Revit同时也开放了API来创建自适应构件族,也可以用API来生成自适应构件对象。Revit提供了AdaptiveComponentFamilyUtils类来处理与创建族相关的功能,提供了10多个方法。具体请看RevitAPI.chm中的说明。下面列出了如何创建一个自适应构件族的代码。

2013-01-07 11:29:27 10986 2

原创 如何编程创建Revit里面的视图过滤器对象

通过Revit界面“视图或View”命令选项卡下的“过滤器或Filters”, 用户可以创建自己的过滤器对象。这样你可以为你的过滤器结果设置不同的显示样式和特征。通过Revit 的API同样可以实现编程创建视图过滤器。下面这些代码演示了如何创建一个柱子类型的视图过滤器(给定柱子的名称)。从这里可以了解创建的过程和需要调用的函数。注意: 这里给类型名称的内置参数是:ALL_MODEL_TYPE_NA

2013-01-04 12:35:51 8656 1

原创 2012 Autodesk开发者大会和AU归来

2012.12.10-15号的一整个礼拜的时间,我们ADN中国团队忙于Autodesk开发者大会(Devdays) 和Autodesk 大学(AU)。是一年中最忙碌的时候。我们需要在上个礼拜之前把2014版本的产品下载安装,学习新功能以及如何演示新功能,了解新的API以及如何演示新的API的例程。每个人负责几个产品,我今年讲了4个主题:1. 云和移动应用的例子演示,开发者大会的主题演讲。在北京做汉

2012-12-17 18:19:13 2626 1

原创 Revit插件加载,addin文件的设置

问题描述:Revit二次开发使用addin加载时,出现如下错误。 “外部工具-不存在于附加模块对应的供应商ID节点” “无法初始化附加模块“helloworld.addin”,因为附加模块注册表中缺少所需的供应商ID节点值。可根据供应商ID节点识别附加模块应用程序的供应商。如要Revit运行附加模块,必须注册清单“helloworld.addin”文件中定义的节点” 请问这个要如何解决,谢谢 ad

2012-12-17 15:24:11 27929 9

原创 Revit 二次开发视频讲座下载: Revit界面编程

今天偶然看新闻中的一个评论,是一个农民工兄弟描写自己打工出门的场景,禁不住心酸流泪。澳门 累TCL照明你知道农民过完春节出去打工的心情吗?我06年去宁波打工,那时儿子六岁女儿四岁。我和妻子为了不让一对儿女看到我们背着包出来打工,特意从后门出去,还是被他们发现了!我们就撒谎说帮别人拿的,没有用。孩子们就贴着我们一步不离。赶车的时间要到了只有强行走,他们兄妹一个抱腿一个拉着包,流着泪没哭出来仰着头看着

2012-11-23 01:10:36 6202 9

原创 Revit二次开发时,处理Revit里面的坐标转换

在软件操作上看,AutoCAD的所有定位都以坐标来进行。相对的在Revit没有坐标这个概念,Revit里面对象的位置关系都是相对位置关系。但是在Revit内部,坐标是实实在在的。没有坐标无法管理对象的位置。在做Revit二次开发,特别是涉及到几何和位置关系时,需要密切关注对象的坐标,以及不同坐标系之间的坐标转换。Revit里面的几种坐标系:         模型坐标系: 也理解为全局坐标系 视图坐

2012-11-20 11:39:09 16535 5

原创 Revit二次开发是否支持多线程?

采用多线程可以提高效率,充分使用系统资源。很多朋友咨询Revit是否支持多线程? 这里简要说明如下:Revit不允许在多线程中都对Revit的模型进行操作和修改。如果你在其它线程只是读取Revit的模型,并没有启动事务(Transaction), 这个操作应该是安全的。如果你只是在其它线程做一些与Revit API无关的操作,那是允许的。转载请复制以下信息:原文链接: http://blog.cs

2012-11-16 11:31:27 4435 1

转载 转:C# 文件与二进制互转数据库写入读出

转载一篇文章:作者: fariyeye, 踱步在Code的尽头C# 文件与二进制互转数据库写入读出 我们经常需要经文件存放到数据库中,可以用下现成的代码。 //这个方法是浏览文件对象 private void button1_Click(object sender, EventArgs e) { /

2012-11-14 18:40:11 2365

原创 云和移动开发风气云涌,Autodesk的一些云应用提供REST API做基于云的二次开发

基于云的开发风气云涌,基于云和移动开发成为程序员新的追逐方向2002年开始进入工作,主要从事CAD类的软件研发工作,一方面是在AutoCAD上的二次开发,另一方面使用C++开发一些基于桌面和数据库的软件研发。对于基于Internet Explorer的软件开发正在兴起,前东家也投入了很大的力量从事基于IE的系统,各种管理系统。当时还是觉得从事基于桌面开发比较稳妥,有前景。因为基

2012-11-14 17:38:53 3066

原创 Revit启动后,如何把你的命令显示在Revit的Ribbon(工具栏)上?

在开发的过程中,大家经常用AddinManager来运行你的外部命令,这样的好处是程序的修改,运行,调试速度可以很快。我就此也写过一篇文章。当你开发结束后,希望你的客户直接在Revit启动后就可以点击工具栏中的你的命令按钮,直观地使用你开发的命令。这个过程需要一些环节来实现:大体两种解决方案:简单的解决方案高级的解决方案一. 简单方案:

2012-11-14 15:34:48 18930 6

原创 程序生成的管道Pipe或风管Duct,如何修改他们的系统类型

接到类似的问题的咨询。叶老师,我用NewPipe创建的管道后,选中画好的管道,为什么“系统类型”属性项那不能选择?只显示“未定义”。而且不能设置,如何通过API来设置新建风管时的系统分类和系统名称?如何修改已有管道和风管的系统分类和系统名称? A:如果单独用NewDuct (XYZ, XYZ,DuctType)或NewPIpe 函数创建的风管或管道的系统类型是未定义

2012-10-31 18:37:00 10203 3

原创 Autodesk ADN Developer Day (Devdays)12月份在中国

一年一度的Autodesk 开发者日 (Developer Days or Devdays) 每年巡回在全球十多个城市举行,由我所在的ADN这个部门主导新内容讲座。为什么Autodesk提前宣讲2014版的API和产品新功能呢? 这就是给我们的开发者一个提前信息的机会,这样你就可以在alpha版或beta版提前得知新版的内容,然后你可以提前把你的程序移植到2014上,如果你发现有用的API,你

2012-10-31 18:13:15 2062

Revit二次开发实现BIM盈利(以橄榄山快模为例讲解) PPT

由于参与者基本上都是从设计院和施工单位来的,所以对Revit二次开发做了纵览性的讲解, 以非程序员能听懂的方式讲解Revit二次开发. 使这些行业领导或负责人能明白Revit二次开发的大概特点,以及其能实现的功能. 便于他们在自己的业务需要Revit插件时,能更好的思考和决策插件项目的立项和推动.

2014-10-12

Revit高效调试和深入探究Revit内部世界

Revit高效调试 Revit Addin Manager 调试技巧: 高效调试,使用Revit Add-in manager 1. Revit Add-in manager 安装方法 2. 详细步骤 开发时,无需用Addin文件来配置 修改代码后如何立即使用新修改的代码 如果调试修改后的代码 最后发布时,需要附带Addin文件 深入探究Revit内部世界 RevitLookup 0. 编译和加载RevitLookup 1. 了解Revit内部对象的组织方式 2. 了解Revit内对象的代表类 3. 了解Revit内对象的可用属性和返回值 4. 辅助更好理解Revit属性的含义 5. 查询Revit参数含义和参数值 6. 连续深入参看对象的关系

2014-01-28

Revit 二次开发实例

从中了解Revit 二次开国外现状。(本讲座发生在2012年4月)

2013-06-05

房间内对象拷贝插件文件

我开发了一个很小的工具,用来拷贝一个房间内的家具,隔墙,电器,管道,卫生器具等到其它选中的多个房间。 要求把目标房间内需要拷贝的对象做成一个组(Group),如果有些对象不希望拷贝,可以不放入组内。 所以你需要先把一个房间内的东西都布置创建好,并且用Revit命令需要为每一个房间创建Room对象。有了这些条件就可以开始使用这个小工具了。 使用步骤: 0. 如果打开了Revit,关闭Revit 1. 解压文件 2. 把copyelements.dll 拷贝到c盘根目录 3. 把copyelements.addin 拷贝到下面目录: For Windows XP - C:\Documents and Settings\All Users\Application Data\Autodesk\Revit\Addins\2011\ For Vista/Windows 7 - C:\ProgramData\Autodesk\Revit\Addins\2011\ 4. 重新启动Revit,可以在Addin/插件 Tab中的外部工具下拉按钮找到命令:Lab6SelectRoomsAndPlaceGroup,点击可启动。

2011-03-04

Revit房间内对象拷贝插件加载文件

我开发了一个很小的工具,用来拷贝一个房间内的家具,隔墙,电器,管道,卫生器具等到其它选中的多个房间。 要求把目标房间内需要拷贝的对象做成一个组(Group),如果有些对象不希望拷贝,可以不放入组内。 所以你需要先把一个房间内的东西都布置创建好,并且用Revit命令需要为每一个房间创建Room对象。有了这些条件就可以开始使用这个小工具了。 使用步骤: 0. 如果打开了Revit,关闭Revit 1. 把copyelements.dll 拷贝到c盘根目录 2. 把copyelements.addin 拷贝到下面目录: For Windows XP - C:\Documents and Settings\All Users\Application Data\Autodesk\Revit\Addins\2011\ For Vista/Windows 7 - C:\ProgramData\Autodesk\Revit\Addins\2011\ 3. 重新启动Revit,可以在Addin/插件 Tab中的外部工具下拉按钮找到命令:Lab6SelectRoomsAndPlaceGroup,点击可启动。

2011-03-04

房间内对象快速拷贝工具

拷贝一个房间内的家具,隔墙,电器,管道,卫生器具等到其它选中的多个房间

2011-03-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除