python和revit_Revit中Dynamo编程——Python脚本编程与RevitAPI交互的注意事项

本文介绍了在Dynamo 0.7版本及以上如何使用Python脚本与RevitAPI进行交互,包括访问输入变量、操作Revit元素、单位转换和事务管理。强调了使用DocumentManager和TransactionManager的重要性,以及如何处理元素的封装和解封。
摘要由CSDN通过智能技术生成

本文转自

这可以说是在Dynamo中用RevitAPI的最最好的一篇文章,首先谢谢作者的翻译!!!

输入变量

在0.7版本之后的Dynamo中,Python脚本的节点可接受的变量数目是可变的。在0.6以前的旧版本中,每个输入值都要设定一个变量。而在新版本中,多个输入值被打包进一个名叫IN的列表变量中。你可以通过索引值来获取给列表中的每个输入值,例如使用IN[0]访问第一个输入值,使用IN[1]访问第二个输入值,以此类推。

可以利用以下代码查询输入值的个数,利用循环函数便可遍历每个输入值:

count = 0

for number in IN:

count += number

OUT = count

RevitAPI

为了方便Dynamo更好地调用RevitAPI,我们编写了一个完整的库来与Revit交互。

Document and Application

Revit文档可通过Dynamo库中的DocumentManager类访问:

import clr

引用DocumentManager

clr.AddReference(“RevitServices”)

import RevitServices

from RevitServices.Persistence import DocumentManager

doc = DocumentManager.Instance.CurrentDBDocument

uiapp = DocumentManager.Instance.CurrentUIApplication

app = uiapp.Application

元素

Dynamo中的元素都是由Revit封装的。在Python脚本中,你可以通过调用Revit.Elements命名空间中的类来对它们进行操作。

import clr

引用RevitNodes

clr.AddReference(“RevitNodes”)

import Revit

使用 ‘from Revit.Elements import *’来引用Revit.Elements中需要的类

from Revit.Elements import CurveByPoints, ReferencePoint

import System

startRefPt = IN[0]

endRefPt = IN[1]

refPtArray = System.Array[ReferencePoint]([startRefPt, endRefPt])

OUT = CurveByPoints.ByReferencePoints(refPtArray)

如果你希望直接使用RevitAPI,则需要在使用之前对元素进行解封。使用TransactionManager类来使你的操作是在Rev

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值