Code Block 宝典(转载&翻译)

原文链接:http://dynamobim.org/cbns-for-dummies

简单地说,Code Block就是个大杀器。如果你在关注最近半年的Dynamo开发状态,就知道我在说什么了。那一个个小方块里头名堂可大了。以下是一篇关于它的速成宝典。

“这东西从哪来的?”你问道。Dynamo和DesignScript,一个是可视化编程工具,一个是计算式设计语言。两者强强联合,结果就是,我已经算不清楚有多少种创建三维点阵的方法了。当然还有更多其它的好东西。

这两样好东西放在一块儿,就好像把巧克力和花生酱放在一块儿,又好像布拉德·皮特和安吉丽娜·朱莉的孩子,反正就是配的好!

everything-about-code-block-chocobutter

在0.7.0或以后的版本中,你都可以在工作区中双击创建Code Block。

继续阅读

专家会诊:如何在Revit中快速标记Navisworks的碰撞检测结果

问题描述
Navisworks可以将碰撞检测的结果,即所有冲突点导出为Excel表格。导出的数据分为四列:冲突名称,X坐标,Y坐标,Z坐标。有没有办法使用Dynamo将冲突名称标识在Revit项目中的实际三维空间中呢?比如用Model Text或者其它类型的物体。

解决方案
大体的思路很简单,从Excel表格读取数据,提取其中的冲突名称和三维坐标点,并且创建Model Text。不幸的是有个地方要绕一下:Revit API暂时还不支持在项目环境中创建Model Text,所以Dynamo也做不到。我们可以先在一个族文件中创建对应的Model Text,然后在项目文件中创建族实例。

在族文件中创建Model Text的Dynamo文件见下图和附件。

Create Model Text from Excel
Create Model Text from Excel

Create Model Text from Excel (DYN file)

示例Excel数据

此文件可以在族文件(比如Generic Model)环境下运行并且创建出Model Text。在项目文件中创建族实例还会碰到一个小问题:如何确保族实例创建在项目文件的坐标原点,以保证所有Model Text的位置是正确的?

Revit没有绝对坐标的概念,所以这时候又要用到Dynamo了。具体见下图和附件。
Create Family Instance at Origin

Create Family Instance at Origin (DYN File)

总结
这样直接在给定坐标下创建的Model Text的方法,不能非常精确地标示出冲突坐标。如果有需要,可以用Model Line创建一些引线作为辅助标注,这里不再具体演示。
Model Text在族环境中创建,好处是可以统一隐藏或显示,坏处是不能一个个标记处理状态。如果确实需要单独标记,可以尝试创建Text Note。Dynamo中没有现成结点创建Text Note,但我们可以通过Python脚本定义自己的结点。会在下一篇文章中深入讨论。

如果有其它方面的改进意见,欢迎评论留言,或者发邮件到我们的邮箱。

“再探Dynamo”系列——“节能窗洞”案例第3/3讲

在具备了基本的日照强度驱动的幕墙窗洞变化之后,可以再进一步增加更多的设计变化和视觉元素。所以在最后一部分中,我们加入两个步骤:

一个是让幕墙竖向网格之间的间距以递减的方式进行。

Sunpath_3

另外一个是让幕墙窗洞的大小变化的区段以不同色彩来表达,从而可以直观的了解到哪些区域的日照较强,窗洞较大。

Sunpath_4

具体的步骤请参考视频:

可供下载的过程文件在这里:

DYN_Advanced Training_Sunpath_3

“再探Dynamo”系列——“节能窗洞”案例第2/3讲

创建规律的幕墙表面网格,并且应用可适应构件,不是Dynamo展现能力的关键,因为通过概念体量自带的划分表面网格的功能也可以完成。接下来的通过Dynamo驱动幕墙嵌板的变化才是参数化设计的精髓。所以在第二部我们引入日照分析的外部条件,将不断变化的太阳高度角和窗洞之间的夹角作为一个驱动参数,当夹角变大时,阳光摄入量增加,窗洞的面积就随之增大,反之则减少。

