【问题标题】:Revit API: creating custom pulldown parameterRevit API:创建自定义下拉参数
【发布时间】:2014-08-17 19:43:13
【问题描述】:

我的团队正在为 Autodesk Revit 开发一个插件。我们希望为用户提供一个自定义参数(项目或共享),该参数显示在所有(或大多数)结构元素的“属性”面板中,允许用户从一小组预定义值中进行选择。即“枚举”类型的参数。例如,假设我们要添加一个参数,其值可以是“Red”、“Yellow”、“Blue”和“Green”,其含义仅与我们插件的上下文相关。

令我们惊讶的是,这一点也不简单,以至于我还没有找到一个代码示例来演示如何做到这一点。我认为这在 Revit 世界中是一个罕见的用例。

一个有希望的线索是“家庭类型”参数类型,但目前尚不清楚如何将其用于我们的目的。从另一个论坛帖子中的提及来看,关键时间表也可能会有所帮助。如果有人可以解释如何使用这些机制来达到这个目的,请提供任何和所有建议。

从博客文章中,我了解到,为了方便起见,一个文本参数将显示一个下拉列表,其中包含模型中已经存在的参数的所有值,但这并不能完全解决我们的问题 - 我们需要用户能够在模型中不存在这些值的情况下分配值。

较小的解决方案是将参数设置为整​​数或文本值,并在必要时让用户手动键入该值。不太理想,部分原因是用户可能键入不正确。我们希望他们能够简单地从下拉菜单中选择我们预定义的值之一。

另一个较小的解决方案是一组是/否参数,每个枚举值一个。如果用户不小心为单个元素选择了多个元素,则会出现问题。

有谁知道如何创建这样一个“枚举”下拉参数?

我们会弄清楚,但这里的任何帮助都会大大加快研究速度。

【问题讨论】:

    标签: parameters enums revit


    【解决方案1】:

    在与 Revit 顾问交谈后,我确定无法在 Revit 中使用自定义值创建下拉参数。相反,解决方案是创建多个是/否复选框,并为复选框提供使它们互斥的条件逻辑。这被称为“if/then 参数”。我还没有找到通过API设置参数的条件逻辑的代码,或者有机会进一步研究,但是论坛上的评论暗示这很容易做到。

    如果有人可以发布代码来执行此操作,我会将其标记为答案。

    【讨论】:

      【解决方案2】:

      查看“计划键”。您可以使用密钥计划的 api 填充参数。这将为您提供属性托盘中的下拉列表。然后根据选择哪个值,将设置其他值。我建议在 Revit 中创建一个计划密钥并对其进行修改以了解它正在做什么,然后您可以使用 api 创建它。

      【讨论】:

        猜你喜欢
        • 2021-05-17
        • 1970-01-01
        • 2013-05-21
        • 1970-01-01
        • 2023-03-18
        • 2019-08-06
        • 1970-01-01
        • 2019-11-15
        • 2016-04-11
        相关资源
        最近更新 更多