如何在Dynamo(PythonScript)中引用py文件(导入函数)

欢迎加入BIM行业开发交流1群 群号:711844216(满),二群群号:1016453207

一、背景

小伙伴们在dynamo中使用PythonScript时,可能有些代码可以复用,比如函数,我们就可以将其保存在py文件中,然后再不同的PythonScript中进行调用。

二、思路+代码

首先,我们看下情景

  1. 我们在PythonScript中自定义一个函数加减的功能,然后使用它。
# -*- coding: UTF-8 -*-
import math
import clr
# 导入 RevitAPI 和 RevitAPIUI
clr.AddReference("RevitAPI")
clr.AddReference("RevitAPIUI")
import Autodesk
from Autodesk.Revit.DB import *
from Autodesk.Revit.UI import *
#导入dyamo中的几何图元
clr.AddReference("ProtoGeometry")
from Autodesk.DesignScript.Geometry import *
#导入revit节点
clr.AddReference("RevitNodes")
from Revit.Elements import *
import Revit
# 导入几何体转换方法(将dynamo中输出的几何体转为revit中的几何体)
clr.ImportExtensions(Revit.GeometryConversion)
# 导入元素转换(revit转dynamo)
clr.ImportExtensions(Revit.Elements) 
import sys
IN[0];
#自定义函数
def Add(a,b):  
	c=a+b;
	return c
#然后使用我们自己定义的这个Add函数
result=Add(1,2);
OUT=result;
  1. 我们是否可以把这个Add函数提取出来,放到一个py文件中,然后在不同PythonScript中调用呢?
    答案是肯定的!
    现在我们将这个函数单独提取出来放到电脑上的“D:\自己构建的函数库”路径夹下,并且取名为 “HanShu.py”。
#HanShu.py的内容
# -*- coding: UTF-8 -*-
def Add(a,b):  
	c=a+b;
	return c

再看我们的PythonScript中的代码如何书写

# -*- coding: UTF-8 -*-
import math
import clr
# 导入 RevitAPI 和 RevitAPIUI
clr.AddReference("RevitAPI")
clr.AddReference("RevitAPIUI")
import Autodesk
from Autodesk.Revit.DB import *
from Autodesk.Revit.UI import *
#导入dyamo中的几何图元
clr.AddReference("ProtoGeometry")
from Autodesk.DesignScript.Geometry import *
#导入revit节点
clr.AddReference("RevitNodes")
from Revit.Elements import *
import Revit
# 导入几何体转换方法(将dynamo中输出的几何体转为revit中的几何体)
clr.ImportExtensions(Revit.GeometryConversion)
# 导入元素转换(revit转dynamo)
clr.ImportExtensions(Revit.Elements) 
#前面都一样,主要修改了这部分,导入自定义函数
import sys
#HanShu.py文件的地址
hanShuLocation=r"D:\自己构建的函数库";
#将文件所在的地址导入到系统的环境变量中,这样就可以使用HanShu.py文件了
sys.path.append(hanShuLocation) 
#导入这个py文件中的函数(*代表这个py文件里面的所有函数,博主这里只写了一个函数进去,所以就导入了一个)
from HanShu import *
IN[0];
result=Add(1,3);
OUT=result;

好了,到这里我们就实现了PythonScript中引用自定义py函数的功能。

注意事项

1.不管在自己定义的py文件中,还是PythonScript中,都要把下面的代码放入最前面。免得出现由于中文引起的错误。

# -*- coding: UTF-8 -*-

2.如果我们自定义的函数,用到了revit相关的功能,那么我们需要把下面和revit有关的引用代码添加到自己定义的函数包HanShu.py中,否则会出现global name ‘xxx’ is not defined错误。

