Dynamo初学常识梳理(六)-代码块下篇

这几天没怎么更新,先补上之前剩下的Code Block代码块介绍的下部分:

3. 编辑列表

Code Block除了创建列表以外,还可以通过对列表进行提取,合并等操作替代List.Create和List.GetItemAtIndex节点,合并列表如下图所示:

提取列表用到中括号<[ ]>,Code Block的提取方式要比List.GetItemAtIndex方便很多。如下图所示:

4.执行节点命令

Code Block 可以执行大部分节点命令,好处也是使用起来非常的方便。比如Point.ByCoordinates节点,要做一个点,除了用到Point.ByCoordinates节点外,还要单独做三个数值输入节点,相对来说比较麻烦,而用 Code Block 节点就可以比较方便的生成点,如下图所示:

5. 自定义函数命令

Code Block提供了自定义函数的命令,自定义函数有自己的语法规则:第一行要输入def 新函数名字(未知数),第二行开始要用大括号约束内部定义命令,结尾用return返回结果。自定义函数还是需要一点计算机语言知识比较好理解。如下图:

调用上图自定义节点FunctionName的方式:

由于编写自定义函数比较复杂,需要一些编程的知识,所以用到的地方暂时不多。

现在来总结一下Code Block都用到哪些符号:

双引号< “ ” >:输入字符串时用到;

逗号< ,>:输入数组时用来隔开项;

小括号<( )>:创建多维数组时用来隔开每一项;

中括号< [ ] >:用来提取列表中制定项;

大括号< { } >:创建任意列表或自定义函数时使用;

双句号< .. >:创建递增数列组时用来隔开起始值和最终值等;

分号< ; >:每行结尾需加分号表示结束,单独一行自动添加。

当然,还有一种特殊用法,就是将部分程序转换成Code Block,以精简整个程序。

Code Block大概就这些内容吧。后续有想法还会继续添加。用好 Code Block ,工作效率也会大大增加。

另外Dynamo帮助文件中有专门介绍 Code Block 的内容,可以作为参考。

(来源: 的乐趣)

【相关阅读】

Dynamo初学常识梳理(一)——Dynamo安装及操作界面

Dynamo初学常识梳理(二)——Dynamo的图形元素归纳

Dynamo初学常识梳理(三)——节点

Dynamo初学常识梳理(四)——Revit图元

Dynamo初学尝试梳理(五)-代码块上篇

Dynamo初学常识梳理(六)-代码块下篇




Dynamo技巧:如何获取链接模型楼板边界并生成房间?

最近遇上个问题,链接的建筑模型无法正常生成房间,单独画房间分隔倒是可以,但一看这个边界就被吓住了,如下↓


其实面积并不大,用拾取线的方式点选生成房间分隔也不会花很多时间,但还是想弄一个心理上更舒服的方式。毕竟dy搞,因本身对从链接模型直接获取所需的房间边界的方式之前没有尝试过,要花的时间肯定要大于手动(至少在当前的情况下),但为了一劳永逸,以防万一,刚好也有这个时间、契机,那就搞吧~

要做这个事情,需要准备好2个节点包:Rhythm、BimorphNodes

Ps:好多实用的节点包的确基本都是下载量多的,最近dynamo中都没法直接下包了(难受),不知道啥原因。有需要只能百度搜索Dynamo package,去网页下了(哭)
 在找到本例的方式前,走了好多弯路,也发现了一些槽点(没有批判的意思,毕竟每个人解决问题的方式有区别,开发不可能考虑到方方面面,也因此才有了像dy、gh这样的插件,还不能满足实际需要,那就个人再加入编程的东西):
槽点1、当年辛辛苦苦画的楼板边界让revit生成了楼板,dy却不直接把这些线返回给你直接做二次编辑
槽点2、想直接生成房间分隔吗?没有~只有模型线
是的,dy中没有或直接或间接生成房间分隔的方法(也可能是本人目前没发现,以后发现了再来更吧~或者知道的兄弟姐妹来告诉我呀,高手总在黑暗中默默注视…)
 所以把线转换为房间分隔的途径宣告失败,只能“曲线救国”了。焦头烂额之际忽然灵光一闪——除了房间分隔,墙体封闭区域不一样可以放置房间的??(果然有时很明显的方法反而会被忽略)
 好了那么接下来就是步骤了:
1、过滤出链接模型中的楼板

2、将楼板用explode炸开。通过“Element.Geometry”节点将楼板都转换为了dy中的solid实体,solid没有直接提取线的方法,所以将其炸开成面进而提取面的边线


3、过滤出所有楼板中需要的面

4、从面得到线,线生墙

预览最终会生成墙体的线条,可视化的好处就是可以随时直观的查看结果是否是自己最终想要的。调试完成,点运行,墙体生成,可以布置房间了~最后只需把这些墙体隐藏

不过还是很可惜不是房间分隔,虽说土建是链接,但这些为布置房间生成的墙体即使隐藏了也还是实实在在摆在那的,或多或少还是会给其他环节带来一定的麻烦,利弊取舍在个人啦~


本文源自微信公众号:记录学习点滴




Dynamo 教程

 【资源介绍】

资源名称:Dynamo 教程

资源分类:教学视频

其他简介:中文教程

资源大小:5.25GB

【资源截图】

Dynamo 教程

Dynamo 教程

【免责申明】
本站提供的资源下载链接均来自互联网,仅供学习研究之用,不得用于商业,请在24小时内删除!资源版权归原作者及其公司所有,如果你喜欢,请购买正版。




Dynamo自动设置Revit地形颜色

1.我们首先是要从Civil3D里导出地形数据,这里我已经将数据处理成为了CSV文件,我们导入Revit先搞一个地形模型出来,如下:

2.有了我们创建的地形模型之后,之后的事情先交给Dynamo(记得安装Meshtoolk节点包,就是那个Dynamo经典的兔子)了,我们选择创建的地形,将其转换为mesh网格,之后使用Mesh.VertexPositions获取mesh顶点位置,后面的节点介绍大家看截图理解一下

3.我们本次分析有种,一种是按高程分析,另一种是坡度分析。[p=null, 0, left]

之后是Grasshopper的高程分析了,先来张图,看起来gh的效果更绚丽哦,不得不承认gh的Gradient电池强大。以下是电池图




Dynamo软件、教程相关视频及资料

【资源介绍】

资源名称:Dynamo软件、教程相关视频及资料

资源分类:软件、教学视频,文档

其他简介:中文教程

资源大小:553.91MB

【资源下载】

【资源截图】

Dynamo软件、教程相关视频及资料

Dynamo软件、教程相关视频及资料

Dynamo软件、教程相关视频及资料

Dynamo软件、教程相关视频及资料




Dynamo初学尝试梳理(五)-代码块上篇

“学而时习之,不亦说乎”,今天接着来,稍微提高点难度(高手直接忽略就行)。

代码块(Code Block),是dynamo 中可以直接输入DesignScript 的节点。可以通过双击鼠标左键,快速打开Code Block 。

1.作为输入功能

Code Block可以用作输入数值,字符串,列表,公式等功能,一般输入数值比较常用了:

(1)输入数值时不用添加任何符号,直接输入数值即可,好处就是很方便,不用输入Number节点,双击界面任意位置即可调出Code Block节点,如下图:

(2)加双引号可输入字符串,<” “>,如下图:

如上图所示,除了用字母举例以外,我又用了数字“2018.12”以及“88+66”公式作为字符串,字符串不仅仅是字母,还包括数字,符号等很多字符,都可以加双引号<” “>在Code Block节点中表示出来。

(3)输入列表功能,用大括号“{ }”表示,如下图:

每一项之间用逗号隔开,可输入数值,字符串,公式等。

 

(4)作为公式使用:

Dynamo提供了三种实现公式的节点Code Block和Formula和“+”,”-“,”*”,”/”等,相比较而言还是Code Block比较方便。

2. 创建递增或递减数组

这个也是比较常用的功能,Code Block提供了多种创建数组的方式替代Range和Sequence节点,数值之间用两个英文句号表示“..”,如下图所示:

在数值前加“#”,代表数值为列表的项数,如下图所示:

Code Block除创建简单列表外,也可创建多维列表,嵌套列表,用括号<( )>表示,如下图所示:

不同的数组可以有不同的组合,相对比较乱,不过掌握以后,用起来还是比较自如的。

同样的,递减数组,只需把数值对调,起始值大于最终值,就是递减数组了。

