问题描述:
在Dynamo代码编程中,我们可能经常遇到这种问题:
"expected Element, got Familyinstance "
或者
"expected Element, got Pipe"
@error:expected element, got familyinstance
原因分析:
这是因为我们在利用Dynamo语句生成的族实例之后,不能作为某些dynamo节点包的输入,需要将其转化为element
解决方案:
以下给出解决代码:
import clr
clr.AddReference('RevitAPI')
import Autodesk
from Autodesk.Revit.DB import *
from Autodesk.Revit.DB import Element as RevitElement
clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.GeometryConversion)
clr.ImportExtensions(Revit.Elements)
clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
#获取文档
doc = DocumentManager.Instance.CurrentDBDocument
#假设pipe是我们创建的管道实例
#获取Id
pipe_id = UnwrapElement(pipe).Id
#获取element
pipe = doc.GetElement(pipe_id).ToDSType(True)
希望我的小小笔记能帮到您,谢谢观看!!