Revit API: создание новой крыши Footprint

У меня проблемы с созданием крыши с использованием API Revit 2018. По сути, я звоню так:

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 ответ

Решение

Итак, я выяснил, что не так. Во-первых, этому методу нужен 4-й аргумент, "атрибут out" (извините, я никогда раньше такого не видел…), который должен быть ModelCurveArray. Проблема заключалась в том, что даже когда я дал объект ModelCurveArray в качестве 4-го аргумента, он тогда жаловался, что ожидал StrongBox [ModelCurveArray]. Никогда об этом не слышал.

Во всяком случае, я использовал это в качестве 4-го аргумента:

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

И это работает.

Другие вопросы по тегам