另外,需要注意,code block内输入的值需要在英文状态。

这部分内容比较多,今天就先这里这些,太多了不好消化,改天再附上下部分。

(来源:

的乐趣)
【相关阅读】

Dynamo初学常识梳理(一)——Dynamo安装及操作界面

Dynamo初学常识梳理(二)——Dynamo的图形元素归纳

Dynamo初学常识梳理(三)——节点

Dynamo初学常识梳理(四)——Revit图元

Dynamo初学尝试梳理(五)-代码块上篇

Dynamo初学常识梳理(六)-代码块下篇




Dynamo如何创建轴网?使用Dynamo快速创建轴网6部曲

文章源自公众号:五味杂陈and快乐无处不在


在revit学习中,一些重复性的工作会影响工作效率,明明可以十来分钟结束,却要干上几天,这就体现出了编程的好处。Revit有自己的API,对于一些新手来说,Revit提供的SDK安装都有问题,更别说使用Revit API进行编程。随着DYNAMO的诞生,以其可视化编程的形式,块与块之间的趣味链接,上手快,容易学的优势很快赢得了初学者的喜好。接下来,我将使用DYNAMO进行轴网的绘制。

第一步:绘制Excel表格,填写轴网始终点坐标并读取Excel 数据,这步操作想必刚上手的朋友并不陌生。值得注意的一点,Sheetname这个输入参数在Code Block中是加引号的,是字符型参数。

第二步:就是删除没必要Excel数据,得到有用的数据生成轴网。

第三步:得到提取出来的各组数据作为X,Y,Z值,通过获得X,Y,Z值我们来确定我们轴网的相对位置。

第四步:组成起始点的终止点坐标,这样我们可以对起始,终止点进行连接。

第五步:生成轴网。

我们用节点进行轴网的收尾相连。

第六步:将名称参数设置好,即标头圈里面的文字。

最后在Revit中的效果:




Dynamo结构柱怎么建?如何利用Dynamo自动生成“T”字形结构柱?

这篇将介绍如何利用Dynamo自动生成结构柱类型【“T”字形柱】

● 思路

T形柱由8条边组成,有且只有两个顶点(8、3)两侧的顶点(1,7;2,4)的连线的中点(Point1、Point2)位于图形外,且此两点中间只隔两个顶点(1、2)。如下图:

首先,滤出具有八条线的PolyCurve

核心节点:PolyCurve.NumberOfCurves

拾取顶点

核心节点:Curve.StartPoint

顶点排序

核心节点:List.GetItemAtIndex、List.RemoveItemAtIndex

此处无图

顶点隔点连线

核心节点:List.GetItemAtIndex、List.RemoveItemAtIndex

连线取中点

核心节点:Curve.PointAtParameter

以PolyCurve创建Surface

核心节点:Surface.ByPath

判别点是否与Surface相交

核心节点:Geometry.DoesIntersect

滤出有两个点没有与Surface相交的线且无交集

核心节点:List.FilterByBoolMask

值得注意的是:隔点顶点连线的中点在图形外且连线不相交,只有T形。

最后我们就选出了T形的PolyCurve

根据PolyCurve的排序,选取该柱名称,新建T形柱类型。(详上一篇)

核心节点:FamilyType.Duplicate(Clockwork节点包)

T形参数特点

红线未相交的线为宽度

与宽度线平行且最远的线距为深度

宽度相交的线分别为a、a2

与a线相交的且排除宽度线的线为b

首先获取宽度线,并写入参数值【宽度】

核心节点:Geometry.DoesIntersect、Element.SetParameterByName

获取与宽度线平行的线

核心节点:Vector.IsParallel

获取与宽度线最远的线的距离和线长,并写入参数值【深度】【a1】

核心节点:Geometry.DistanceTo、Element.SetParameterByName

获取与宽度线相交的线的长度,并写入参数值【a】【a2】

核心节点:Element.SetParameterByName

取上一个步骤其中一根线【a】,获取与其相交的线,并排除宽度线,将其长度写入参数值【b】

核心节点:Geometry.DoesIntersect


来源:玖辰建筑科技。

作者:黎笑尘




Dynamo如何定位?Dynamo获取族参数与墙定位线

    Revit中的族参数包括以下几大类;项目参数,全局参数,实例参数,类型参数,共享参数,报告参数等。可能对初学者来说这些参数都是傻傻分不清楚的。今天小编就为大家介绍两个最简单最常用的参数,实例参数和类型参数,记住出现在属性面板下的都是实例参数,出现在编辑类型里面的参数都是类型参数。

    如下图:

    dynamo获取族参数:

    1、获取族实例参数,这里小编以结构框架为例。通过Categories获取所有的类别,使用AllElementsofCategory节点获取所有图元,最后通过Element.GetParameterValueByName节点获取图元的指定参数。这里小编获取了梁的4个实例参数。

    如图:

    2、获取族类型参数,小编介绍两种方法:

    这里我先用dynamo自带的节点来为大家演示,我就以门窗家具为例,分别获取他们的宽度高度材质。先创建需要获取的的类型名称,然后通过Category.ByName节点获取各类型,再AllElementsofCategory节点获取类型中的图元,再用Element.ElementType节点获取所有的族参数。最后通过Element.GetParameterValueByName节点按给定的名称获取相应的类型参数。

    如图:

    通过Archi-lab里面的element.Type节点获取,

    如图:

    dynamo设置墙定位线:

    我们知道墙体定位线包括以下六种:墙中心线、核心层中心线、面层面:外部、面层面:内部、核心面:外部、核心面:内部。

    当我们以墙中心线为定位线绘制一道墙时,我们通过dynamo获取他的定位线,获取到的结果为“0”,当我们将定位线改为“核心面:外部”时,获取到的结果为“4”.

    如图:

    通过上面的操作,我们明白墙定位线在dynamo中是通过数字来表达的,我们知道计算机的数是从0开始数的,所以六种定位线在dynamo中表示为0~5的数值。如果我们要将墙体的定位线设置为“面层面:外部”应该怎样做啦?我们直接通过Element.SetParameterByName节点,设置墙的定位线,将需要设置的参数输入为“2”即可。




如何升级Dynamo版本?Revit 2020更新高版本Dynamo

Revit 2020默认集成Dynamo2.1。当我们想要升级Dynamo版本时,需要手动下载Dynamo CoreRuntime安装。

1

去Dynamo官方网站:https://dynamobim.org/下载DynamoCoreRuntime,如果下载网速较慢需要梯子。

笔者测试了2.6版本可以正常使用,其他自行测试

2

将下载的DynamoCore解压在任一文件夹(本次以桌面为例)

然后进入Revit2020安装目录,找到addins文件夹下的Dynamo For Revit文件夹中的Revit目录,并将其复制到下载解压的DynamoCore目录中。

最后将DynamoFor Revit目录删除(最好先备份一下以防更新失败)

3

新建text文件,名字可以任意取(本次以DynamoCore2.6.addin为例),将后缀改为.addin,将以下代码复制其中。

代码来自Dynamo官方项目:https://github.com/DynamoDS/DynamoRevit

<?xml version=”1.0″ encoding=”utf-8″ standalone=”no”?>

<RevitAddIns>

  <AddIn Type=”Application”>

    <Name>Dynamo For Revit</Name>

    <Assembly>”D:DynamoRevitinAnyCPUDebugRevitDynamoRevitDS.dll”</Assembly>

    <AddInId>8D83C886-B739-4ACD-A9DB-1BC78F315B2B</AddInId>

    <FullClassName>Dynamo.Applications.DynamoRevitApp</FullClassName>

    <VendorId>ADSK</VendorId>

    <VendorDescription>Dynamo</VendorDescription>

  </AddIn>

</RevitAddIns>

然后复制DynamoCore中的Revit文件夹路径并替换。

4

将第三步的addin文件放到Revit的插件路径(找不到的把隐藏目录打开)。

5

打开Revit,启动Dynamo,版本已经更新。

注意:可以将下载的DynamoCore放在任何路径包括Revit安装目录,注意更新下addin文件中的路径就行。

来源:hopesy




Dynamo7.0免费下载(revit版GH)(revit参数化)

DY是Dynamo的简称,Dynamo for Revit,是一款基于Revit的可视参数化插件,类似于Grasshopper,分享几张DY图片:

有自己做的,也有AU工程师做的,总之不逊色于GH,大家get一下~

