Revit API:创建新的Footprint屋顶

时间:2017-10-23 13:20:16

标签: revit-api revitpythonshell pyrevit

使用revit 2018 API创建足迹屋顶时遇到问题。 基本上,我称之为:

doc.Create.NewFootPrintRoof(ca, doc.GetElement(roofsInstances[0].LevelId), roofsInstances[0].RoofType)

  • “ca”是一个有效的 Autodesk.Revit.DB.CurveArray 对象。这是一个闭环。
  • “doc.GetElement(roofsInstances [0] .LevelId)”是一个有效的 Autodesk.Revit.DB.Level 对象
  • 并且“roofsInstances [0] .RoofType”是有效的 Autodesk.Revit.DB.RoofType 对象

当我调用它时,它返回:异常:值不能为空。

关于可能出现什么问题的任何想法?非常感谢!

1 个答案:

答案 0 :(得分:1)

所以,我发现了什么是错的。首先,这个方法需要第四个参数,一个" out属性" (抱歉,我之前从未见过..),这需要是 ModelCurveArray 。 问题在于,即使我将 ModelCurveArray 对象作为第4个参数,它也在抱怨它期望 StrongBox [ModelCurveArray] 。从来没有听说过。

无论如何,我用这个作为第四个论点:

footPrintToModelCurveMapping = clr.StrongBox[ModelCurveArray](ModelCurveArray())

它有效。