我需要向项目中的所有房间添加新参数。 我无法弄清楚这一点,非常感谢任何帮助。这就是我现在的位置:
using (Transaction t = new Transaction(doc, "Update room parameters"))
{
t.Start();
foreach (var model in roomDataModels)
{
Room room = model.Room;
try
{
Autodesk.Revit.DB.Parameter parameter = room.LookupParameter("Sample new parameter");
if (parameter == null)
{
// Add the missing parameter to the rooms here
// Make it a text parameter, with no default value
}
else if (parameter != null && parameter.HasValue == false)
{
parameter.Set(model.SampleNewParameter);
}
}
catch (Exception e)
{
// ignored
}
}
t.Commit();
我找到了这个解决方案,但似乎无法让它工作:
https://forums.autodesk.com/t5/revit-api-forum/add-parameters-to-element/m-p/7709609#M28042
您指出的线程中的方法对我来说看起来不错,只需快速浏览一下即可。我昨天在Revit API讨论论坛回答了一个相关问题,关于如何创建和添加自定义属性:
您可以使用共享参数来实现这一点。用户也可以选择在 UI 中使它们可见和可编辑。另一种选择是实现可扩展存储数据。在这种情况下,用户没有访问权限或 UI 来查看或编辑,只有加载项可以访问和修改数据。
The Building Coder 在“参数类别”中分享了许多有关如何以编程方式添加共享参数的示例。我最喜欢的实现之一在驱动 CNC 制造和共享参数中进行了描述。