【问题标题】:Revit API: Creating a new Footprint roofRevit API:创建新的足迹屋顶
【发布时间】:2018-04-04 01:31:08
【问题描述】:

我在使用 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对象

当我调用它时,它返回:Exception: Value cannot be null.

知道可能是什么问题吗?非常感谢!

【问题讨论】:

  • 嘿 Arnaud,看起来其中一个 args 不正确 - 您能否发布更多代码向我们展示您是如何构建每个 args 的?
  • 亲爱的 Callum,当我试图为您提供一个可重现的示例时,我找到了解决方案 :) 我将在下面发布!谢谢!

标签: revit-api revitpythonshell pyrevit


【解决方案1】:

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

不管怎样,我用这个作为第四个参数:

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

它有效。

【讨论】:

    猜你喜欢
    • 2018-12-17
    • 2016-11-29
    • 2015-12-19
    • 1970-01-01
    • 1970-01-01
    • 2013-02-02
    • 2021-01-17
    • 2019-08-06
    • 2013-02-21
    相关资源
    最近更新 更多