0

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

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

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

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

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

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

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

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

4

2 回答 2

0

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

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

于 2014-07-28T15:00:04.253 回答
0

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

于 2015-06-20T14:41:40.123 回答