Dynamo | 沿Revit起伏地形上布置道路和栏杆等构件

概述

虽然Revit已经是一个三维软件了,但是作为一个建筑偏向的软件,其布置构件的方式仍然沿用了以往的平面布置模式。这样做的好处是既沿用了原来的绘图习惯,同时在绘制规则建筑时效率较高。缺点是要在Revit中按空间曲面或曲线来布置构件会比较困难。这种困难在设计地形、总图,或是市政相关项目的时候变得异常明显,因为这些项目往往难以找到一个“标高”或是平面来描述它。本章主要记录如何在Revit中根据地形来布置道路、栏杆等构件。

道路(楼板)

沿地形上绘制楼板在用于小区的坡道、市政道路的时候比较方便,绘制成果也美观。实现原理其实很简单,利用楼板的重设形状功能添加对应的点即可。不过如果认为来设点,过程实在太过于繁琐,而且容易出错。我们要借助于Dynamo来实现这个过程,以保证效率和准确。原本要用电池来实现这个过程还是比较费心的,不过一番搜索发现Dynamo上已经有插件可以做到了:Clockwork。这里就不造车轮子,只简单介绍其用法。首先下载Clockwork,截止到现在,最新版是Clockwork for Dynamo 1.X:
Clockwork

需要做的准备工作很简单,首先将要绘制楼板的区域用模型线画出来,然后利用场地中的拆分表面功能将地形切开。



地形切开后,利用同样的轮廓线建立平面上的楼板,此时,我们就有了平面楼板,和楼板需要附着的地形表面。接下来使用Clockwork的SlabShapeByPoingts电池即可将楼板重建。电池非常简单,只需要将刚才的轮廓区域的地形和楼板分别选取进来。




下图是建好后,楼板的效果


栏杆和其他沿线条布置的构件

Revit 2017版已经改进了自带的栏杆功能,开始可以沿地形布置栏杆了。这里强行用Dynamo来做显得有点勉强了。不过用Dy的好处是,对电池稍作修改,即可用来画市政管线,来布置路灯杆等等。我们知道使用Infraworks来做这些事情是很迅速的,拉一条线就可以做到了,在Revit中使用Dynamo,其实也可以实现类似的效果。核心的电池仍然很简单,向地形表面做投影即可。不过无论是Curve.Project电池还是Point.Project接受的都是几何电池,因此比较难的是如何将TopoGraphy地形转变为Surface。暂时还没有找到相关的电池,这里写了一个Code Block来实现。

1
2
3
4
iA=List.GetItemAtIndex(T.Mesh.VertexPositions,T.Mesh.FaceIndices.A);
iB=List.GetItemAtIndex(T.Mesh.VertexPositions,T.Mesh.FaceIndices.B);
iC=List.GetItemAtIndex(T.Mesh.VertexPositions,T.Mesh.FaceIndices.C);
TopoSurf=PolySurface.ByJoinedSurfaces(Surface.ByPerimeterPoints(List.Transpose({iA,iB,iC})));



获取到投影点以后,后边就可以尽情DIY了,可以布置栏杆,或者沿线布置其他构件皆可。这里随便画了几个,效果如下:

文章目录
  1. 1. 概述
  2. 2. 道路(楼板)
  3. 3. 栏杆和其他沿线条布置的构件