接下来,RY是Case发布的Rynamo,是Rhino与Dynamo数据互换的插件,基于Dynamo,可将RH模型导入DY,也可将DY返写入RH。

Dynamo for Revit
是一款基于Revit的可视参数化插件,适合喜欢钻研的技术宅学习。附上最新的DY0.7.0下载地址. 一起学习才有乐趣~你们说呢……


百度云盘下载地址:

此隐藏内容仅限VIP查看升级VIP




使用Dynamo的幕墙系统时间表(系统系列)[系统面板(上釉)]

现在使用dynamo,我们可以制造任何形状的花式。在此视频中,我们将演示如何展开属于revit系统系列的幕墙系统系列,然后进行调度。

https://youtu.be/6UuZs1gx4Eo




Dynamo房间面积图(实时更新)

在本教程中,您将学习如何使用Revit中的房间数据在excel中创建实时图表。




Dynamo中ModelText ByTextSketchPlaneAndPosition节点的示例

在此视频中,我们将向您展示如何在Dynamo中使用“ ModelText ByTextSketchPlaneAndPosition”节点。下载

https://youtu.be/VpkcWu8tQjo




Dynamo初学常识梳理(二)——Dynamo的图形元素归纳

今天我们接着整理笔记,把基础知识打牢,后面才能一点点稳步提升。

一、Dynamo中的几何图元

几何图元(Geometry):与数字、字符不同,但也是数据(Data)的一种。它是由形状(Shape),尺寸(Size),空间位置(Position)构成的大量数据(Data)。

1.点————>2.线————>3.面————>4.体————>

二、向量、基准面、坐标系

向量(Vectors)、基准面(Planes)、坐标系(Coordinate Systems)

三、点、线

点(Points)、线(Curves)

四、曲面

曲面(Surfaces、NURBS Surfaces(样条曲面))

五、实体及其布尔运算

六、网格

网格(Meshes)

七、数据结构

数据可以是:

实数(0,100,3.1415,-19);

字符(hello world,你好,美女);

各类变量(墙高,河长,半径);

几何图元(圆形,球体,曲面);

数组(1,2,3,4,5……,A,B,C,D,E……,a,b,c,d,e……)。

还可以是空值(null)。

Dynamo中的数据都是存放在List数列中,就像是其他编程语言中的数组,可以是一维、二维、三维……

以上内容,官方文档里基本都有介绍,只是略微整理,分享给大家。

这部分内容比较晦涩,需要在实践中去体会。

并且这些都是基础知识,需要熟记于心,才能在之后的应用过程中,信手拈来。

(来源:
BIM的乐趣)

【相关阅读】

Dynamo初学常识梳理(一)——Dynamo安装及操作界面

Dynamo初学常识梳理(二)——Dynamo的图形元素归纳

Dynamo初学常识梳理(三)——节点

Dynamo初学常识梳理(四)——Revit图元

Dynamo初学尝试梳理(五)-代码块上篇

Dynamo初学常识梳理(六)-代码块下篇




Dynamo是什么插件?为什么设计者对Dynamo倍加青睐?

Dynamo软件本质上就是Revit的一个参数化插件,主要用来做测量、数据分析和批量化处理。

Dynamo可单独使用,尤其适于做简单的桥梁隧道设计等。设计者可以利用Dynamo快速实现三维设计的工作流程、驱动模型参数和数据库。Dynamo作为Revit的插件,始终围绕着“更方便快捷的实现Revit功能“这一理念展开的,它作为Revit建模能力的拓展,实现了BIM模型在设计、模拟、实现、分析的功能。设计者可以利用Dynamo批量化处理的功能来执行给定的任务:可以通过编写代码来得到我们需要的(而不是Revit给出的现成的)设计模块,来自主开展高难度的建模工作,后期有需要也可以通过更改设定参数来快速地变更模型;另外,还可以利用Dynamo软件来实现建筑信息的抓取和分析,环境分析、受力分析等。Dynamo可视化编程工具很适合不太会程序开发的设计人员,它为设计人员提供了人性化的图形界面,以更简单的对话形式访问RevitAPI,而不必思考如何编写代码,类似于小时候玩的“搭积木”,根据会话界面的引导程序设计,仅用几根线就可以把不同的功能节点组合到一起来实现设计者所需的功能。如今这种方便快捷的而设计方式在设计者中倍加青睐,大部分设计者会同时利用Revit和Dynamo进行桥梁的结构设计与建模。




Dynamo的基础任务图示BIM and Integrated Design

Dynamo的基础任务图示BIM and Integrated Designhttps://parabimblog.blogspot.com/

演示了dynamo最基础的十个任务,文末可下载源文件,初学者必备。




Dynamo教程:Dynamo中的Function 节点怎么用?

Dynamo 有几个关于 Function 的节点:

在使用这些节点之前,我们要先理解什么是 Dynamo 中的 Function。

理解 Function

在很多编程语言中,都用 Function 来定义函数。编程函数是能实现预定义功能的代码块,可以包含不同数量的输入参数。Dynamo 中的大部分节点都是经过 UI 包装后的视觉样式,其本质是通过 DesignScript 定义的函数,即 Function。

对于带输入参数的节点

当所有输入端都收到明确的值(含默认值)时,将执行函数并输出结果:

* 上方的节点可以描述为,有一个函数 Function(value1, value2),作用是返回两个数字中较大的值。当 value1 = 5,value2 = 10 时,执行 Function(5, 10),输出结果为 10。

如果不满足上一条件,节点还有输出吗?

有,输出 Function

* 上方两个节点都输出 Function,但其实两个函数有所区别。1号节点已经为 value1 赋值,因此value1 会作为已知变量存储在函数内部,节点输出 Function(value2)。而2号节点未定义任何输入,故输出原函数:Function(value1, value2)。

* 其他节点也类似,如果输出预览显示为 Function,就根据输入端的赋值情况来确定输出函数的结构。

节点:Function Apply

描述:将参数应用到函数

输入端 function:用于接收函数

输入端 argument0:用于接收输入参数,参数数量需和函数所需参数数量一致

* 上方分别将对应数值应用到函数,其结果和直接使用节点运算是一样的。正常情况也没必要在这时使用该节点。

节点:Function Compose

描述:将多个函数组合成一个复合函数

输入端 function0:需要组合的函数

* 上方定义了一个复合函数,运行时先将 y = 3 应用到 function2,再将function2 的执行结果(4)作为输入参数传递到 function1 ,如此执行到最后,将 function0 的结果输出为 result = 6。

节点:List.Map

描述:将列表中的元素逐个应用到函数,并由结果组成新的列表

输入端 list:参数列表

输入端 function:待执行函数

由于 Dynamo 能够自动枚举列表,也可以使用以下节点达到同样效果:

节点:List.GroupByFunction

描述:先将列表元素应用到函数,再根据函数结果对原列表分组

输入端 list:待分组列表

输入端 groupFunction:函数

最终将相同函数结果所对应的列表项放到一个组,拆解过程如下:

节点:List.SortByFunction

描述:先将列表元素应用到函数,再根据函数结果对原列表排序

输入端 list:待排序列表

输入端 sortFunction:函数

最终根据函数结果对原列表排序,拆解过程如下:

本文源自微信公众号:BIMExp

作者: leoskudos




DynamoPrimer解析之ARCH-Customizing-BaseFile(上)

1、这个文件是为了在模型中指定的位置放置自适应构件组成的屋顶,首先需要确定自适应构件各个定位点的位置。通过节点 Edge选择模型的边,这两条边是图中屋顶位置的长边。

2、通过节点Surface.ByLoft生成一个曲面作为初始的定位曲面,生成该曲面需要两条线作为依据,即将第一步中拾取的两条线先通过节点List.存放进一个列表,然后输入节点Surface.ByLoft的输入端crossSections。

3、有了曲面之后,我们想在曲面上确定出一些定位点。节点Surface.PointAtParameter能够依据曲面的UV坐标确定出点的位置。输入端surface需要一个曲面,图中输入的曲面是上一步所生成的曲面。输入端u和输入端v分别输入U方向和V方向的坐标值,这两个坐标值都是处于区间[0, 1]当中。

4、接着我们需要获取这些定位点的UV坐标,获取UV坐标是为了根据这些坐标值确定点的移动距离。节点Surface.UVParameterAtPoint有两个输入端,输入端surface输入一个曲面,输入端point输入曲面上的点,最终输出的结果就是点在曲面上的UV坐标。

