Dynamo For Revit
极客BIM工作室
软件工程师出身,专注BIM与计算机技术的结合多年。
展开
-
Dynamo For Revit & Revit API: 如何将 Dynamo 脚本包装成一个插件
问题一个很有趣的问题,如何将 Dynamo 脚本包装成一个插件,然后直接在界面上点击调用?方案参考:How to execute Dynamo scripts from a button in the Revit ribbon对应的代码:github 开源using Autodesk.Revit.ApplicationServices;using Autodesk.Revit.Attributes;using Autodesk.Revit.DB;using Autodesk.Revit.UI原创 2020-08-14 20:40:24 · 2901 阅读 · 1 评论 -
Dynamo For Revit:创建平面视图
前言创建平面视图。内容平面视图概念与差异,官方文档。对应的 UI(楼层平面、天花板投影平面、结构平面):节点,输入对应楼层即可创建视图:原创 2020-07-18 15:49:26 · 1188 阅读 · 0 评论 -
Dynamo For Revit: AxonometricView 正交视图
前言本文介绍如何创建正交视图。内容Dynamo 提供了三个节点来创建正交视图。AxonometricView.ByEyePointAndTarget节点 AxonometricView.ByEyePointAndTarget 通过设置摄像机位置 eyePoint,目标位置 target 以及视图名来创建 AxonometricView。上面这个例子的逻辑:选择一个构件,这里实际是一堵墙得到这个构件的几何图形计算出它的包围盒把包围盒最大的点设置为相机位置,最小点设置为目标位置设定视原创 2020-07-18 11:13:27 · 1033 阅读 · 0 评论 -
Dynamo For Revit: 创建面积平面 AreaPlanView.ByLevelAndAreaScheme
前言用节点 AreaPlanView.ByLevelAndAreaScheme 来创建面积平面。内容这个节点是用来创建面积视图的,但它的第二个参数,没有在 Revit > Elements 下面找到,经过研究,Revit API 确实暴露了一种构件叫做 AreaScheme。什么是 AreaScheme?如下图所示,在新建面积平面的时候需要选择的类型,就是 AreaScheme,用户也可以自己新建。可以帮助用户对自己的面积视图进行分类:创建面积平面节点图AreaScheme 可以原创 2020-07-18 09:50:01 · 634 阅读 · 0 评论 -
Dynamo For Revit: List 连缀 和 Level
前言本文介绍 Dynamo 中 List 的连缀和 Level,以及他们在 Design Script 里面的表示形式。内容下面介绍 Dynamo 中 List 的连缀和 Level。连缀最简单的一种情况,连缀形式是自动,对于下面这张图,最短和最长的结果是一样的。把连缀形式改成叉积(cross),会有27个点,3X3X3=27。通过 Design Script,还可以做一些其他的,比如可以指定其中两个参数按照相同的形式进行变化。注意看看 <1> 和 <2> 的位置。原创 2020-06-21 13:46:46 · 1027 阅读 · 0 评论 -
Dynamo For Revit:Python 基础 - library 引用和 UnwrapElement
前言本文介绍 Dynamo For Revit 中的 Python Node 的基础 - library 引用和 UnwrapElement。(主要是我自己经常忘了,还要重新找)内容如何引用普通的 Python 库,以及 Revit API。普通的 Python 库新建一个 Python 节点,内容如下。# Load the Python Standard and DesignScript Librariesimport sysimport clrclr.AddReference('Pro原创 2020-06-17 19:02:56 · 832 阅读 · 0 评论 -
Dynamo For Revit & Revit API: View 隔离图元
前言找到所有连接的构件,把它们都隔离出来。View…::…IsolateElementsTemporary Method原创 2020-06-17 19:01:13 · 643 阅读 · 0 评论 -
Dynamo For Revit: FilledRegion 区域的生成,给模型加个“花园”
前言用类 FilledRegion 创建区域,看看能否用模型加个“花园”。内容脚本的逻辑:选中一系列构件用这些构件的几何图形构件一个包围盒按照比例扩大这个包围盒两个包围盒几何求交,保留下半部分的包围盒找到这个包围盒朝上的面用这个面创建一个花园区域效果:输入输入包括:选择一些模型构件用于生成包围盒区域 FilledRegion 要放置的视图花园的比例 XY选中构件的几何图形:用这些构件的几何图形构件一个包围盒按照比例扩大这个包围盒到这一步的效果:步骤:原创 2020-06-13 21:54:43 · 683 阅读 · 0 评论 -
Dynamo For Revit: 快速体育场造型
前言使用 Dynamo 迅速创建一个体育场造型。内容效果:创建步骤:创建底面椭圆创建顶面椭圆创建中心椭圆得到三个椭圆上的等分点每3个点加上他们的重心,4个点做一个面输入以及各步骤对应节点图输入创建底面椭圆创建顶面椭圆创建中心椭圆得到三个椭圆上的等分点每3个点加上他们的重心,4个点做一个面总图...原创 2020-06-11 20:58:08 · 744 阅读 · 1 评论 -
Dynamo For Revit: Join Geometry 找出模型中和墙相交的构件
前言Revit 2021 加了一些几何求交的节点,刚好可以用它来试试找出模型中的几何相交关系。Revit 中,如果你不移动物体,或者改变物体的可见性,你是很难去发现他们是否是实际上的几何相交,还是仅仅只是空间上有重叠。内容本文以 Revit 默认的建筑样例做为基础,查找和墙相交的构件。具体步骤:过滤得到所有的墙过滤得到有构件相交的墙对于保留下来的墙,显示它的几何图形,同时显示和它相交的构件Revit 模型:那些有几何相交的墙,实际上,数量并不多,不是你看上去相交,他们就和其它构件是相原创 2020-06-02 20:44:46 · 1424 阅读 · 0 评论 -
Dynamo For Revit: AdaptiveComponent 之 ByParametersOnCurveReference 和 ByParametersOnFace
前言平时都是用 AdaptiveComponent.ByPoints 来创建自适应族,很少用AdaptiveComponent.ByParametersOnCurveReference 和 AdaptiveComponent.ByParametersOnFace。这两天被人问及,虽然简单,刚好记录一下。内容AdaptiveComponent.ByParametersOnCurveReference参考:https://github.com/DynamoDS/DynamoRevit/blob/mast原创 2020-06-01 22:56:22 · 829 阅读 · 0 评论 -
Dynamo For Revit & Revit API: Room 房间边界和几何图形
前言本文通过 Dynamo For Revit 和 Revit API 介绍如何获取房间的边界。内容通过 Dynamo 节点,Room.CenterBoundary、Room.CoreBoundary 和 Room.FinishBoundary 可以迅速得到房间的边界。但这三个结果不完全一样。本图对应的是 Revit 官方示例文件中的房间:API 获取边界到底是什么造成了这个差异呢?从 API 梳理一下。Room房间 Room 继承自 SpatialElement, public cl原创 2020-05-30 11:57:34 · 1707 阅读 · 0 评论 -
Dynamo For Revit: TextNote 注释文字
前言本文介绍 Dynamo For Revit 中 TextNote 注释文字相关的节点。内容相关节点:官方例子,https://github.com/DynamoDS/DynamoRevit/blob/master/test/System/Annotations/TextNote.dyn:效果:原创 2020-05-28 20:48:49 · 1512 阅读 · 0 评论 -
Dynamo For Revit: 对单个构件进行图形设定
前言本文介绍如何通过 Dynamo For Revit 来设定单个构件的图形。内容选中这个屋顶,设置它的图形。可以在 Revit 中查看,注意这个节点不能设定是前景的填充,而没有设定背景的填充。效果:填充图案可以通过 All Element Of Category 得到所有 Pattern,或者通过 Type 来得到。表面填充相关节点:线型填充相关节点:...原创 2020-05-26 21:33:42 · 524 阅读 · 0 评论 -
Dynamo For Revit: DividedPath & DividedSurface 分割路径和分割表面
前言本文介绍 Dynamo For Revit 中 DividedPath & DividedSurface 分割路径和分割表面相关的节点。内容分割路径和分割表面都是和体量相关的功能,下面这些都是基于打开一个体量类型的族文件。当然,也可以使用内建体量。DividedPath 分割路径分割路径:有两种创建方式,一种是输入一条线,另一个是输入多条线:DividedPath.ByCurveAndDivisions 和 DividedPath.ByCurvesAndDivisions通过多原创 2020-05-23 08:03:35 · 1130 阅读 · 0 评论 -
Dynamo For Revit:DirectShape & Material 节点
前言本文介绍 DirectShape 和 Material 相关节点。DirectShape 与 Dynamo 几何图形互换可以参考:Dynamo For Revit: 图形转化为 DirectShape内容Revit 中效果总节点图原创 2020-05-21 21:12:22 · 1487 阅读 · 0 评论 -
Dynamo For Revit:CurveElement、DetailCurve 和 ModelCurve
前言本文介绍 CurveElement 与 DetailCurve 相关的节点,实际上就是和模型线对应的节点。另外,Dynamo For Revit: CurveByPoints 这篇文章也是创建模型线。内容创建模型线:DetailCurve.ByCurve,在 Dynamo 里面创建一条线,然后用它作为输入,在 Revit 中创建一条模型线。转化成 reference:CurveElement.ElementCurveReference,这样那些需要用到 reference 的节点就可以使原创 2020-05-17 21:03:05 · 1332 阅读 · 0 评论 -
Dynamo For Revit: CurveByPoints
前言本文介绍如何通过参考点创建线,注意,这个只有在族文件中才能够创建。内容节点接口从这个节点的接口出发,知道它需要输入的参数是:一系列的参考点输出的是否是参考线生成参照点如何去创建参考点呢?直接通过坐标或者通过坐标得到点来生成参考点的坐标点: ReferencePoint.ByCoordinates、ReferencePoint.ByPoint、ReferencePoint.ByPointVectorDistance通过线上的点生成坐标点:ReferencePoint.ByLe原创 2020-05-17 10:41:09 · 1104 阅读 · 0 评论 -
Dynamo For Revit:CurtainSystem 幕墙系统
前言本文介绍幕墙系统相关的节点:内容创建幕墙系统:CurtainSystem.ByFace 和 CurtainSystem.AddCurtainGrid删除幕墙系统:CurtainSystem.RemoveCurtainGrid从下面这个动图可以看到,用来创建幕墙系统的这两个节点,功能几乎是一样的,都只能从体量的一个面上来创建幕墙系统。从这张图中,得到 CurtainSystemType 比较绕,原因在于代码逻辑上的不合理,从下图可以看出,即使直接选中一个幕墙系统,也不能拿到它的Curt原创 2020-05-16 21:00:44 · 895 阅读 · 0 评论 -
Dynamo For Revit: CurtainPanel 幕墙嵌板
前言本文介绍 Dynamo For Revit 幕墙嵌板相关节点。内容打开 Revit 的建筑样例,选中一楼餐厅的朝南的幕墙:用 Select Model Element 节点来选中幕墙用 CurtainPanel.ByElement 得到它的所有的 Curtain Panel,即幕墙嵌板选择其中一块嵌板,找出它的幕墙竖梃,这是有 4 条...原创 2020-05-15 19:46:18 · 911 阅读 · 0 评论 -
DynamoForRevit:Coordinates 项目基点、参考点
前言Revit 项目有基点和坐标点,Dynamo 提供了对应的节点:原创 2020-05-13 22:03:39 · 761 阅读 · 0 评论 -
Dynamo For Revit: 创建图纸 Sheet
前言本文简单分析 Dynamo 对图纸创建功能支持。内容图纸创建有两个节点:Sheet.ByNameNumberTitleBlockAndView 和 v原创 2020-05-03 17:51:26 · 1323 阅读 · 0 评论 -
Dynamo For Revit: 图形转化为 DirectShape
前言可以通过 DirectShape 把 Dynamo的几何图形导入到 Revit,但是可能会出现数据的损失。本文以圆柱体为例。内容在 Dynamo 里面创建一个简单的圆柱体,然后用过节点 DirectShape.ByGeometry 将它导入 Revit。左边是 Dynamo 原生的几何图形,右边是导入 Revit 然后再用 Element.Geometry 从 Revit 中读取几何数据...原创 2020-05-03 15:57:30 · 1516 阅读 · 0 评论 -
Dynamo For Revit:几何图形炸开
前言通过把楼梯的几何图形炸开,对 Revit 几何图形多一点了解。这样的5级台阶,有120个面:输入这个脚本只有一个输入,用来控制面被移动的距离。步骤楼梯几何图形拆成平面计算每个面的中心点计算楼梯整体的几何中心(用面中心点的平均值)以中心点到各个面的中心为方向,按照一定比例移动面楼梯几何图形拆成平面计算每个面的中心点计算楼梯整体的几何中心(用面中心点的平均值)...原创 2020-04-25 20:39:03 · 1311 阅读 · 0 评论 -
Dynamo For Revit: Image 着色与立体化
前言Dynamo 可以到图像并且上色,或者把颜色拿来做其它用处,比如转化成高度。内容从网上搜到这样一张图,想把它导入 Revit。两个目标:把这个图片映射到某个平面用图片的颜色转化成高度,用立体几何的形式创建图片节点图关键节点:读取图片颜色,Image.ReadFromFile 和 Image.PixelsGeometryColor.BySurfaceColors 将颜...原创 2020-04-18 10:40:38 · 639 阅读 · 1 评论 -
Dynamo For Revit:官方如何开发C#节点
前言Revit 2021 发布了10个 Dynamo 新节点,刚好借此机会看一下 Dynamo 是如何开发的。介绍从官网说明,Revit Nodes for Dynamo 2.5,找到提示的 GitHub 入口,最终来到:https://github.com/DynamoDS/DynamoRevit/pull/2454。从这个界面上看到,如果要提交新的 Node,至少需要以下几个部分:...原创 2020-04-12 09:35:46 · 1812 阅读 · 0 评论 -
Dynamo For Revit 2021 新节点: Element Nodes
前言刚刚发布的 Revit 2021,对于 Dynamo 的支持力度似乎比以前大了一些,增加了一些基础的节点。节点介绍参考:适用于 Dynamo 2.5 的 Revit 节点# Autodesk.Revit.DB.HostObject 相关Element.GetHostedElements# Autodesk.Revit.DB.Element 相关Element.SetPinnedS...原创 2020-04-12 02:01:45 · 1318 阅读 · 1 评论 -
Dynamo For Revit: 打造自己的混黏土梯段 Stairs
前言用 Dynamo 迅速创建混黏土梯段 Stairs。步骤为了快速,直接写的脚本,主要是把楼梯的路径和第一个踏步的起始位置确定。效果:楼梯下表面用第一个踏步的起始线段扫略得下表面。效果:楼梯上表面生成踏步的水平线:效果:生成踏步平面:效果:踏步平面往上延伸,生成立方体:效果:几何切割得到混黏土梯段最终效果:节点总图...原创 2020-04-06 21:26:05 · 404 阅读 · 0 评论 -
Dynamo For Revit 几何专题:平面上的线 UV on Surface
前言面有没有维度?不管是曲面还是平面都可以看成是二维的面。平面创建一个竖直的平面,它有两个方向。Curve.ByIsoCurveOnSurface 可以设置 direction 和 parameter,这个方向由这个 Surface 定义的,并不一定是横平竖直的。这里为了方便,才创建这个简单的面用以说明。实际上,direction 即 U 或者 V 方向。parameter 是一个正则化的...原创 2020-04-01 22:13:08 · 978 阅读 · 0 评论 -
Dynamo For Revit 几何专题:概述
前言上周整理了一下 Revit API 的几何库接口,这里再整理一下 Dynamo For Revit 的几何库。和 Revit API 一样,Dynamo For Revit 提供了一套完整的几何库。既然是几何库,那就逃不过这些概念:点、线、面、体。那么,对于任意的几何库,实际上,你要关系的东西逃不过下面的表格,(点 / 线 / 面 / 体)与(点 / 线 / 面 / 体)之间的关系。比...原创 2020-03-29 10:32:30 · 1782 阅读 · 0 评论 -
Dynamo For Revit: 创建墙门窗
前言本文通过 Revit 来创建 Revit 的基本元素,墙、门、窗。步骤为了创建墙、门、窗,还是从模型线出发:选中一条模型线,创建一堵墙,可参考:Dynamo For Revit: 如何通过选中一些模型线,来创建一堵墙找到墙可以放置门和窗的面用 Python Node 来放置门和窗可控制的输入可控参数:门和窗的类型墙的高度墙所在的楼层墙的类型模型线窗或门的UV坐...原创 2020-03-15 17:49:33 · 1727 阅读 · 1 评论 -
Dynamo For Revit: Python 调用 Revit API 之某些不能直接拿到的 property
前言Python 调用 Revit API,发现竟有某些属性死活拿不到。比如,选中一堵墙,得到 WallType,然后去读取它的 Name,发现竟然没有。现象确实是 WallType,但是找不到 Name 属性,但是却可以列出来。确实是 WallType找不到属性所有属性列出 wall.WallType 所有属性,有 Name。原因解决方案直接调用某个具体类的方法,这里是...原创 2020-03-10 20:24:10 · 553 阅读 · 0 评论 -
Dynamo For Revit:房间编号
前言画一条线,然后沿着这条线来对房间进行编号。(前同事也做过类似的操作,好久不见,写个脚本做个纪念。)房间编号效果在这个例子里面采用了样条曲线,实际上多段线或者其它类型的线应该也是没有问题的。这个例子的关键点在于如何对房间从近到远进行排序,虽然从肉眼一下子就能看到房间的位置和顺序,但是对于计算机来说,它是不知道这些信息的,需要你来告诉它。Dynamo 脚本逻辑要完成这个功能:选择一...原创 2020-03-09 07:54:34 · 1358 阅读 · 0 评论 -
Dynamo For Revit: 铺地砖
前言本文介绍如何用 Dynamo 铺地砖,仅仅是演示版,把基本思想梳理一下。地砖效果可以适用于不规则的地块,地砖长和宽可以调整。Dynamo 脚本逻辑要完成这个功能:找到要铺地砖的平面,设定地砖的尺寸找出这个平面的包围盒范围按照地砖尺寸分块,铺满整个在包围盒的平面范围地砖与铺地砖平面求交,得到地砖的位置和形状铺地砖的平面和地砖的尺寸这些都是脚本的输入:平面的包围盒范...原创 2020-03-08 10:21:47 · 2601 阅读 · 1 评论 -
Dynamo For Revit: NurbsCurve
前言三维建模总是逃不过样条曲线,Dynamo支持 NurbsCurve。原创 2020-03-07 18:17:05 · 1589 阅读 · 0 评论 -
Dynamo For Revit: 乐高积木
前言用 Dynamo 做个乐高积木,既然想到了,那么久做吧。如图所示,想要做这种类型的乐高,从几何上面分析,它有两个部分,底板,上面的卡槽,以及下面的卡槽。另外卡槽的数量和底板的大小有关。Dynamo 效果图八个卡槽:28个卡槽:可以控制的输入为了方便调节,在设计 Dynamo 脚本的时候,要想清楚自己想要控制的参数。创建底板根据用户指定的卡槽数和比例,以及高度和比例参...原创 2020-03-07 09:41:15 · 439 阅读 · 0 评论 -
Dynamo For Revit: 设置构件参数和颜色
前言Dynamo 的一个优势就是可以操作 Revit 里面的构件,即 element。这个例子也是源于官方的例子,做了一些修改。效果生成了一系列的构件,并且他们的标记参数就是它们的颜色。步骤创建族实例创建颜色列表设置构件颜色和参数创建族实例创建颜色列表设置构件颜色和参数总图...原创 2020-03-01 16:33:35 · 3683 阅读 · 0 评论 -
Dynamo For Revit: 楼板和框架 Floor and Framing
前言在 Dynamo 官方的例子中,我找到了 Revt_Floor and Framing.dyn。这个例子,创建的楼板,还有用框架把他们联系在一起,颇有点自动化设计的感觉。如果给它足够的参数,真的可以做一个完整的建筑出来。当然,这肯定需要很多建筑设计师和软件工程师来给它调参了。效果图左边的是例子直接输出的结果,右边是我把旋转角度去掉之后的结果。设计思路建筑设计师出身的同事,对 Dyn...原创 2020-03-01 15:48:40 · 862 阅读 · 0 评论 -
Dynamo For Revit: 自适应族做幕墙 Adaptive Component
前言自适应族有着强大的功能,是 Revit 参数化建模一个非常有意思的功能。Dynamo 自然不会忽略这个功能。实际上在那些不规则的幕墙设计中,自适应族有它特殊的优势。自适应族官方的例子: Revit_Adaptive Component Placement.dyn大致步骤:选择三条线 Select Model Element Element.Geometry取每条线上的若干点 C...原创 2020-03-01 10:47:44 · 2523 阅读 · 0 评论 -
Dynamo For Revit: Path of Travel 行进路径
前言使用路线分析来计算从模型中的一个点行进到另一个点的距离和时间。 这是 Revit 在 2020 版本提供的新功能,这种带有半智能的功能也是 Revit 的一个特色。同时,Dynamo 也迅速提供了相应的节点,这确实可以方便实际中的应用,比如防火相关的计算。路线分析官方文档使用行进路径图元,可以分析模型中两个选定点之间的行进距离和时间。在平面视图中,通过选择起点和终点来建立行进路径。...原创 2020-02-23 17:08:15 · 1181 阅读 · 0 评论