dynamo python 通过循环修改参数_最短路径——通过Dynamo批量创建行进路线

f2d43071f0ca142e795eaf0b9f6d57e7.png
好消息:“BIM的乐趣”微信群恢复运营了,有兴趣的小伙伴可以在文章底部扫码入群哦~

今天我们来聊聊Revit2020新增的一个功能——布线分析,这个功能还是挺有意思的,只是需要”桌子“以后多开放点API就好了,今天我们就简单的试用一下这个功能。

打开Revit2020我们在分析选项卡下,最右侧可以找到布线分析功能栏,里面有行进路径功能,我们点击这命令,随便在两个房间点两个点,他会自动生成两点间的最短行进路线。

26c3a642b39f97031954e3979610368b.png

09636e8714de610252632fde699754b2.png

从上图我们看到,他会自动穿过房间的门,连接点击的两个点,并计算最短路径。因为在布线分析的默认设置里,不考虑门作为障碍物,是可以穿过的,而其他类别的图元,都作为障碍物,必须躲避。

f182805b6916ba5ab26a31d8278af9a9.png

由上图,我们可以看到,默认是勾选了门类别不作为障碍物,并且这里可以设置障碍物高度的影响范围,在上图最底部。

————华丽的分割线—————

前面我们介绍的是Revit2020新增的功能,这样一个一个点,肯定是满足不了我们的需求的,所以嘛,重复操作,当然是通过Dynamo来完成。

第一步,我们要查下API手册,看看这个新增的功能,有哪些可用的API。

打开前几次文章介绍的http://apidocs.co页面,搜索pathoftravel,我们可以快速找到PathOfTravel Class类,在它下面的Member里展示了他的所有Methods,如下图:

dbeb40181f9cd1a8d8177a7e55659ecc.png

这里我们看到有个"S"图标的,就是创建的方法,这里我们选择一个最简答的方法来介绍,就是Create Method (View, XYZ, XYZ),在视图中通过两个点来创建行进路线。

0ee3a178613a375a8944e2b58e0007b4.png

第二步,我们看下他的基本语法:

3cf88865aa4810bbe9bf25dc7b2bacca.png

由上图可以看到,语法也很简单,PathOfTravel .Creat(View, XYZ, XYZ)。

第三步,我们创建一个Python Script节点,给两个点的输入,然后获取当前打开的Document就行了。

第四步,获取两个点作为输入点就行,我选个房间中点,然后在放置一个人,分别获取他俩的location即可。

如下图:

5e4ca0b48724007f70d188b47164d8fc.png

运行结果如下图:

f42d2c88ed9d1590d9a7d1e6a9cb4b1c.png

到这里,我们实现了Revit2020工具栏中一样的功能,下面展示的是核心代码,如果需要获取完整代码,可以关注我的公众号:“BIM的乐趣”,付费阅读完整文章,在文章最底部获取哦~

# Copyright(c) 2020, 九哥BIMer
doc = DocumentManager.Instance.CurrentDBDocument
firstPoint = IN[0].ToXyz()
roomPoints = IN[1].ToXyz()
TransactionManager.Instance.EnsureInTransaction(doc)
path = PathOfTravel.Create(doc.ActiveView,firstPoint,roomPoints)
TransactionManager.Instance.TransactionTaskDone()
OUT = path

至于如何批量操作,只需要在代码里加一个for循环即可,这里我就不再赘述了,作为大家自己练习的内容吧,有不明白的,小伙伴们可以给我留言哦~~

接下来给大家展示下最终效果:

fc138d1270bbf98559dcb911c73969fc.gif

42cc54b116ad44df2abe8d28a50cc84d.png

如上图,大家可以看到,我这里生成的行进路线是彩色,因为我们可以对它添加过滤器,我是根据路径的长短设置了不同的颜色,这里大家可以根据需求设置,如下图:

c5db0ae1c14f91846a6ccbc09ac3d863.png

接下来,我们还可以制作行进路线的明细表,它在线类别下面,可以选择的属性目目前还比较少,如下图:

32edc44b9abac4310d8ab290771c58fd.png

我这里随便选择了几个,生成了一个明细表,如下图:

7039533ca48171bce1fa3aa2ce246201.png

好了,我今天的就分享就到这里了,喜欢我记得关注“BIM的乐趣”哦~

应好多小伙伴的要求,“BIM的乐趣”微信群重新恢复运营,有兴趣的小伙伴可以扫描下面二维码加群,如果二维码失效,可以添加我的微信(微信号:leaderspring)拉你入群,记得备注来源哦~~

7e9487dea58c93f1f70299184f0c34fb.png

本公众号其他的相关DYNAMO文章还有:

一、学会这几个Dynamo数据处理技巧,效率翻倍提升

二、Dynamo也可以创建图形界面,使用起来超简单

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

四、一键放置柱子护角,你get了吗?

五、Dynamo随机地形思路分享

六、Revit在弯曲面上的贴图调试

七、利用revit幕墙填充图案绘制钢架模型

八、通过Dynamo删除Revit中族参数探究

九、获取链接文件Document——Dynamo Python系列教程(一)

十、创建墙——Dynamo Python系列教程(二)

十一、图元的基本操作(隔离、移动、旋转、删除)——Dynamo Python系列教程(三)

十二、创建楼板——Dynamo Python系列教程(四)

十三、Dynamo读取cad图快坐标,匹配地形种树

十四、Dynamo与Revit API之间的转换——Dynamo Python系列教程(五)

十五、我最喜欢的Dynamo节点TOP 10

十六、Dynamo批量分离中心文件并另存到指定目录

十七、Revit元素类别——Dynamo Python系列教程(六)

十八、通过Dynamo批量打印PDF图纸

十九、IronPython与.NET Framework——Dynamo Python系列教程(七)

二十、什么是API?——Dynamo Python系列教程(八)

二十一、Revit API简介——Dynamo Python系列教程(九)

二十二、如何阅读Revit的API文档——Dynamo Python系列教程(十)

c37d55a04dd4501b08a188b82bd6a939.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值