Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python revit Part.Utils如何获取附加结果_Python_Revit Api - Fatal编程技术网

python revit Part.Utils如何获取附加结果

python revit Part.Utils如何获取附加结果,python,revit-api,Python,Revit Api,我设法使用此脚本分割元素,但我还想在我的OUT中收集分割的元素部分,不知怎的,我无法正确执行: 我跳过了标准导入,因为我认为我的混淆在于参数和语法与API方法之间 我试图使用一个预先存在的代码 #proposed by Julien Benoit @jbenoit44 #http://aecuandme.wordpress.com/ 我试图实现的是从输入列表中获取元素,并确定这些元素是否符合创建零件的条件,然后从所有返回true的元素中创建零件 之后我想收集的部分只作为ID列表的结果 此外,

我设法使用此脚本分割元素,但我还想在我的OUT中收集分割的元素部分,不知怎的,我无法正确执行:

我跳过了标准导入,因为我认为我的混淆在于参数和语法与API方法之间

我试图使用一个预先存在的代码

#proposed by Julien Benoit @jbenoit44 
#http://aecuandme.wordpress.com/
我试图实现的是从输入列表中获取元素,并确定这些元素是否符合创建零件的条件,然后从所有返回true的元素中创建零件

之后我想收集的部分只作为ID列表的结果

此外,我期待着扩展它,这样我也可以给出一个曲线或直线的列表,它可以用来划分零件列表

# Make Parts

#feed IN[0] with elements
elts = []
Ids = []
Parts=[]

for i in IN[0]:
    elts.append(UnwrapElement(i))

for e in elts:
    Ids.append(e.Id)

IDS = List[ElementId](Ids)

# Start transaction of Making Parts

TransactionManager.Instance.EnsureInTransaction(doc)

if PartUtils.AreElementsValidForCreateParts(doc, IDS):
    a=PartUtils.CreateParts(doc, IDS)
    b=PartUtils.GetAssociatedParts(doc,IDS,True,True)
    Parts=[]
    for i in b:
        Parts.append(doc.GetElement(i).ToDSType(True))
    List.append(Parts)
doc.Regenerate()

# End Transaction
TransactionManager.Instance.TransactionTaskDone()

OUT = Parts
我相信这与这部分有关:

b=PartUtils.GetAssociatedParts(doc,IDS,True,True)
        Parts=[]
        for i in b:
            Parts.append(doc.GetElement(i).ToDSType(True))
        List.append(Parts)
    doc.Regenerate()

我相信我刚才在Revit API讨论论坛的帖子中回答了一个非常类似的问题:

您可以在调用CreateParts之前订阅,然后取消订阅

这将告诉您在调用期间添加到数据库中的所有元素ID


这在上的讨论中得到了演示。

谢谢Jeremy将尝试在python中对此进行调整