读取对象几何信息
叶雄进-橄榄山
中国Revit二次开发技术推动者和l领军者
展开
-
判断一个柱子是圆柱还是矩形柱的代码
下面这段代码用来判断柱子的形状。提取柱子的几何形状,看看所有的面,如果有一个面是CylinderFace,那么其就是圆形柱子。(本命令只适用与判断是矩形柱还是圆形柱)。可以看看如何访问对象的几何信息原创 2011-05-13 15:38:00 · 5297 阅读 · 0 评论 -
如何编程发现钢筋的碰撞和相交
问题:现在在做一个钢筋冲突检测的功能,想判断当前项目中与指定钢筋发生冲突的对象的集合。 我查阅了API ,找到两个过滤器可用来判断相交,ElementIntersectsElementFilter和ElementIntersectsSolidFilter。但是这两个方法都不适用于钢筋对象,因为钢筋的Geometry属性无法返回solid对象。请问还有没有别的API可以实现钢筋的冲突检测?如果没有,原创 2013-03-19 12:06:20 · 7731 阅读 · 2 评论 -
编程如何获取门窗洞口形状,几何尺寸和位置
当窗户,门插入到墙上后,会在墙上自动开洞口,嵌入门,窗构件。如何获取这些洞口的相撞,几何尺寸和位置。Revit没有直接提供方法来读取洞口的数据,你可以通过读取墙上的面的信息来获取这些数据。插入门窗后,墙的几何信息中就会体现出门窗洞口的信息。相对于没有门窗洞口的墙,它会拥有更多的面。 你可以获取这些额外的面的信息来计算出洞口的形状,尺寸和位置。从Wall.Geometry 获得Solid数据中可以看原创 2013-05-02 13:30:10 · 4495 阅读 · 6 评论 -
Revit2013没有没有类似“连接几何图形”功能的API (更新: Revit2014提供了)
请勿转载本文,以后若是提供了此功能,我可以修改本文。转载后文章就不好控制,导致信息误导。 谢谢!叶雄进,Autodesk ADN 在立面图上的几片墙彼此连接,但是墙与墙之间有一条横线。 可以通过Revit自带的“连接几何图形”功能把这根横线消除。如下图所示:对一个大型模型,需要许多这样的手工操作。是否通过API编写程序自动实现连接几何图形? 答:现在Revit原创 2012-05-24 11:42:40 · 5037 阅读 · 3 评论 -
请问关于如何获取Revit管线的中心线端点坐标
需求情形:想获取一根管线的中心线的端点坐标该如何用API来实现?这个坐标如果导出为FBX文件,这些点在FBX中的坐标是一致的吗?如果不是,该如何转换呢?答:Revit 里面有几种类型的对象,1. 基于点的对象,例如柱子,门,窗,家具等等。这类对象可以用Element.Location 获取一个LocationPoint的对象,然后可以从LocationPoint.Point 获取他们的位置信息。2原创 2013-11-21 12:03:35 · 6724 阅读 · 0 评论 -
族的坐标和实例的坐标间的对应关系
在Revit二次开发过程中,对于Revit内部的坐标系之间的关系的掌握是非常必要的。下面是一个典型的坐标问题。族的几何体和该族实例的几何体间什么对应关系?如何从族的局部坐标系,通过怎样的矩阵旋转、缩放、平移得到族实例在全局坐标系中的实际位置呢?首先说明下概念:在制作族的时候,族文件中的几何体具有自己的坐标系。当加载族文件到Revit模型文件中,插入改族实例到模型后,族实例中的几何体具有自己的坐标。原创 2013-11-22 14:40:41 · 8882 阅读 · 0 评论 -
Revit中如何通过API获取对象的位置坐标和旋转角度
Revit中的基于点的族实例可以旋转,我们如何获得旋转角度呢?谈这个问题之前我们综合的说下Revit对象是如何定位的。Revit对象的定位信息由2种方式来获得:1. 最简单的方法是通过Revit.Location 来获得。这类对象是族实例(FamilyInstance),包含两类对象: a. 基于点的族实例,比如柱子,门窗,家具。基于点的族势力的Location属性返回Location原创 2013-11-27 12:13:27 · 14017 阅读 · 1 评论 -
Revit 里面角度的正方向是如何定义的
在AutoCAD里面,圆弧的起始角度小于终止角度。原创 2014-07-24 14:38:22 · 7986 阅读 · 0 评论 -
获取模型线的端点引用来创建标注
我现在需要创建一个尺寸标注,标注的一端在模型线的端点上,请问如何获取一条模型线端点的引用。原创 2014-08-11 11:03:12 · 2959 阅读 · 0 评论 -
编程如何获得通过草图创建的Revit构件关联的原始草图对象
问题:原创 2014-10-27 21:43:36 · 3597 阅读 · 1 评论 -
Revit中如何通过柱子找到他连接的所有墙?
问题:如何通过柱子找到他连接的所有墙?原创 2014-11-13 22:42:11 · 8776 阅读 · 2 评论 -
Revit二次开发时,处理Revit里面的坐标转换
在软件操作上看,AutoCAD的所有定位都以坐标来进行。相对的在Revit没有坐标这个概念,Revit里面对象的位置关系都是相对位置关系。但是在Revit内部,坐标是实实在在的。没有坐标无法管理对象的位置。在做Revit二次开发,特别是涉及到几何和位置关系时,需要密切关注对象的坐标,以及不同坐标系之间的坐标转换。Revit里面的几种坐标系: 模型坐标系: 也理解为全局坐标系 视图坐原创 2012-11-20 11:39:09 · 16544 阅读 · 5 评论 -
如何获取墙,圆形 管道或圆心风管的中心线的引用Reference
先说说引用Reference的一点常识和作用:Revit大量使用引用(Reference)指向一个对象,来指向对象之间的关系,这是Revit能智能更新模型的关键技术。比如对于一个尺寸标注对象Dimension,它保留了对所指向的那些面或对象的引用Reference,当这些Reference指向的对象发生修改时,尺寸标注随着更新。 Revit里面的Element,Face,Edge,端点具有原创 2012-10-31 17:33:14 · 6130 阅读 · 1 评论 -
正在预备Revit几何属性访问以及对象间关系的专题讲座
这段时间做了2次讲座,比较耗费时间。Revit讲座已经在下面一篇文章提到。下载链接已经放上去了。另一个讲座AutoCAD 2012 .NET API的介绍,找点介绍了Autoloader。大家对AutocAD编程有兴趣的可以下载观看。http://download.autodesk.com/media/adn/AutoCAD_2012_NET_API_Webcast.zip原创 2011-06-21 17:59:00 · 1962 阅读 · 0 评论 -
Revit二次开发高级专题讲座:访问Revit模型中的几何数据以及对象间关系判断方法(点击下载)
各位朋友们,这段时间没有经常更新我的博客,抱歉!几何数据访问是编写Revit程序很重要的内容。从今年开始我会编写录制一些专题讲座来介绍Revit编程。正如我之前一篇博客所说,我在准备一个讲座。由于要设计内容,创建资料(PPT),例子代码创建,已经讲座的准备工作原创 2011-07-12 13:27:23 · 5299 阅读 · 11 评论 -
Boundary的妙用(以设置文字的宽度为例)
不知大家注意到没有,在Revit视图中的文字的宽度在不同的视图比例下,同一个文字兑现给的TextNote.Width 属性值是变换的。这就给大家造成一个麻烦,那就是如何在不同的比例下,创建文字,且是文字编辑器的宽度刚好容纳下文字的宽度呢?文字是编程中大量使用的功能,所以这个应该对大家的工作有启发意义。Revit API提供了Element..Boundary(view)属性 用于获取在指定原创 2011-11-16 18:08:02 · 4246 阅读 · 1 评论 -
如何编程判断构件相交?
近日看到一个5d6d的关于Revit API的论坛 既不标识本博文章的链接,也没有说明作者就在其论坛内转载本博的文章,而且发帖人写的是论坛的管理员。 为了更好服务广大Revit API 爱好者,请该版主改正这种行为,在引用本博的帖子里至少补上本博每篇文章链接。这样本博对已有文章的修改和更新读者们有机会过来看看。如果尊重原创,请署上原作者。 应一朋友询问,写了如下的文章。 碰撞检查是原创 2012-02-21 17:26:06 · 5904 阅读 · 1 评论 -
如何编程读取墙的轮廓线
解决思路:Revit API没有直接提供接口读取墙的轮廓线。读取这个数据可以通过读取墙的几何信息(Geometry属性)获得代表这个墙的Solid,然后从这个solid中遍历solid中的所以后面找到墙的侧面(应该有两个),(判断依据是根据侧面的法向量与Wall.Orientation 向量平行) 这个方法从Revit2012(不含2012)之前的版本可以用。在Revit2012中提供了一原创 2012-02-20 11:05:56 · 8268 阅读 · 17 评论 -
编程获取墙的原始几何尺寸
转载请复制以下信息: 原文链接: http://blog.csdn.net/joexiongjin/article/details/7474247作者: 叶雄进 2012.4.18 在Revit里面,构件之间会有互相相交的关系,彼此会相切。也可以用Revit的命令功能(Join Geometry或Unjoin Geometry)来实现构件几何相切或解除相切。这样原创 2012-04-18 17:21:17 · 5631 阅读 · 5 评论 -
获取某墙上洞口的尺寸和位置
转载请复制以下信息:原文链接: http://write.blog.csdn.net/postedit/7620609作者: 叶雄进 , Autodesk ADN 问题:通过Document.Create.NewOpening(wall, xyz1, xyz2); 可在墙上开洞。假如下次执行同样的操作revit自身会报错,没有可剪切的墙体。请问:怎样判断那个位置已经开原创 2012-05-31 17:17:05 · 4245 阅读 · 1 评论 -
Autodesk.Revit.DB.Transform 类的作用
转载请复制以下信息: 原文链接: http://blog.csdn.net/joexiongjin/article/details/7598833作者: 叶雄进 , Autodesk ADN Revit 提供了Transform类来做二次开发时的坐标转换。 你可以给Transform对象进行赋值,构造一个变换矩阵。然后使用这个变化矩阵把给定的坐标点的坐标转成目标坐标系。原创 2012-05-24 16:29:46 · 7128 阅读 · 2 评论 -
获取墙的一个侧面,并且将上的点坐标转换到XOY面在墙侧面上的坐标系
一个客户问在Revit 2011上如何获得一个墙的侧面,而且把侧面坐标转到XOY平面在墙面上的坐标系。 对于同一个墙(长宽高相同), 任意旋转墙至不同的角度,获取的坐标值是相同的。 我的一篇博客也提到Revit 2012 提供的HostObjUtils类的方法,可以用HostObjUtils.GetSideFaces() 来快速获取侧面。Revit 2011 没有提供HostObjUt原创 2012-06-18 16:15:10 · 3436 阅读 · 5 评论 -
如何修改Revit中墙,梁,管道等的端点位置。实例代码演示修改管道的倾斜角度
转载请复制以下信息:原文链接: http://blog.csdn.net/joexiongjin/article/details/8124489作者: 叶雄进 , Autodesk ADN接到一个朋友的关于修改管道角度的咨询Q: 管道的端点偏移都是只读的,有没有更改管道坡度的API?如果有,是什么;如果没有,有什么办法解决一下吗?谢谢。关于修改Revi原创 2012-10-29 15:31:08 · 8785 阅读 · 0 评论 -
Wall的LocationCurve获得的墙基线位置 是否与墙的定位线有关?
开发者常常迷惑墙的属性有一个墙定位线,有多个选项: 那么这写选项是否与用API Location属性获得的墙基线有关呢?答案是否定的。无论一个墙的定位线是怎么设置的,我们用编程的方式从Location获得的LocationCurve的位置信息均保持不变。 Location获得的位置是墙的中心位置。 如果墙有装饰层,Location获得是整个墙的中心线位置。所以墙的定位线是对用户操作墙而言的,比如原创 2016-07-05 14:47:06 · 6116 阅读 · 1 评论