Python+DRVT 从外部调用 Revit:创建新项目

之前的示例中已实现从外部让Revit进程打开指项目文件。从完备的角度看,能打开项目,当然需要创建项目。这里我们来看一下如何按指定的模板创建新的项目文件,并在Revit中打开:

# drvt_pybind 支持多会话、多文档,先从简单的单会话、单文档开始
# MyContext是在Python中用户自定义的单会话、单文档的上下文管理类
from packs.core import MyContext

# 导入驱动 Revit 的核心模块
from drvt_pybind.Autodesk import Revit
from drvt_pybind.Autodesk.Revit import DB

# 创建新的上下文(可以按需创建多个,意味着能直接管理多个 Revit 会话)
ctx = MyContext("在这里指定会话名称")
# 初始化会话(启动 Revit 进程实例)
ctx.initSession()

# 指定需要使用的模板文件
template = "结构样板.rte"
fileName = "新项目文件.rvt"
# 按指定的模板创建新的项目文件
ctx.createAndActiveDoc(template, fileName)

# 取 DB.Document 对象
doc = ctx.getDoc()

# 获取项目信息对象
prjInfo = doc.getProjectInformation()
# 获取模板中带进来的项目信息并输出
print(f"ID: {prjInfo.getId().getIntegerValue()}")
print(f"Address: {prjInfo.getAddress()}")
print(f"ClientName: {prjInfo.getClientName()}")
print(f"IssueDate: {prjInfo.getIssueDate()}")
print(f"Name: {prjInfo.getName()}")

try:
    # 锁定并启动事务,在事务提交成功的前提下,事务名称“示例6”会出现在Revit工具栏的撤消列表中
    ctx.lockAndStartTransaction("示例6")
    # 更新项目信息
    prjInfo.setAddress("Address info")
    prjInfo.setClientName("Client name")
    prjInfo.setIssueDate("2025.08.29")
    prjInfo.setName("Project name")

    # 按需继续创建或修改
    ...

    # 提交事务并解锁
    ctx.commitTransactionAndUnlock()
except Exception as e:
    # 异常处理
    print(f"{e}")
    # 回滚事务并解锁
    ctx.rollbackTransactionAndUnlock()

# 保存文档并关闭
ctx.closeDoc(True)

# 结束会话(Revit 进程实例将退出)
ctx.dispose()

可以与打开指定的项目文件对比一下,创建新的项目也一样:简单、直接,然后就可以在外部操作该文件了,读取、写入、批量创建、修改、与自有系统深度融合……

无需分心去解决一项项的技术挑战,只需关注业务逻辑,充分发挥创造力与整合能力吧。

在这寥寥几行代码的背后:

  • Revit 被自动而可见地启动
  • 新的项目文档被创建并立即可用
  • Python可调试、Revit可交互

没有手动点击、无需再写 Revit 插件、代码可调试、Revit可交互,只有纯粹的自动化。

DRVT 的价值

让 Revit 成为你 Python 生态中的 可调用组件
可以把它理解为:“Revit-as-a-Component” ——
不需要实现新的 Revit 插件,只需要 Python + DRVT

这不仅仅是自动化,
更是一种全新的方式 —— 把 Revit 作为可编程模块嵌入到任意工作流、平台、自动生产流水线……让我们一起继续拓展各种可能性。


  相关文章

Python+DRVT 从外部调用 Revit:从外部启动 Revit-CSDN博客

Python+DRVT 从外部调用 Revit:打开项目文件-CSDN博客

Python+DRVT 从外部调用 Revit:获取项目信息-CSDN博客

Python+DRVT 从外部调用 Revit:更新项目信息-CSDN博客

Python+DRVT 从外部调用 Revit:第一个完整示例-CSDN博客

Python+DRVT 从外部调用 Revit:创建新项目-CSDN博客

Python+DRVT 从外部调用 Revit:创建族文档-CSDN博客

Python+DRVT 从外部调用 Revit:批量创建轴网-CSDN博客

Python+DRVT 从外部调用 Revit:批量创建标高-CSDN博客

Python+DRVT 从外部调用 Revit:创建风管系统加劲肋-CSDN博客

Python+DRVT 从外部调用 Revit:创建剖面-CSDN博客

深度嵌入数字化工作流:DRVT 的思考与实践-CSDN博客

从插件化走向系统集成——Revit-CSDN博客

Revit变身智能组件,BIM未来可期-CSDN博客

#SystemIntegration #Revit #RevitAPI #Python #Automation #DesignAutomation #BIM #Interop #AEC #DigitalTwin #Workflow

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值