5、通过代码块节点输入以下公式“Math.Sin(u*180)*Math.Sin(v*180)*w”,其中Math.Sin表示调用正弦函数,函数的内部就是函数的输入值,参数w可以控制最终结果在Z方向的高度。节点UV.U和节点UV.V的作用是获取UV坐标中U和V两个方向的数值,然后输入代码块中。最后通过节点Geometry.Translate将原本位于平面上的各个点向上移动复制。




Dynamo是什么?Dynamo简介及输入节点介绍与应用

Dynamo是一门简易的可视化编程语言,Revit自引入Dynamo大幅增加了Revit的功能,例如利用Dynamo在Revit空间中定义点,后利用Dynamo放置自适应构建,可批量生成,也可生成异形构件。使用将左侧的节点拖动到空白处后用线连接即可

Dynamo内置了很多节点大致分为8类:

Analyze(分析节点)

BuidtIn(内置节点)

Core(核心节点)

Display(显示节点)

Geometry(几何图形节点)

Office(办公软件节点)

Operator(运算节点)

Revit(Revit相关节点)(从Revit里打开Dynamo才会显示单独打开不会出现该模块)        

常用输入节点介绍:

Number(数值)输入节点:他的作用是定义一个数值变量,填入数值可由接口传给下一节点。

Number Slider(数字滑块)输入节点:可以定义最大值最小值和步长,随着自己移动滑块,从最小值按步长到最大值之间,每滑动一次生成一个数传给下一节点。

String(字符串)输入节点:和number节点类似,定义一个字符串,传给下一节点。

使用输入节点、Point.ByCoordinates(通过三个坐标数值X,Y,Z创建一个点)与Line.ByStartPointAndEndPoint(根据起点和终点坐标绘制直线)绘制一条直线

使用输入节点、Point.ByCoordinates(通过三个坐标数值X,Y,Z创建一个点)与Circle.ByCenterPointRadius(通过圆心与半径在平面生产圆)

 

文章源自公众号:数字BIM




如何使用Dynamo创建机电项目模板(一)

# 目的
通过Dynamo和Excel相结合的方式,自动创建Revit的机电模板文件中符合项目要求的机电系统类型。

# 条件准备
项目所需的各机电系统列表:
要生成的系统类型的命名列表系统类型生成所基于的Revit类别系统类型相关的参数集合
# 软件版本
Dynamo 1.2.1
Revit 2016

# 背景问题
不像建筑、结构专业的基于构件的建模模式,机电专业更强调的是按照各个不同功能创建系统。如:采暖水系统、空调水系统、通风系统、给水排水系统、消防喷洒系统、强电(桥架)系统、弱电(桥架、线管)系统、自动控制系统等。在Revit软件中,机电系统类型大致上分管道系统、风管(机械)系统、电缆桥架系统等。在每个族类型下预设了部分族类别,如:送风、回风、排风、家用热水、家用回水、湿式消防系统等,如此分类主要是因其内部设定的设计计算计算方法的不同。

在进行前期项目模板准备时,需要按照一定的规则创建不同类别的系统,使其能满足机电专业设计中常规的系统划分和命名的习惯和要求。Revit中自带的系统类型和实际项目中系统的分类的对应关系如下:

Revit中的族类别
实际项目中的系统分类
送风送风、新风、补风、人防送风系统回风回风系统排风排风、排烟系统循环供水采暖供水、空调供水循环回水采暖回水、空调回水家用冷水市政给水卫生设备生活排水
可以看出,上表是一个一对多的映射集合。和我们通常项目中熟识的系统还有一定的差距(特别是传统的CAD设计平台),需要在项目前期建立一套符合我们设计分类和命名习惯的模板。
本方法生成的系统主要指风系统和水系统,暂不包括电缆桥架系统的生成方法。在实际BIM项目,特别是目前应用较多的管网综合类型的项目中,常常出现的问题是:不同的项目中机电系统的数量和命名一般都不一致,临时修改项目模板会占用较长的前期准备时间,并且经常会漏项;如果不修改项目模板或者模板文件修改不彻底,往往会对项目中后期的质量管理造成很大影响,更不用提想把模型应用于后面的施工、造价、运维等阶段的可行性了。

为了更加方便项目管理,提高前期准备的效率和正确性,我们采用半自动化的方法来完成该任务。即:Dynamo+Excel的组合方法。这也是Dynamo在实际项目中最佳的应用方法之一。

# 主要流程

下面简述机电系统的创建流程:
## 1.在Excel中建立自动生成项目类型所需的数据集
其中包括,建立项目所需的各个机电类型的系统列表及其与Revit系统类型的对应关系。整理和各个机电类型相关的需要添加和修改的参数信息,如系统缩写、系统类型的注释说明等信息。
## 2.Dynamo生成项目所需的机电类型
2.1读取Excel中建立好的数据集
2.2 将数据集中的参数按照Revit中的系统类型进行分组

2.3 分类检出各个系统类型

2.4 复制Revit原始系统族类别

2.5 为相关参数赋值

# 实现成果对于大型机电项目来说,整个建筑内可能会有十几个甚至二三十个系统需要分别定义。按照上述流程,项目负责人只需在Excel表格中完整统一的建立一套系统表格,即可利用Dynamo的自动化功能一次性准确无误地批量生成全部系统类型。初步估计,自动生成系统类型的时间仅仅是手动生成操作耗时的四分之一,甚至更少
下图为最终实现的效果。




Dynamo如何填色?用Dynamo给每个房间净高填色

来源:个人Bim学习

1.revit放置房间

2.设置填色方案,按照房间净高设置不同的颜色。

3.首先筛选出所有处于标高1和标高2之间的风管。

4.从上一步挑选出的风管进一步挑选出所选房间内的风管。

5.按照上诉方法挑选出所选房间内所有的水管和桥架并合并到一起。

6.房间内的管线很多,可能会存在立管,房间内净高计算要排除立管,不然房间内的净高可能会得到0,此步骤为筛选掉立管。

7.然后把计算上面所筛选出的管线组合一起的solid和xy平面的最近点,最近点的Z坐标减去房间所在楼层标高即可得出房间的净高。

8.使用上面步骤得到的房间净高给房间的名称和净高。

9.选择想要填色的房间运行程序即可清晰的看到房间的净高。

结尾)每一滴水都折射出一个多彩的世界,每一双眼睛都嵌进一个多彩的世界,每一条泛着清丽的旋律的小溪都闪烁着美的光辉。不要空叹人世的无奈,且用美丽的心情来看待人世的繁华多彩,细细品味那无处不在的美吧!




利用Dynamo提高Revit工作效率的十个小程序(纯干货)

Dynamo案例百解——简单实用的Dynamo图文教程已经基本完成了!有兴趣小伙伴,可以加我微信,进行购买哦~

        经常有群里的小伙伴问我一个问题——我很想学Dynamo,但是不知道该做些什么,也不知道该从哪里开始学起。确实是如此,Dynamo能做很多事情,但是有时候很难开始。

我也不知道该如何告诉你去学习它,但是我可以分享一些经验,告诉你它可以做什么,有可能对你有用,也有可能不是你想要的,但是Dynamo确实是执行Revit繁琐任务的一种很好的方法,它可以让你更高效。

鉴于此,我梳理了10个有关使用Dynamo轻松实现自动化的工作流示例,希望能让你知道什么是可以轻松实现自动化的。

(PS:本次文章不是教程,只是分享一些小案例,购买了Dynamo案例百解的小伙伴,可以到教程里下载案例文件)

本次文章基于Revit2020和Dynamo2.3,用到的packages如下:

            archi-lab

            Clockwork

            Lunchbox

            Rhythm

            BimorphNodes MEPover

接下来进入正题,相信以下十个方法,可以帮助你在Revit中节省一些时间:

利用Dynamo提高Revit工作效率的十个小程序(纯干货)
1、根据Excel数据,创建楼层标高

        这个脚本,是从Excel中读取楼层名称和对应的高程,然后根据此信息,快速创建楼层标高。当你开始一个新项目的时候,这是一个不错的脚本。

核心节点:Level.ByElevationAndName

利用Dynamo提高Revit工作效率的十个小程序(纯干货)

        完整截图:

利用Dynamo提高Revit工作效率的十个小程序(纯干货)

