python script使用_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节点就是这样的一个框架,这个模板只不过是这个框架的进一步扩充。

连载链接:上一篇 << ooo >> 下一篇

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值