Sunpath_2

继续阅读

“再探Dynamo”系列——“节能窗洞”案例第1/3讲

“再探Dynamo”系列是通过几个经典案例来帮助大家完整的完成一个小项目,其中包括:

  1. 节能窗洞:通过识别太阳高度角与幕墙窗洞的角度,来判断阳光通入量,从而控制窗洞的大小
  2. 体育场:运用Dynamo和自适应构件自动生成体育场座椅、支撑桁架和体育场外表皮
  3. 形体创建系列:通过若干个实例来演示如何通过Dynamo来创建复杂形体

每一个案例系列都包含三个小视频,可以帮助大家分段完成,在“节能窗洞”系列中分为三个不断进阶的部分:

  • 第一部分:创建规律的幕墙表面划分

Sunpath_1

  • 第二部分:引入日照分析驱动幕墙嵌板孔洞的大小变化
  • 第三部分:生成递减规律的幕墙表皮划分,并且通过表皮颜色来显示日照强度与开孔大小的关系

继续阅读

“Dynamo的今世前生”——Dynamo问答(转载&翻译)

原文链接:Q&A about Dynamo

有一回,Marcello Sgambelluri AutodeskMatt JezykZach Kron译注:这两位是Dynamo在市场和产品功能方面的主要负责人逼到角落里,用一大堆关于Dynamo起源和未来方向的问题把他们搞得焦头烂额。我们觉得把这段故事拿出来跟大家分享应该会很有趣。你也可以从Marcello 博客中找到更多好东西。

为什么会想到开发Dynamo?

[Matt] Ian Keough(译注:Dynamo创始人)在纽约的Buro Happold公司工作时,经常需要在RhinoRevit之间交换数据。为了让这一繁琐的工作变得更有效率,他编写了Dynamo。当时的基本想法是:既然Grasshopper可以用参数化,计算生成的方式驱动Rhino中的形体,我们应该完全可以在Revit里做类似的事。

继续阅读

基本概念——Lacing

在Dynamo中运行与数组、数列等相关结点时,右键点击结点,将出现“Lacing”的选项,其中默认有三种选项“Shortest,Longest和cross product”,这些选项对于创建数列有着非常重要的作用。以下就逐一对于这些概念做一个整体的说明:

首先,如果我们想在Dynamo里创建一个点,用Point.ByCoordinates结点,那么大致是这样子的:

b1

如果我们想创建一列点,它们的Y坐标都是5,而X坐标是从5到10,该怎么做呢(关于Code Block里如何定义数列,请见相关博文):

b2

继续阅读

基本概念——单位转换

Dynamo和Revit结合地很好,除了。。。内部单位悲摧地不一致。

简单地说,所有在Dynamo里不带单位的数值(最常见的就是坐标点),Dynamo都会把它们认为是以“米”为单位。所以,如果你想创建两根距离10英尺的轴网,这样做是不行的:

a1

无论在项目模板中“单位”设置是英制还是公制,是“厘米”还是“毫米”,所创建的两个轴网之间的间距永远是10米。

a2

继续阅读

“初识Dynamo”系列之九——表皮的艺术

当今的建筑设计哲学中,外围护结构在脱离了其作为主要结构支撑构件的传统功能的制约之后,越来越多地将其作为相对独立的设计元素,赋予其更多的创造性和表现力。我们更多称之为“表皮的艺术”。Dynamo因其出色的几何造型能力和参数化编程能力,可以为建筑师提供丰富多彩的表皮塑形的可能。为了帮助大家,更快的发现其潜在的表皮塑形的优势,我们用一个如何创建菱形网格的例子来向大家解释其建模思路和应用。

具体的操作请看视频:

可供下载的Dynamo文件及相关文件在这里:

Dynamo文件:DYN_Basic Training_A9 – Panel Pattern

Revit模板:RVT_Basic Training_A9 – Panel Pattern

自定义结点:Create 8 Points for Panaling Tools

 

 

Computational BIM, Dynamo, FormIt