编程学习网 > 编程语言 > Python > 全能的Python Script标准模板教程
2023
10-11

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

以上就是全能的Python Script标准模板教程的详细内容,想要了解更多Python教程欢迎持续关注编程学习网。

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取