利用Dynamo提高Revit工作效率的十个小程序(纯干货)
2、简单计算总建筑面积和容积率

        此脚本收集红线区域内的所有建筑面积,然后按楼层汇总计算,最后计算总建筑面积。接下来读取建筑红线,并计算红线内区域面积,之后计算容积率:

利用Dynamo提高Revit工作效率的十个小程序(纯干货)

利用Dynamo提高Revit工作效率的十个小程序(纯干货)
3、将族实例和类型参数值导出的Excel

        此脚本可以导出所选族的每个实例和类型的参数值并写入Excel。当你需要生成一些族信息表格的时候,这是一个很好用的脚本。

利用Dynamo提高Revit工作效率的十个小程序(纯干货)

利用Dynamo提高Revit工作效率的十个小程序(纯干货)
4、自动标注轴网尺寸

        此脚本会自动根据视图中绘制的曲线,进行轴网尺寸标注,无需手动单击每个轴网,此脚本可以在几秒钟内完成轴网尺寸标注。

利用Dynamo提高Revit工作效率的十个小程序(纯干货)

利用Dynamo提高Revit工作效率的十个小程序(纯干货)
5、在多张图纸上放置图例

        需要将图例放在一堆图纸上,但是不想手动放置?使用这个脚本,就能解决问题。只需要选择图纸范围,要添加的图例和插入点,然后交给Dynamo即可!

利用Dynamo提高Revit工作效率的十个小程序(纯干货)

利用Dynamo提高Revit工作效率的十个小程序(纯干货)
6、按类型计算墙体长度

        需要知道每种类型的墙有多少?每种类型的总长度如何?使用这个简单脚本,可以快速获取模型中使用的所有类型的墙,然后输出每种类型的总数和总长度。

利用Dynamo提高Revit工作效率的十个小程序(纯干货)

利用Dynamo提高Revit工作效率的十个小程序(纯干货)
7、停车位编号

        这是一个很实用的脚本,很多教程里都讲过,当你需要重新调整停车位编号的时候,你才会感觉到Revit的痛苦。幸运的是,这个脚本使它容易多了。只需要绘制一条样条曲线,然后指定起始编号。Dynamo将车位按正确的顺序排列,然后编号。

利用Dynamo提高Revit工作效率的十个小程序(纯干货)

这里就套用我教程里带UI的那个截图了,不再重新弄了:

利用Dynamo提高Revit工作效率的十个小程序(纯干货)

利用Dynamo提高Revit工作效率的十个小程序(纯干货)
8、为视图创建图纸

        此脚本可以为视图创建图纸,然后将这些视图放在对应的图纸上。当然需要快速查看一组视图或图纸集时,它非常有用。

利用Dynamo提高Revit工作效率的十个小程序(纯干货)

利用Dynamo提高Revit工作效率的十个小程序(纯干货)
9、批量升级Revit模型

        每年中的那段时间,Revit升级虽然带来了很多新功能,但这也意味着你需要升级你的项目文件和族文件。此脚本使升级这件事变得轻而易举。首先,制作一个族库副本,接下来,选择要在Dynamo中升级的文件夹,单机运行,然后坐下来喝杯茶。Dynamo将打开每个族文件,将其升级到新版本后,再保存该文件。

利用Dynamo提高Revit工作效率的十个小程序(纯干货)

注:这里用Rhythm里的节点,也可以用Orchid里的节点,参考之前的文章:Dynamo批量分离中心文件并另存到指定目录

利用Dynamo提高Revit工作效率的十个小程序(纯干货)
10、根据cad曲线创建管道

        CAD管道翻模?这个脚本很容易实现。将DWG文件导入Revit模型,然后运行脚本,它将获取指定的线型生成指定的管道类型。并且你可以轻松的修改脚本,生成不同的管道。

利用Dynamo提高Revit工作效率的十个小程序(纯干货)

利用Dynamo提高Revit工作效率的十个小程序(纯干货)

        好了,今天要分享的就这些,准备好开始使用Dynamo来提高Revit工作效率了吗?可以购买我的语雀图文教程——Dynamo案例百解——简单实用的Dynamo图文教程,你可以看到更多关于Dynamo的案例。

当然了,小伙伴们如果有其他的应用方向,欢迎留言一起讨论哦~~

本公众号还有其他Dynamo案例教程:

一、Dynamo批量将房间名称转换为模型文字

二、Dynamo一键清理Revit中未放置的房间和多余的房间
三、最短路径——通过Dynamo批量创建行进路线
四、通过Dynamo批量打印PDF图纸
五、Dynamo批量分离中心文件并另存到指定目录
六、Dynamo读取cad图快坐标,匹配地形种树
七、Dynamo自动创建门窗详图
八、批量删除不需要过滤器
九、根据Excel创建管道系统及材质
十、墨西哥 jardines de 餐厅竹框架柱Dynamo建模思路
十一、利用Dynamo批量为阳台窗添加栏杆

原文始发于微信公众号(BIM的乐趣):利用Dynamo提高Revit工作效率的十个小程序(纯干货)




Dynamo怎么用?利用Dynamo参数化自动排砖的方法

    排砖是建筑行业中花费时间最多的工程,如何提高排砖效率是众多砌体工程中需要考虑的项目。而在BIM技术的帮助下,我们可以通过自动排砖,提高墙体质量,稳定施工的进行,提高施工效率。接下来就让我们一起来看看如何利用软件来进行自动排砖。

    1、方法介绍

    用Revit建模时,在不依赖插件的情况下对砌体结构进行二次深化是比较复杂和繁琐的,本文介绍如何利用Dynamo(以下简称Dy)编程快速的进行常见砌体墙的排砖深化设计,该方法具有参数化、自动化的特点。

    在Dy中选择需要进行二次深化的墙体,并且加载砌块族。可利用Excel或者在Revit中定义砌块尺寸,并且在Dy中读取。在选取完墙体后提取出墙体的6个面并根据其法向向量确定墙体的底面从而进一步提取出底面的轮廓线。

    图1选取轮廓线

    2、操作方法

    然后再根据提取出来的轮廓线计算出墙体角度。由于Dy的功能限制只能利用其中自带的PythonScript节点,利用Python语言进行简单的数学运算,推算出墙体平面角度。

    图2PythonScript节点

    确定好角度以后接下来再根据上面确定的轮廓线确定砌块的起始点。如果墙体为非垂直布置先根据长度选择出底面轮廓线的长边再根据两个长边中点的Y值确定出墙体的下侧边缘线。如果墙体为垂直布置,则根据长边中点的X值选择左侧边缘线。可以利用python进行下数据筛选。

    图3根据长边确定插入参照线

    接下来找出边缘线的起点和中点并定义砌块间的灰缝厚度。本案例的砌块尺寸和灰缝厚度是用Excel控制的。所以在Dy中引用了Execl的数据。

    图4读取Excel数据

    本案例设定的为奇数排砌块以墙的左侧端点开始砌筑,偶数排在奇数排左侧端点砌块的一半处开始砌筑。奇数排砌块的点的分布规律为“左侧端点+砌块长度+灰缝厚度”但由于在端点处需要减去一块砖的长度。这样的设置是为了防止在最后一个插入点距墙的端点的距离小于砌块长度导致最后一个砌块超出墙体。

    利用Curve.Extend模块设定了插入点的起始点到插入点终点的长度,利用Curve.PointsAtSegmentLengthFromPoint节点,每个点的间隔按照“砌块长度+灰缝厚度”进行排布,排布之后再根据墙体底面的Z值和墙体的“无连接高度”再根据“砌块高度+灰缝厚度”进行竖向排列。偶数排下面就不在赘述。

    注:这里要注意奇数排和偶数排之前的间隔关系。上面所说的砌块均为标准砌块。

    图5确定插入点

    Revit模型中插入好砌块族,然后根据Excel提供的砌块尺寸对砌块族的参数进行定义。这里面我从Dy的服务器里面下载了“Clockwork”节点包,调用了里面“FamilyType.Duplicate”节点。这个节点的功能跟Revit中编辑类型内的复制功能相同。

    根据砌块的尺寸,将数值转换成String,然后对通多Duplicate命令复制的族进行重命名。再根据砌块的尺寸,通过Element.SetParameterByName对构件赋予参数值。

    然后根据插入点放置砌块族,我们之前算出了墙体的角度。然后再根据墙体的角度旋转所插入的族。这样标准砌块的排布就可以在模型中自动生成了。

    图6在Revit中插入标准砌块效果

    下一步就是需要把空白区域用非标砌块补齐。以偶数排为例,墙体左侧空白处起点为墙体的左侧端点。Z值与偶数排的Z值相同。然后生成补齐墙体左侧的插入点。砌块长度为左侧端点到“第一个砌块起点的长度-灰缝厚度”。宽度和高度与标准砌块相同。

    墙体右侧空白区域非标砌块的插入点为,偶数排最后一个砌块的插入点再向右侧端点处延伸“标准砌块长度+灰缝厚度”,Z值与偶数排相同。砌块长度为插入点到端点的距离,宽度与标准砌块相同。

    确定好各个点的位置以及非标砌块的尺寸后根据之前讲述的方法插入砌块族即可。奇数排方法相同,不再赘述。

    图7参数化自动生成的砌体墙体

    3、方法总结

    利用Dynamo进行砌体结构的二次深化。其主要思路就是寻找出起始点,然后根据砌块的尺寸和灰缝的厚度进行排列插入点,再根据插入点放置族。然后再根据墙体的角度对砌块进行旋转。

    本案例也有很多不足之处。例如是否有腰梁、马牙搓等等。但是也能大大减少工作人员的一部分工作量。




