通过Revit API向所有房间添加新参数

问题描述 投票:0回答:1

我需要向项目中的所有房间添加新参数。 我无法弄清楚这一点,非常感谢任何帮助。这就是我现在的位置:

        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

c# revit-api
1个回答
0
投票

您指出的线程中的方法对我来说看起来不错,只需快速浏览一下即可。我昨天在Revit API讨论论坛回答了一个相关问题,关于如何创建和添加自定义属性

您可以使用共享参数来实现这一点。用户也可以选择在 UI 中使它们可见和可编辑。另一种选择是实现可扩展存储数据。在这种情况下,用户没有访问权限或 UI 来查看或编辑,只有加载项可以访问和修改数据。

The Building Coder 在“参数类别”中分享了许多有关如何以编程方式添加共享参数的示例。我最喜欢的实现之一在驱动 CNC 制造和共享参数中进行了描述。

© www.soinside.com 2019 - 2024. All rights reserved.