栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

使用python开发Revit|PyRevit开发:模块详解

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用python开发Revit|PyRevit开发:模块详解

代码模块详解 1.引入RevitApi类库(无需更改)

不需要更改,在程序起始位置复制一下代码即可

# 引用
clr.AddReference('RevitAPI')
clr.AddReference('RevitAPIUI')
clr.AddReference("System")
# 导入
from Autodesk.Revit.UI import *
from Autodesk.Revit.DB import *
2.实例当前程序变量(无需更改)

默认对当前文档进行操作,定义全局变量

uidoc = __revit__.ActiveUIdocument
uiapp = __revit__.Application

# 当前文档
doc = uidoc .document
3.1.事务装饰器(无需更改)

设置事务装饰器方法,在需要开始事务的逻辑代码方法上添加此装饰器即可

def transaction(func):
    def wrapper(*args, **kwargs):
        t = Transaction(doc, "pyRevit")
        t.Start()
        try:
            f = func(*args, **kwargs)
            if f:
                t.Commit()
            else:
                t.RollBack()
        except Exception as e:
            print("Error:%s" % e)
            t.RollBack()
            f = False
        return f
    return wrapper
3.2过滤器(无需更改)

快速过滤当前document内容进行业务逻辑的处理

class pyRevit(object):
    @staticmethod
    def of_class(typeof):
        return FilteredElementCollector(doc).OfClass(typeof).ToElements()
4.功能业务(自实现)

如需要什么样的业务,便在此类下编写逻辑代码即可

class App(pyRevit):
    def __init__(self):
        pass # 初始化业务逻辑
    @transaction
    def main(self):
        try:
            # 业务代码
            return 1
        except Exception as e:
            print(e)
            return 0


if __name__ == '__main__':
    app = App()
    app.main()

最后祝大家天天进步!!学习Python最重要的就是心态。我们在学习过程中必然会遇到很多难题,可能自己想破脑袋都无法解决。这都是正常的,千万别急着否定自己,怀疑自己。如果大家在刚开始学习中遇到困难,想找一个python学习交流环境,可以 加入我们,领取学习资料、一起讨论。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/725210.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号