如何向 Forge 中的元素添加参数 API

How to add parameters to an element in Forge API

我正在做一个项目,我需要在 Forge 中创建一个元素(例如一面墙)并向其添加共享参数 API。

我使用 Design automation API for Revit 创建了墙,但由于 Design Automation API 中没有 UI,我无法创建参数
有没有像下面代码这样的方法,我们可以在 Revit API.

的事务中编写
if (element.LookupParameter(param).IsReadOnly == false)
{
    if (!type.Name.Equals("Double"))
    {
        if (!string.IsNullOrEmpty(value.ToString()))
            element.LookupParameter(param).Set(value.ToString());
    }
    else
    {
        if (!double.IsNaN((double)value))
            element.LookupParameter(param).Set((double)value);
    }
}

是否可以在 Design Automation API 中为特定元素创建实例和类型参数,或者我是否必须使用其他 Forge API?
如果有人能指导我,那就太好了。
谢谢

是的,您可以使用 Revit API 在 Forge Design Automation 上下文中创建共享参数。为了更轻松地进行测试,我建议您在移动到设计自动化上下文之前,在普通桌面 Revit 中实施和测试所需的功能。 Building Coder 在 DA4R – Design Automation for Revit.

的相应主题组中提供了更多提示

我碰巧制作了一个演示来使用 Design Automation 的共享参数。源项目位于 https://github.com/xiaodongliang/Revit-room-space-with-Forge-viewer

它基于我们学习锻造教程的框架。添加共享参数的相关代码是这些行: https://github.com/xiaodongliang/Revit-room-space-with-Forge-viewer/blob/master/updateRVTParam/Commands.cs#L259-L269

  //add shared parameter definition
  AddSetOfSharedParameters(rvtDoc);

  //......
  //......

  //add shared parameter to the specific shape
 using (Transaction tx = new Transaction(rvtDoc))
                    {
                        tx.Start("Change P");

                        Element readyDS = rvtDoc.GetElement(roomId);
                        Parameter p = readyDS.LookupParameter("RoomNumber");
                        if (p != null)
                        {
                            p.Set(room.Number.ToString());
                        }
                        tx.Commit();
                    }

希望对您有所帮助。