# -*- coding: UTF-8 -*-
import math
import clr
# 导入 RevitAPI 和 RevitAPIUI
clr.AddReference("RevitAPI")
clr.AddReference("RevitAPIUI")
import Autodesk
from Autodesk.Revit.DB import *
from Autodesk.Revit.UI import *
#导入dyamo中的几何图元
clr.AddReference("ProtoGeometry")
from Autodesk.DesignScript.Geometry import *
#导入revit节点
clr.AddReference("RevitNodes")
from Revit.Elements import *
import Revit
# 导入几何体转换方法(将dynamo中输出的几何体转为revit中的几何体)
clr.ImportExtensions(Revit.GeometryConversion)
# 导入元素转换(revit转dynamo)
clr.ImportExtensions(Revit.Elements) 
def Add(a,b):  
	c=a+b;
	return c

3.大家好,我是黑夜の骑士,欢迎大家关注我的博客,笔者将持续输出revit二次开发以及编程干货。

  • 9
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Dynamo Python脚本学习是学习如何使用Dynamo软件Python编程语言来自动化建筑设计和工程的过程。这种学习涉及到Python编程语言的基础知识,以及如何在Dynamo软件使用Python编写脚本来实现自动化设计和工程。学习Dynamo Python脚本可以帮助建筑师和工程师更高效地完成他们的工作,提高他们的生产力和创造力。 ### 回答2: Dynamo Python ScriptDynamo可视化编程语言的补充,旨在帮助用户更高效地控制和自定义设计工作流程。Dynamo Python Script实际上是Python脚本,它允许开发者使用PythonDynamo程序编写代码并利用其大量的库来扩展程序。 学习Dynamo Python Script的第一步是掌握Python编程基础,掌握Python语言语法、变量、数据类型、流程控制语句以及函数。掌握基础之后,就可以尝试将Python应用于Dynamo程序。 在Dynamo Python Script,用户可以使用Python编写自定义节点或者直接编辑Dynamo节点。通过Python编写自定义节点,用户可以以更高效的方式定制节点,提高程序的灵活性和适用性。同时,用户也可以直接在委托Python编辑器编辑Dynamo节点,更灵活地实现各种复杂的设计需求。 在Dynamo Python Script学习,用户可以使用DynamoPython Package,它是一个Python包,提供了Dynamo节点的Python版本。使用此包,用户可以在自己的脚本代码导入Dynamo节点,并与其他Python库进行集成,使得编写自定义节点更加简便。 除此之外,还有一些在线资源可以帮助学习Dynamo Python Script,如Dynamo Python Wiki,其有很多文档和教程,涵盖了Python基础和Dynamo Python Script的高级编程概念。 总之,学习Dynamo Python Script需要掌握Python编程基础,并运用它以及其他辅助工具(如DynamoPython Package)在Dynamo程序进行编程。在不断练习和实践,深度了解其编程概念和应用,从而提高工作效率,拓宽工作领域。 ### 回答3: Dynamo Python Script是一种基于Python语言的可视化编程工具,能够在Autodesk Revit快速生成复杂的设计数据。学习Dynamo Python Script需要一定的Python编程基础,同时还需要对其在Revit的应用有一定的了解。 首先,在学习Dynamo Python Script之前,需要先购买并安装Revit和Dynamo软件。这两个软件的安装并不难,可以通过官方网站进行下载和安装。安装完成后,开始学习Dynamo Python Script的第一步是了解其基本的编程特性和语法规则。 Dynamo Python Script语言的语法与其他Python语言类似,但有一些特殊的函数和组件,因此需要进行额外的学习和理解。在学习过程,可以查看相关的教程和文档,例如Autodesk官方文档或是课程视频等。 其次,在理解Dynamo Python Script的基本语法和特性后,可以通过实际的项目来进行练习和实践。通常情况下,会使用Dynamo软件来构建节点网络,并在其插入Python脚本。在设计过程,需要不断地进行调试和修改,直至达到所需的效果。 最后,Dynamo Python Script的学习需要不断地实践和探索。只有在实际的项目使用,才能真正理解它的应用价值和优势。同时,也需要不断学习新的知识和技能,以适应不断变化的设计需求。 总之,学习Dynamo Python Script需要有一定的Python编程基础,并且需要在实际的项目不断实践和探索。掌握这种工具可以大大提高Revit的设计效率,让您的设计工作更加高效、准确和灵活。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值