打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Dynamo应用秘籍:13:全能的Python Script标准模板
Dynamo里面有Python Script节点,这个节点可以实现两个重要功能:1)可以接入外部Python库,使用已有的Python库资源实现比较高级的函数功能,有些功能可能可以比Design Script更加强大,如Design Script无法解析的复杂字符串(HTML源文件),可以通过调用已有的解析HTML的Python库或者通过Python Script调用正则来直接处理。这些都是对Design Script功能的巨大扩充
2)提供链接Revit API的桥梁,使用解释方式运行API功能。Revit是复杂智能的三维建筑设计软件,建立在构件级别的基础上来解析、组合建筑。构件本身都是复杂的Revit“族”,操控这些构件需要特定的方式和功能,而提供这些功能的就是API。相对于二开的编译运行,Dynamo的Python Script提供了一种使用解释方式运行API的框架。在这个框架下,我们可以直接调用Revit的API,不需要编译代码就能直接运行。
缺省情况下,Python Script节点代码仅提供基本的Design Script功能,上述的两个重要高级功能并不支持。如下图:

可以看到这个缺省的Python Script节点仅仅引入了ProtoGeometry,因此只支持基本的Design Script核心功能和图形类处理功能,上面介绍的外部库以及Revit API的支持均为零。如果要支持,需要首先相应的引用指定的库。

上图是一个基本全能的Python Script标准模板,下面顺次将其中的代码解析一下:
首先是import段,在原来ProtoGeometry.dll的基础上,增加了四个参考项目:
    REVITAPI.DLL
    提供处理Revit内基本构件Element的处理功能REVITUIAPI.DLL
    提供Revit内用户交互选择及TaskDialog实时输出用于调试程序REVITNODES.DLL
    提供对Dynamo内节点的支持,这样可以在Python Script里面直接写Design Script代码,否则Python Script节点内是不支持的REVITSERVICES.DLL
    提供对Revit多文档以及构件的事务处理(修改构件,更新数据库时必需的)服务

这些格式基本上是固定的,多数情况下,直接使用就可以。

在同一个Python Script内,代码都需要定义变量,变量有全局变量和局部变量,对于使用频率较高的变量,建议直接在程序开始定义成全局变量,如当前Revit进程,当前的Revit文档,当前的Revit用户化文档,当前运行的Revit语言版本等等。

如果代码中需要对Revit的数据库进行调整,就需要使用Revit的事务管理,事务管理的原因及逻辑,可以参考Revit的帮助及API手册获取,这里不再赘述。事务处理主要是两条语句:事务开始,和事务结束。其格式也是固定的,直接按照附图输入即可。
使用这样的模板,可以极大限度地减少因为库不全而造成的程序运行错误,让我们把重点放在核心处理代码上,而不是整个代码框架的设计上。实际上,Dynamo的Python Script节点就是这样的一个框架,这个模板只不过是这个框架的进一步扩充。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
【慧远大讲堂】小章说桥之Revit Dynamo:连续刚构桥的建模思路(下)
Dynamo初学常识梳理(四)——Revit图元
Dynamo初探3——参数化如何驱动建筑构件(二)
最短路径——通过Dynamo批量创建行进路线
水利工程复杂结构钢筋可视化编程建模及应用研究
【慧远大讲堂】Dynamo自动生成MEP系统名称、材质及颜色
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服