Revit Python Shell:如何获取项目中没有实例的“管道类型”族的类型名称?

问题描述 投票:0回答:1

最终目标是将我想要的PipeType(Plex Wire)的ElementId传递给Pipe.Create,但是我不知道如何在没有要检查的Pipe实例的项目中选择正确的PipeType ElementId。

在测试项目中,我已经使用传输项目标准来移交我要使用的PipeType,并手动创建了一些Pipe实例进行检查...

>>> import Autodesk.Revit as R
>>> types=R.DB.FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_PipeCurves).WhereElementIsElementType().ToElements()
>>> elems=R.DB.FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_PipeCurves).WhereElementIsNotElementType().ToElements()
>>> for i in elems: print(i.Name)
...
Default
Default
Default
Plex Wire
>>> for i in types: print(i.Name)
... 
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
AttributeError: Name

...但是正如我所提到的,我希望能够从包含所需PipeType(来自项目模板)但没有预先存在的Pipe实例的项目中使用Pipe.Create。

谢谢

revit-api revitpythonshell
1个回答
0
投票
在此之前,最简单的选择是使用临时事务把戏:打开一个事务,插入一个虚拟实例,获取所需的名称,然后回滚该事务。
© www.soinside.com 2019 - 2024. All rights reserved.