Dynamo制作体量幕墙表皮

第一步,继续上次课程的文件,我们选择生成实体,然后来获取实体的表皮:

(1) 拓扑表面

(2)通过点取列表内的项,我们得知,列表的第三项是我们所需要的表皮,所以我们通过列表处理,获取这一项。

(注:列表的起始索引是“0”,所以我们所需的第三项索引是“2”)

也可以利用Code Block,获取所需表面:

第二步,划分表皮网格

前面的教程,我们详细讲解过一步一步划分幕墙网格,这次,我们简单讲下Lunchbox,里面几个可以快速划分表皮网格的节点:

(类似节点有很多,这里就不一一赘述了,只选取其中一个基本网格讲解)

利用Panel.PanelQuad(四方形的格子)节点,通过输入surface和U、V网格的数量,生成表皮网格划分:

由上图可以看出,生成得内容有嵌板列表和点列表两个,可以根据自己的需求使用。

(注:这里U,V的数量是根据设计需求输入的,值越大,软件运行起来也就越慢)

第三步:放置自适应族(接下来的操作和之前的教程,操作是基本一致的了)

这里有个小插曲,我们之前做的体量,为了运行速度,输入的值都比较小,但是我没有重新制作自适应族,直接把前几次教程的族拿来用了,所以,我们在划分网格前,先把上篇文章创建的体量,放大1000倍,然后继续我们放置族的操作

选择我们创建的自适应族,点击运行,就有了如下效果:

放大一点

是不是以为到这里就完事儿了,接下来咱们拓展一下:

思考:如何获取划分完网格的边线呢?

(1)要获取网格的每一条线,我们先要提取出每一个网格:

(2)将列表拍平,然后重新生成一个列表:

(3)通过Surface.PerimeterCurves获取曲面边界,然后重新生成列表就好了:

来源微信公众号: 的乐趣




Dynamo有哪些应用?基于BIM的Dynamo支持高效的架构设计交付

    在过去的十年间,建筑设计事务所BohlinCywinskiJackson里的早期建筑师发现了通过BIM软件克服设计挑战的新方式。这些建筑师们将他们的设计载入AutodeskRevit的BIM工作流中。今天,Dynamo软件在这一过程中起到了主导作用。

    Dynamo,这一设计师的可视化编程工具帮助BohlinCywinskiJackson协调项目的所有环节,并在不用完全重建的情况下,瞬间改变这些环节。BohlinCywinskiJackson事务所的高级副总建筑师NickSnyder说到:“你可以将设计视作一个迭代的过程,而且比以前更流畅。通过Dynamo,我们可以以一个循环的方式来整合并更新我们的设计,这也是更符合建筑师们思考的一种方式。”

    Dynamo让设计师建立视觉逻辑来探索参数化的概念设计,并自动化各类任务。作为Revit的延展,Dynamo使得BIM的运算设计成为可能。通过复杂设计,并基于一系列已定义的规则而进行快速迭代,建筑师可以快速开展项目。

    BohlinCywinskiJackson的项目运营经理GabeHodge说到:“这有点像定格动画片。拍一张照片,调整,然后再拍另外一张。过去,这个过程很耗时。”

    Dynamo也能兼顾省时的协作。2014年,BohlinCywinskiJackson的一个民建项目客户在加拿大休伦湖东北部的乔治亚湾获得了一个未开采的岩石岛屿,希望在那里建造一座钓鱼屋。设计师将这个休闲场所设计成一些列巧妙散落在远处,并面朝大海的船体形状。

    设计师AdamWise提到:“我们从一些比较复杂的形状概念开始,比如一些传统上由造船工建造的形状。但预算上不允许我们把工人直接派到那个岛屿上去。岛上到处是曲状甚至双层曲状的贝壳。我们早已料到我们必须通过一种精密的建模和装配的方式来把该项目建造到岛上。”

    设计师们几乎马上就想到了通过Dynamo建立一个能让他们精细地改变设计形状的模型,在有些项目里也能大幅度地改变设计形状。设计师们想要延续公司使用BIM交付所有设计工作的实践,尽早采用Dynamo能让他们创建并研究这个钓鱼屋复杂的形状,并且将这些设计形状整合进AutodeskRevit的模型中。设计师AdamWise说到:“我们保持了项目曲线和高度的相互关联,既在整体上又在个体上调整各个曲线和高度。我们可以快速调整并输出各种各样的形状。”

    然后,建筑师们就能与装配环节合作了。装配工可以用此模型预建这些形状,在其厂房里装配好然后将其运到工地再拼装起来。设计师AdamWise补充说道:“如果手工完成这些工序,需要的时间将呈指数级增长,而且那将是一种更笨重的不同工艺。现在,这种工序更轻巧、更精细。”

    在用Dynamo之前,这个项目必须在纸上进行规划,而且装配工们不得不自己进行归档操作。现在,中间步骤被省略了,装配工们是设计和施工阶段的合作伙伴。BohlinCywinskiJackson的项目运营经理GabeHodge说到:“Dynamo让公司的协同达到了一个我们从来没体验过的程度,我们在模型里展示的设计对装配工很有用。这些协同技术让装配工能参与设计,也能让我们参与装配环节。”

在他们跟装配工完成形状微调的时候,设计师正在创造一个经济节约的过程并建造一个更好的结构。参与设计的讨论让装配工们可以告诉建筑师项目到底要花费多少,因为所有人都处于同一信息水平。BohlinCywinskiJackson的项目运营经理GabeHodge继续说到:“你设计和制造的东西也没有什么神秘之处。我们比其他事务所更细致地研究项目的材料和细节。你真正地在用一种开放的方式研究如何制造商品。这种开放式方法非常好,并且难以预测。”

文章来源:华幕BIM




Revit 2021 新功能——10 个提升效率的 Dynamo 节点新鲜出炉

Revit 2021 新功能——10 个提升效率的 Dynamo 节点新鲜出炉
Revit 2020 起,Dynamo Revit 便作为 Revit 的内部附加模块自动与 Revit  一起安装。更新的 Revit 并不会影响与旧的 Revit 版本一起安装的 Dynamo 版本。Revit 2021中对应的是新升级的 Dynamo Revit 2.5,其中添加了10Zero Touch 类型节点。让我们依次来看一看。

Revit 2021 新功能——10 个提升效率的 Dynamo 节点新鲜出炉

Revit 2021 新功能——10 个提升效率的 Dynamo 节点新鲜出炉

Revit 2021 新功能——10 个提升效率的 Dynamo 节点新鲜出炉
输入墙和楼板,通过该节点输出 False,表示图元未连接;输入墙和柱,通过该节点输出 True,表示图元已连接。
Revit 2021 新功能——10 个提升效率的 Dynamo 节点新鲜出炉

Revit 2021 新功能——10 个提升效率的 Dynamo 节点新鲜出炉

Revit 2021 新功能——10 个提升效率的 Dynamo 节点新鲜出炉
输入墙,通过该节点获得与该墙为连接关系的 个柱图元。
Revit 2021 新功能——10 个提升效率的 Dynamo 节点新鲜出炉

Revit 2021 新功能——10 个提升效率的 Dynamo 节点新鲜出炉

