Revit
文章平均质量分 67
摘花换酒
A free programmer, fairly good soccer player and a happy dad.
展开
-
分享对BIM的一些理解
因为有幸参与由东南大学建筑学院领导的工业化住宅体系研发,屈指之间已经迈入了 Revit 二次开发的第四个年头。对于 BIM 也有了一些自己的理解和体会。并在2012年的AU大师汇上用一个专题演讲的方式和很多同行进行了讨论和分享。有兴趣的朋友可以通过如下链接了解我心目中的BIM。http://au.autodesk.com.cn/QueryCourseAction.do?id=3860原创 2013-01-14 20:29:04 · 2190 阅读 · 0 评论 -
Building Coder(Revit 二次开发) - 过滤非本地(Non-Native)类
Building Coder 链接:http://thebuildingcoder.typepad.com/blog/2010/08/filtering-for-a-nonnative-class.htmlRevit 二次开发论坛链接:http://revit.5d6d.com/viewthread.php?tid=1304&extra=元素过滤(filtered element co翻译 2011-09-08 11:43:23 · 1103 阅读 · 0 评论 -
Building Coder(Revit 二次开发) - 针对视图和阶段进行过滤
Building Coder 链接:http://thebuildingcoder.typepad.com/blog/2010/09/filter-for-view-and-phase.htmlRevit 二次开发论坛链接:http://revit.5d6d.com/viewthread.php?tid=1306&extra=关于过滤的话题总是没完没了。这不又来新需求了:这回是翻译 2011-09-09 17:29:16 · 1040 阅读 · 0 评论 -
Building Coder(Revit 二次开发) - 元素层级事件(上)
Building Coder 链接:http://thebuildingcoder.typepad.com/blog/2010/04/element-level-events.html#2Revit 二次开发论坛链接:http://revit.5d6d.com/viewthread.php?tid=1316&extra=个人认为对元素层级事件的开放是 Revit API 最重要的新翻译 2011-09-19 10:40:57 · 1563 阅读 · 0 评论 -
Building Coder(Revit 二次开发) - 使用 FindReferencesByDirection 创建墙体之间的尺寸标注
原文链接:Dimension Walls using FindReferencesByDirection几天前我展示了一个新的 Building Coder 命令 CmdDimensionWallsIterateFaces。它可以在两面墙体的相对面之间创建尺寸标注。方法是首先遍历墙体的实体几何特征和面,然后调用 Revit 几何库来计算安全的引用用以附着尺寸标注元素。遍历几何特征,翻译 2012-02-01 22:34:33 · 2108 阅读 · 0 评论 -
Building Coder(Revit 二次开发) - 翻译 Revit Tooltip
原文链接:Translate Revit Tooltips由于 AutoDesk 已经将其大部分产品的底层架构统一了,所以 Kean Walmsley (译者注:AutoCAD二次开发博主 Through the Interface) 对 AutoCAD 界面定制的研究对于 Revit 同样有效。本文从定制 Tooltip 入手,介绍如何利用 AdWindows.dll 定制化翻译 Rev翻译 2012-05-07 11:59:13 · 1574 阅读 · 0 评论 -
Building Coder(Revit 二次开发) - 提高针对族的元素过滤器的性能
原文链接:Family Usage Filtered Element Collector Performance问题针对 Revit 数据的访问绝大多数情况下都是基于从 FilteredElementCollector 中返回的 Revit 元素,可见提高元素过滤的性能是保证 Revit 二次开发性能的基石。Jeremy我在博文 XML family usage r翻译 2012-09-29 15:25:04 · 1448 阅读 · 0 评论 -
Building Coder(Revit 二次开发) - 改变剖视图的视图类型并且隐藏切割线
原文链接:Change Section View Type and Hide Cut Line1. 在一个楼层平面视图中隐藏切割线viewSection.get_Parameter( BuiltInParameter.SECTION_COARSER_SCALE_PULLDOWN_METRIC ).Set( 1 );2. 创建剖视图在 Revit 2013 中使用如下函数:翻译 2012-09-29 16:18:26 · 1841 阅读 · 0 评论 -
Building Coder(Revit 二次开发) - UIView 和 Windows 设备坐标
原文链接:UIView and Windows Device CoordinatesRevit 2013 API 中新提供了一个新的视图 API,具体地说是提供一个新类 UIView。UIView 代表一个视图窗口,让我们可以通过程序来移动、缩放和决定窗口平铺时的大小等等一系列操作。也为我们从其它可视化环境切换回视图提供了可能。UIView 目前只公开了三个方法:1. Ge翻译 2012-09-30 15:21:52 · 2328 阅读 · 0 评论 -
AEC DevBlog(Revit 二次开发)- 使用 Revit API 选取三维点
原文链接:Picking 3D points using Revit API作为 Revit 二次开发人员,我们很熟悉如何使用 Selection.PickPoint() 在二维平面上选取一个点。由于 Revit API 并不直接支持在三维坐标系中选取一个点,我们需要采用稍微复杂一点儿的方法来实现:1. 首先借助 View.SketchPlane 属性设置当前工作平面;2. 然后使翻译 2012-10-09 09:40:44 · 4024 阅读 · 0 评论 -
Building Coder(Revit 二次开发) - 族元素可见性
Building Coder 链接:http://thebuildingcoder.typepad.com/blog/2010/07/family-element-visibility.htmlRevit 二次开发论坛链接:http://revit.5d6d.com/viewthread.php?tid=1295&extra=有人提到一个如何在族文档中设置元素可见性的问题。翻译 2011-08-30 10:25:30 · 1663 阅读 · 1 评论 -
Building Coder(Revit 二次开发) - 无模式窗口和消失的共享参数
Building Code 链接:http://thebuildingcoder.typepad.com/blog/2010/08/modeless-form-and-disappearance-of-shared-parameters.htmlRevit 二次开发论坛:http://revit.5d6d.com/viewthread.php?tid=1301&extra=今天翻译 2011-09-05 14:19:13 · 1221 阅读 · 0 评论 -
Building Coder(Revit 二次开发) - 元素层级事件(下)
Building Coder 链接:http://thebuildingcoder.typepad.com/blog/2010/04/element-level-events.html#2Revit 二次开发论坛链接:http://revit.5d6d.com/viewthread.php?tid=1317&extra=动态模型更新的使用在两个SDK例程里都有展示:Dynami翻译 2011-09-20 09:56:12 · 1179 阅读 · 0 评论 -
Building Coder(Revit 二次开发) - 从 Revit 中创建 Navisworks 文件
原文链接:Create a Navisworks File from RevitNavisworks 是一款 Autodesk 产品,它提供一个灵活集成了多个 CAD 格式的平台,允许从多个源创建一个复合模型,并且提供特殊的视图和分析工具。具体点儿说,Navisworks 可以将来自 AutoCAD、Revit、Inventor和其它多款Autodesk产品的模型组合起来。这里是官网htt翻译 2012-01-21 11:15:42 · 1994 阅读 · 0 评论 -
Building Coder(Revit 二次开发) - 可扩展存储
原文链接:Extensible Storage我们之前讨论过 Revit 2012 API 中一些主要的特性,其中不少是开发者期望的功能。这里我想谈谈另外一个热点功能,实际上 Revit 2012 API 做得比我们期望的还要好。提问:我如何用 Revit API 将定制的业务数据存储到 Revit 文件中?回答:使用共享参数是一种选择。这个方案有些复杂,包括正确地翻译 2012-02-08 11:39:05 · 2250 阅读 · 0 评论 -
Building Coder(Revit 二次开发) - 对象关系
Revit二次开发论坛链接Building Coder原文链接我们之前已经讨论过利用Document.Delete()的几个重载方法来发现对象之间关系的几个应用实例。比方说:标签和其标注元素的关系、墙及其墙基脚的关系、宿主及其内嵌元素的关系、Sheet的标题块、或者宿主元素及其门洞(针对粗略的材质量化计算)之间的关系。另外一种使用的场景是获取没有修改的元素几何数据。感谢Saik翻译 2011-08-17 14:28:42 · 1063 阅读 · 0 评论 -
AEC DevBlog(Revit 二次开发)- 获取一个面的法线方向
原文链接:Getting the normal direction of a face问题当我使用 PlanarFace.Normal 属性获取面的法线时,我法线对于有些面来说结果和实际的面方向相反。foreach (Face face in solid.Faces){ PlanarFace planarFace = face as PlanarFace; i翻译 2012-10-09 18:08:39 · 3586 阅读 · 0 评论 -
Building Coder(Revit 二次开发) - 族符号与族类型
原文链接:Family Symbols versus Types and SelectionFilterElement问题如果我在一个族文档(RFA)中访问 OwnFamily.Symbols,返回的是空集合。如果我将这个族加载到项目文档中,然后访问 Family.Symbols 属性,返回的就是正确的族类型。为什么这个属性在族文档中无效呢?Jeremy在族文档环境里,应该翻译 2013-01-10 09:29:26 · 2740 阅读 · 1 评论 -
Building Coder(Revit 二次开发) - 在一个倾斜的面上创建墙
原文链接:Create FaceWall on Slanted Mass Face问题我想在一个倾斜的面上创建一面墙。是否有例子代码可以参考?Jeremy这里有一段简单的代码,对象文档是包含一个概念块(Conceptual Mass)族实例的项目。代码首先检索概念块上法向方向为 (-1, 0, 1) 的面,然后在这个面上创建墙。void CreateFaceWall(翻译 2013-01-06 10:33:08 · 2559 阅读 · 1 评论 -
Building Coder(Revit 二次开发) - ToElementIds() 的性能
原文链接:ToElementIds Performance从 Revit FilteredElementCollector 到包含 Element 或是 ElementId 的显示的 .NET 集合对象的转换通常是开销相当大的,所以应该被极力避免。我最近已经讨论过多种对元素检索操作的优化,详见博文:FindElement and collector optimisations翻译 2013-01-01 21:05:18 · 1395 阅读 · 0 评论 -
Building Coder(Revit 二次开发) - GetInstanceGeometry() 的开销和无效的引用
原文链接:GetInstanceGeometry Overhead and Invalid References通过 GeometryInstance.GetInstanceGeometry() 方法可以获取一个族类型(Family Symbol)的几何数据。来自 Revit API 文档的更准确的说法是:该方法会计算对象的几何特征。注意这里的“计算”真的意味着复杂的计算过程,因此会导致明翻译 2013-01-01 21:09:07 · 2179 阅读 · 0 评论 -
Revit 二次开发 - 关闭当前文档
学习完 The Building Coder 最新的博文 Installing a Macro and Closing the Active Document 之后,有些想法和大家交流一下。通过编程方式关闭 Revit 的当前文档一直没有直接的 API 支持。其实就连打开指定文档并将其设置为当前文档也是直到 Revit 2013 才通过 OpenAndActiveDocument() 方法直接原创 2012-12-16 23:01:54 · 2537 阅读 · 0 评论 -
Building Coder(Revit 二次开发) - 空闲事件(Idling Event)增强和外部事件(External Event)
原文链接:Idling Enhancements and External EventsRevit 2013 的一个重要的 API 改进就是空闲事件与无模态对话框的交互。相应的,这篇博文将讨论与之相关的几个主题:空闲事件的重复性没有活动文档时的空闲事件新的外部事件框架RevitWebcam 例程续篇在事件相应函数中使用 OpenAndActiveDocument() 方法空闲事翻译 2012-11-26 11:58:03 · 3162 阅读 · 0 评论 -
Building Coder(Revit 二次开发)- 设置匹配范围框的视图剖视框
原文链接:Set View Section Box to Match Scope Box今天我们讨论一个我很感兴趣的问题:1. 如何精确地获取空间范围框(Scope Box)的几何位置、尺寸和方向?2. 如何精确地设置三维视图剖视框(Section Box)的几何位置、尺寸和方向?换句话说就是如何使用手动调整的范围框来定义视图剖视框,即模型是如何在三维视图中被剪切的。实翻译 2012-10-17 10:43:17 · 4014 阅读 · 0 评论 -
Bulding Coder(Revit 二次开发) - AU 圆桌会议
原文链接:The Champions Roundtable at AUJeremy 在 AU DevLab 上与回答其它 Revit 二次开发人员的问题译者注:Jeremy 直接将他在 AU DevLab 上的笔记贴上来了,虽然句子有些混乱,但是我看下来之后依然觉得其中不乏原则性策略和编程技巧。所以翻译整理了一下,和大家分享。Q: 我如何运行一个批处理来打开连续的工作共翻译 2012-12-06 10:16:21 · 2081 阅读 · 0 评论 -
Building Coder(Revit 二次开发) - 临时事务的使用技巧
原文链接:Temporary Transaction Trick TouchupJeremy我在 temporary transaction trick 中提到了多种利用临时事务实现特定应用的方法。不过 Autodesk 的 Revit API 中事务部分的专家 Arno?t L?bel 对此提出了忠告:这些方法并不能保证在所有情况下都适用。Arnost首先在获取被修翻译 2012-11-22 10:44:51 · 2393 阅读 · 0 评论 -
Building Coder(Revit 二次开发)- 在两条线之间创建尺寸
原文链接:Create Dimension between Two Lines如何创建尺寸是一个经常被问及的问题。我最近花了点儿时间研究并找到了一个解决方案,顺带纠正了 RevitLookup 中一个相关的错误。问题我尝试用编程的方式创建详细的图纸,特别是使用 ItemFactoryBase.NewDimension() 方法。我根据墙元素的几何特征在草图视图中绘制细节线(Detail翻译 2012-10-20 15:48:03 · 2618 阅读 · 0 评论 -
Building Coder(Revit 二次开发)- 创建球体用于AVF和过滤
原文链接:Sphere Creation for AVF and FilteringRevit 2012 API 新引入了 GeometryCreationUtilities 类来帮助创建实体。然而它没有提供直接的球体创建方法,而是提供了以下五个根据输入曲线创建几何实体的辅助方法:CreateBlendGeometry 融合CreateExtrusionGeometry 拉伸Cre翻译 2012-10-19 11:48:09 · 3275 阅读 · 0 评论 -
Building Coder(Revit 二次开发)- 使用实体相交(Solid Intersection)过滤有接触的梁
原文链接:Filter for Touching Beams Using Solid Intersection几何创建工具创建的临时实体(Solid)可以用于几何特征过滤器。问题我想通过编程方式获取全部有接触的梁,不考虑它们之间的连接状态。用户首先选中一根梁,然后程序自动将所有有递归接触的梁(即级联方式接触)选中。Jeremy首先让我们讨论这些梁翻译 2012-10-10 10:36:52 · 5686 阅读 · 1 评论 -
Building Coder(Revit 二次开发)- 图形化显示区域边界
原文链接:Graphically Display Area Boundary Loops我最近研究了一个关于检测区域边界是否闭合的问题,方法是在 RevitLookup 中查看相关的坐标值。但是我想人脑很难分析这么多的数据,所以靠谱的方式你懂的,还是创建一个外部命令(DisplayBoundary)来自动化地完成。该命令遍历选中区域(或是模型中的所有区域)的边界片段,然后创建一个曲线来代表翻译 2012-10-15 10:39:14 · 3967 阅读 · 0 评论 -
Building Coder(Revit 二次开发)- 关于楼板边界的重新思考
原文链接:Slab Boundary Revisited问题如何使用 Revit API 获取楼板边界?Jeremy我2008年时就实现了一个名为 CmdSlabBoundary 的外部命令用于获取楼板边界。这个命令识别一块楼板的边界(包括门洞),然后沿着边界创建一组高亮的模型曲线。针对你的问题,我重新检查了这个命令,并将其代码更新到 Revit 2013。[T翻译 2012-10-12 11:30:53 · 5946 阅读 · 0 评论 -
Building Coder(Revit 二次开发) - 列出链接文件和 TransmissionData
原文链接:List Linked Files and TransmissionData我们在讨论 Revit 2012 API 新特性时提到过:现在程序可以通过类 TransmissionData 访问 Revit 文档的外部链接文件了。实际上可以在界面中不打开 Revit 文档的前提下读取外部链接文件。不过下面这个问题让我更深入地研究了这个新特性。提问:使用 Revi翻译 2012-02-10 15:45:16 · 1448 阅读 · 0 评论 -
Building Coder(Revit 二次开发) - 只加载需要的族类型
原文链接:Loading Only Selected Family TypesRevit API 提供两种方法来加载族类型:1. LoadFamilySymbol - 加载一个族类型2. LoadFamily - 加载一个族包含的所有族类型之前我们也讨论过如何使用 Duplicate 来创建一个新的族类型(creating a new family type),以及卸载一个翻译 2012-02-13 15:22:47 · 2005 阅读 · 0 评论 -
Building Coder(Revit 二次开发) - 失败处理API(上)
Building Coder 链接:Failure API Take TwoRevit 二次开发论坛链接:翻译 Building Coder - 失败处理API(上)我们之前在失败处理第一季中讨论过 Revit 2011 中最新的失败处理API和SDK例程“ErrorHandling”。Revit API 最广泛的用途之一就是屏蔽不需要的警告和错误。Revit 之前的版本中程序已经翻译 2011-09-28 18:01:03 · 1342 阅读 · 0 评论 -
Building Coder(Revit 二次开发) - 设置标签类型
Building Coder 链接:http://thebuildingcoder.typepad.com/blog/2010/06/set-tag-type.htmlRevit 二次开发论坛链接:http://revit.5d6d.com/viewthread.php?tid=1292&page=1&extra=#pid1814对设置标签类型这个问题的研究让我有机会重新回顾了翻译 2011-08-26 22:09:35 · 1629 阅读 · 0 评论 -
Building Coder(Revit 二次开发) - 改变元素类型
Building Coder 链接:http://thebuildingcoder.typepad.com/blog/2010/07/change-element-type.htmlRevit 二次开发论坛链接:http://revit.5d6d.com/viewthread.php?tid=1298&extra=这是一个很简单的问题,我们也已经多次涉及,但是从没有单独列出一个翻译 2011-09-01 10:08:55 · 970 阅读 · 0 评论 -
Building Coder(Revit 二次开发) - 失败处理API(下)
Building Coder 链接:Failure API Take TwoRevit 二次开发论坛链接:翻译 Building Coder - 失败处理API(下)错误处理正常情况下,被报告的失败会在事务提交时由 Revit 标准的失败解决 UI 来处理。用户会看到相关信息和可能的处理选项。当然,如果对文档的操作要求对一些特定(或者所有)错误做特殊处理的话,程序员就需要自定义翻译 2011-09-30 14:43:47 · 1988 阅读 · 0 评论 -
Building Coder(Revit 二次开发) - NewFamilyInstance() 重载版本的选择
今天开始恢复中断了三个月的 Building Coder 翻译任务。认真回顾了中断之前的工作和 Jeremy 的帖子,决定从他老人家 2011 年的文章开始,争取在半年内赶上他的更新进度。原文链接:NewFamilyInstance Overloads如大家所知, NewFamilyInstance() 方法是 Revit API 中用于创建族实例的 API,而且它有多个重载的版本翻译 2012-01-19 17:57:46 · 3777 阅读 · 1 评论 -
Building Coder(Revit 二次开发) - 拓扑表面(Toposurface)内部和边界点
原文链接:Toposurface Interior and Boundary Points最近有一个问题给了我实现一个小算法的机会。我一直挺喜欢几何和逻辑分析的,之前实践的机会不多。这次算是让我过了把瘾。提问:我能访问到拓扑表面的点。但是我如何判断它们是内部点还是边界点呢?一个拓扑表面的左下角的边界点:一个拓扑表面的左下角的内部点:我试着遍历所有翻译 2012-02-04 17:22:03 · 2902 阅读 · 1 评论 -
Building Coder(Revit 二次开发) - 可扩展存储处理字典
原文链接:Extensible Storage of a Map我在前面的博文里已经介绍过 Revit 2012 API 中新引入的可扩展存储功能 extensible storage。你还可以在 DevHelp Online 和 Revit 2012 API webcast 找到更多的细节。最近我更新了网络广播上的例程,下面是最新的主函数代码:public Res翻译 2012-02-15 14:27:49 · 1356 阅读 · 0 评论