Revit 2021 新功能——10 个提升效率的 Dynamo 节点新鲜出炉
输入墙和 ID 号为 210719 的柱,因为两个图元相交,通过该节点将两个图元变成连接关系。输入墙和 ID 号为 210765 的柱,因为两个图元不相交,通过该节点运算异常并返回空值。
Revit 2021 新功能——10 个提升效率的 Dynamo 节点新鲜出炉

Revit 2021 新功能——10 个提升效率的 Dynamo 节点新鲜出炉

Revit 2021 新功能——10 个提升效率的 Dynamo 节点新鲜出炉
输入两个几何图形,一个输入到 cuttingElement(作为切刀),一个输入到 otherElement(作为切口),得到被剪切后的几何图形。
Revit 2021 新功能——10 个提升效率的 Dynamo 节点新鲜出炉
Revit 2021 新功能——10 个提升效率的 Dynamo 节点新鲜出炉
Revit 2021 新功能——10 个提升效率的 Dynamo 节点新鲜出炉
输入墙和 个柱图元,通过 Element.Arejoined 判定这 个图元是否为连接关系,如果是,则通过 Element.UnjoinAllGeometry 取消所有图元之间的连接。
Revit 2021 新功能——10 个提升效率的 Dynamo 节点新鲜出炉
Revit 2021 新功能——10 个提升效率的 Dynamo 节点新鲜出炉
Revit 2021 新功能——10 个提升效率的 Dynamo 节点新鲜出炉
输入墙和柱,通过 Element.Arejoined 判定是否为连接关系,如果是,则通过 Element.UnjoinGeometry 取消墙和柱的连接关系。
Revit 2021 新功能——10 个提升效率的 Dynamo 节点新鲜出炉

Revit 2021 新功能——10 个提升效率的 Dynamo 节点新鲜出炉

Revit 2021 新功能——10 个提升效率的 Dynamo 节点新鲜出炉
输入端 IncludeOpenings 为 True,表示获取依托于墙创建的门、窗、洞口。

Revit 2021 新功能——10 个提升效率的 Dynamo 节点新鲜出炉

Revit 2021 新功能——10 个提升效率的 Dynamo 节点新鲜出炉
输入端 IncludeShadows 为 True,则当两面墙连接时(通过“修改”->“几何图形”->“连接”),并且门放置在连接墙之一上时,可通过该节点,获得门图元。

Revit 2021 新功能——10 个提升效率的 Dynamo 节点新鲜出炉

Revit 2021 新功能——10 个提升效率的 Dynamo 节点新鲜出炉
输入端 IncludeEmbeddedWalls 为 True,表示获取依托于墙创建的整个内嵌墙或幕墙。

Revit 2021 新功能——10 个提升效率的 Dynamo 节点新鲜出炉

Revit 2021 新功能——10 个提升效率的 Dynamo 节点新鲜出炉
输入端 IncludeSharedEmbeddedInserts 为 True,获取依托于内嵌墙创建的门、窗或其他插入对象。
Revit 2021 新功能——10 个提升效率的 Dynamo 节点新鲜出炉

Revit 2021 新功能——10 个提升效率的 Dynamo 节点新鲜出炉

Revit 2021 新功能——10 个提升效率的 Dynamo 节点新鲜出炉
输入墙和柱类别,通过该节点获取到所有与该墙为连接关系的柱图元。
Revit 2021 新功能——10 个提升效率的 Dynamo 节点新鲜出炉

Revit 2021 新功能——10 个提升效率的 Dynamo 节点新鲜出炉

Revit 2021 新功能——10 个提升效率的 Dynamo 节点新鲜出炉

通过 Element.SetPinnedStatus 将输入的墙锁定,输入端 pinned True 时锁定,为 False 时解锁。通过 Element.IsPinned 判定图元是否已锁定。

 

Dynamo Revit 2.5 还有很多平台功能增强,有兴趣可查阅 Revit 2021 帮助文件,了解更多噢!




Dynamo与Revit图形数据交互的三种方式

作为一个轻量的模型引擎,Dynamo内置支持一系列图形:点、线、面和体,这些图形在Dynamo内以Dynamo图形的数据格式出现。作为完善的三维模型软件,Revit更加支持这些点、线、面和体的基本图形,但是是以Revit特有的图形数据格式保存。在Dynamo与Revit进行相互的图形数据交换时,需要时不时注意到这种区别:如Line在两种软件里都叫Line,但是在数据定义上,Dynamo的Line和Revit的Line是两种完全不同的数据。
基于基本节点的支持,Dynamo可以对两边许多对应的图形元素进行对应的解析和分解,尤其是从Revit转化入Dynamo时,原则上一个Element.Geometry或者Element.Solid已经可以将所有的Revit实体图形数据到Dynamo的交互转换一网打尽。对于特殊的一些Revit实体,如曲线类的模型线、详图线等,Dynamo也内置提供了双向的转换节点,具体可以从Revit节点下查找。
相对而言,Dynamo的图形数据是一种宽松的数据组合结构,图形数据之间的约束关系基本没有,但Revit则不同,Revit是智能的三维建筑模型软件,需要维护大量的建筑构件模型之间的逻辑约束关系,如门窗只能开在墙体上而不能开在柱子上和楼梯上,因为这不符合现实的建筑建造逻辑。因此孤立的Dynamo图形数据,是不能等同于智能的建筑构件的。从这个原理出发,我们就知道:所有Revit构件均可转换入Dynamo,但不是所有的Dynamo图形都能直接转换成遵守逻辑约束规则的Revit构件,因此在将Dynamo图形转换入Revit里面时,我们需要特殊的方式:
Dynamo与Revit图形数据交互的三种方式

ImportInstance

ImportInstance是Revit里面的导入符号,它是一种非智能建筑构件。我们将一个导入符号放在墙体中间,Revit是不会给错误或警告提示的。ImportInstance可以完整的保留Dynamo里面的图形信息,但是符号名称不能自定义,且缺乏附加其他信息的方式,导入后的管理并不方便。
Dynamo与Revit图形数据交互的三种方式

DirectShape

DirectShape是一种半拉子的智能建筑构件,就是说缺乏一些关键的智能构件构造元素导致她无法成为一个真正智能的构件参与到Revit的自动化约束进程中,但是DirectShape提供了比符号更多一些的操控和数据管理可能如可以指定其类别。
Dynamo与Revit图形数据交互的三种方式

自定义族:

比较理想的状态是构造一个用户化的族,这样就可以使用族的很多基本特性优势来组建和管理建筑模型。
将Dynamo图形转化成Revit的自定义族需要SpringNodes软件包的支持,这个节点名称为FamilyInstance.ByGeometry其内部核心Python Script代码可在GitHub页面看到。通过这个节点,可以将Dynamo转换成Revit的一个自定义族。
以上部分内容转自知乎,侵删。

欢迎您加入海南省BIM中心学习交流互动社区(xycost,拉你进海南省BIM中心专业微信群)

每一个“在看”都是鼓励

原文始发于微信公众号(海南省BIM中心):Dynamo与Revit图形数据交互的三种方式




【BIM教学】使用Dynamo在曲面上放置文字

前些天微信群有个网友提问怎么在圆形管道或者曲面墙或者上加上文字,网上搜索了不少方法,但不是太粗糙就是太繁琐,不太令人满意。经海南省BIM中心研究后得到完美的解决方法,就是使用REVIT中的贴花,使用教程详见:【BIM教学】REVIT中如何在曲面上放置文字,但这种贴花是二维的(可以加上凹凸材质),并不是真正的三维文字。本着”穷究于理.成就于工“的态度,今天海南省BIM中心使用DYNAMO给大家真正的三维文字。需要DYNAMO源文件的可微信联系xycost获取。
DYNAMO是一个神奇的魔术师,几乎可以用来穷尽REVIT的所有潜力,在我看来是REVIT最重要的插件。Dynamo是以AutodeskRevit为基础的可视化编程平台,用户可以更快的解决三维设计作业流程,驱动模型几何参数和数据库。AutodeskRevit与Dynamo的结合,除了让设计人员在创建视觉逻辑、挑战参数化异形造型概念设计上的奇思妙想得以呈现,在BIM信息交换与分析上也突破既有限制,取代机械化的重复作业,工作效率显著提升!
下面给出完美的制作方法,详见下面的视频:
效果如下,使用ENSCPE 2.5.2.34简单渲染:

【BIM教学】使用Dynamo在曲面上放置文字

【BIM教学】使用Dynamo在曲面上放置文字

【BIM教学】使用Dynamo在曲面上放置文字

公众号其他初中级教学(视频)还有:

一、【海南省BIM中心】REVIT标高和轴网的绘制及修改

二、【海南省BIM中心】REVIT柱及墙的基本操作

三、【海南省BIM中心】REVIT参数化设计演示

四、【海南省BIM中心】REVIT屋顶及楼板的基本操作

五、【海南省BIM中心】REVIT中的图例设计演示

六、【海南省BIM中心】CAD图案填充文件用于REVIT

七、【海南省BIM中心】REVIT中尺寸标注的基本操作

八、【海南省BIM中心】全国BIM等级考试13期第2题解析(视频)

九、【BIM教学】REVIT平面方案设置及展示(视频)

十、【BIM教学】Revit图纸与标题栏的创建与编辑

十一、【BIM教学】全国BIM等级考试1期1题及2题视频演示

十二、【BIM教学】全国BIM等级考试14期一级真题视频演示

十三、【BIM教学】全国BIM等级考试14期二级结构一题视频演示之一

十四、【BIM教学】全国BIM等级考试14期二级结构一题视频演示之二

十五、【BIM教学】REVIT中真正的曲面玻璃幕墙建模方法(中级)

十六、【BIM教学】佛罗伦萨大教堂穹顶的建模方法(中级)

十七、【BIM教学】山坡地形中真实道路系统的建模方法(中级)

十八、【BIM教学】REVIT中艺术楼梯的建模方法(中级)

十九、【BIM教学】REVIT中制作自发光文字

二十、【BIM教学】REVIT中制作艺术花坛

二十一、【BIM教学】如何快速计算幕墙材料及造价

二十二、【BIM教学】利用体量快速生成全玻璃曲面住宅设计方案(中级)

二十三、【BIM教学】如何制作自适应铝板幕墙族(中级)

二十四、【BIM教学】环形剧场舞台的建模实践(中级)

二十五、【BIM教学】瑞士劳力士中心的建模实践(中级)

二十六、【BIM教学】参数化百叶窗的制作

二十七、【BIM教学】REVIT中树状柱的建模实践(中级)

二十八、【BIM教学】巴洛克式栏杆在REVIT中的建模实践(中级)

二十九、【BIM教学】用REVIT制作参数化的滑动门(中级)

三十、海南省BIM中心】REVIT中生成双曲抛物面结构(中级)

三十一、 【BIM教学】如何在REVIT中建立真正的道路标线

三十二、【BIM教学】REVIT中几种特殊类型板的建模实践

三十三、【BIM教学】enscape在REVIT中应用基础教学

三十四、【BIM教学】REVIT中任意形状楼梯的绘制教学

三十五、【BIM教学】全国BIM等级考试一级十二期真题解析

三十六、【BIM教学】全国BIM等级考试一级十三期真题解析

三十七、【BIM教学】第十五期BIM一级考试试题真题解析(视频)

三十八、【BIM教学】REVIT中如何在曲面上放置文字

原文始发于微信公众号(海南省BIM中心):【BIM教学】使用Dynamo在曲面上放置文字




【BIM开发】DYNAMO界面乱码的解决方法

有很多同学在DYNAMO开发的出现界面乱码现象,甚至是重装系统也不能解决。比如呈现下面的样子,全部汉字变成了一个个的方块。

【BIM开发】DYNAMO界面乱码的解决方法

我有几个电脑也是这样,无论怎么折腾均无济于事,经过痛苦的探索后找到解决方法如下,现奉献给大家:
第一步:
找到DYNAMO程序所在的文件夹,如下图所示,每个人的安装目录可能不同。在DynamoSandbox.exe上右键点击,在弹出菜单中-发送到-桌面快捷方式。

【BIM开发】DYNAMO界面乱码的解决方法

第二步:
找到桌面快捷方式。再右键点击,在弹出菜单中-属性-快捷方式中修改目标为下面的样式。典型的就是这样:“D:Program FilesDynamoDynamo Core2DynamoSandbox.exe” /L “zh-CN”

【BIM开发】DYNAMO界面乱码的解决方法

第三步:
再打开你的DYNAMO程序,应该已经解决问题了,如下图:

【BIM开发】DYNAMO界面乱码的解决方法

原文始发于微信公众号(海南省BIM中心):【BIM开发】DYNAMO界面乱码的解决方法




在Visual Studio中搭建Dynamo Python开发环境,效率飞一般的增长

    最近在学习Dynamo中Python Script的用法,发现这个东西用起来太不友好了,不支持自动缩进,不支持自动填充和提示。用过Visual Studio做二开的都知道,在引用了Revit api以后,就可以自动填充和提示了。

    本来英语就不好,写代码经常敲错单词,忘记缩进,在Python Script中写代码,实在是太痛苦了,每次照着教程写,都要改好几次才能正常运行,于是就希望能找到一种方法,提高代码的书写效率,并保证正确性。

    假设我们要创建一个墙,那么我们输入的时候要写如下这么多代码,没有自动填充的话只能一点一点的敲,像下面这段代码,估计我得改他几遍:

在Visual Studio中搭建Dynamo Python开发环境,效率飞一般的增长

    但是现在不一样了,我们可以像下面这样,非常优雅的输入代码:

在Visual Studio中搭建Dynamo Python开发环境,效率飞一般的增长

    从上图可以看出来,现在我可以在Dynamo中的Python Script里快速的输入代码(当然我是在Visual Studio中编写的,然后复制到Python Script中),大大的提升了效率,那么问题来了,该如何搭建这个环境呢?

    其实超级简单,只需要从GitHub里下载一个工具包,就能让你拥有这么好的编程环境,他的名字就是“IronPython Stubs”,快去GitHub搜索下载吧!

在Visual Studio中搭建Dynamo Python开发环境,效率飞一般的增长

在Visual Studio中搭建Dynamo Python开发环境,效率飞一般的增长

    配置方法也很简单,首先将下载的压缩包解压到自己的硬盘中,自己存一个固定目录即可。如下图,我直接扔在了D盘根目录:

在Visual Studio中搭建Dynamo Python开发环境,效率飞一般的增长

    接下来打开Visual Studio,我用的是Visual Studio 2019,我就以我这个为例了,新建一个Python项目,然后将项目保存到你自己的文档即可,以后需要在Dynamo中编写的Python Script节点代码,都可以在这个项目下新建Python文件。

在Visual Studio中搭建Dynamo Python开发环境,效率飞一般的增长

然后再在又侧的项目资源管理器里,添加搜索路径即可:

在Visual Studio中搭建Dynamo Python开发环境,效率飞一般的增长

    如图,添加的是压缩包里这个目录:\ironpython-stubs-masterreleasestubs.min,完成了这一步以后,你也能像我一样,优雅的编写代码了。

需要海量BIM知识的同学请大力按压下面的二维码入群,几百款知识及软件(都是一些BIM极品高阶视频材料+案例实训+考证,某宝叫卖价上万元),总有一款适合你:

在Visual Studio中搭建Dynamo Python开发环境,效率飞一般的增长

海南省BIM中心,只搞实的,不玩虚的,致力于BIM实实在在的知识和成果,不谈概念,只讲落地,关注请重按下面的二维码:

在Visual Studio中搭建Dynamo Python开发环境,效率飞一般的增长

每一个“在看”都是鼓励


原文始发于微信公众号(海南省BIM中心):在Visual Studio中搭建Dynamo Python开发环境,效率飞一般的增长




Dynamo之钢结构正向设计

Dynamo的时候,在国外的网站上下载的。本案例是国外大师所做,小编也只是搬运工。

Dynamo方案阶段Dynamo荷载的分析Dynamo参数化运行优化单桁架方案,最后生成施工图模型。

Dynamo运用知识,还学会了国外设计师做正向设计的一种思路。由于目前我们国内正向设计推行较慢,我们自己也很少接触到真正的正向设计项目,正向设计的推行还有很长的路要走(此处省略千万句tucao)。

小编今天分享的这个钢结构桁架的正向设计案例,让我们一起学习国外优秀作品及他们做正向设计的思路。

好了废话就不多说了,直接上案例中部分截图。

Dynamo之钢结构正向设计

Dynamo之钢结构正向设计

Dynamo之钢结构正向设计

Dynamo之钢结构正向设计

Dynamo之钢结构正向设计

Dynamo之钢结构正向设计

Dynamo之钢结构正向设计

 

图文来源BIM加油站