【问题标题】:Pass parameter value to Revit family using .net api使用 .net api 将参数值传递给 Revit 系列
【发布时间】:2013-12-13 07:58:52
【问题描述】:

我想将参数值传递给 Revit 系列。我在谷歌上花了很多时间。结果,我得到了几个链接,这些链接告诉使用 VB.NET 读取和写入参数值 Read and Write Parameter Values with VB.NET

在本例中,我们获取参数并将值写入名为ParametersValue.txt 的文本文件中。但我很困惑,我应该如何将此文件传递给 Revit? 我希望有人能引导我朝着正确的方向前进。我真的很感激!

【问题讨论】:

    标签: vb.net revit-api


    【解决方案1】:

    您可以使用“FamilyManager”类轻松地将参数传递给组件系列。 FamilyManager 类提供对族类型和参数的访问。只需获取参数并设置其值即可。当我们在组件族的族编辑器中工作时,我们必须在项目中加载参数值。我在 Revit 2019 上试过这个。你必须

    1. 在族编辑器中打开族
    2. 激活插件
    3. 点击插件功能区上的加载到项目按钮。

    然后检查该族的属性中的参数值。

    Public Sub SetParamtersForComponentFamilies(ByVal doc As Document, ByVal parameterValue As String)
      Dim f As Family = doc.OwnerFamily
    
      Using trans As Transaction = New Transaction(doc, "Creating transaction for parameters")
        trans.Start()
        Dim familyMgr As FamilyManager = doc.FamilyManager
        Dim n As Integer = familyMgr.Parameters.Size
        Dim comment As FamilyParameter = familyMgr.get_Parameter(BuiltInParameter.ALL_MODEL_TYPE_COMMENTS)
        familyMgr.Set(comment, parameterValue)
        TaskDialog.Show("Paramters", "TypeComments : Updated")
        trans.Commit()
      End Using
    End Sub
    

    【讨论】:

      【解决方案2】:

      我在编写 Revit API 代码时使用 C#,因为所有示例都是用 C# 编写的,但我可以通过一些额外的细节为您指明正确的方向。您是否希望为特定参数赋值?例如:高度=30"? 如果是这样,您首先必须“获取”参数。在蜘蛛网的示例中,他遍历了选定元素的每个参数:

      Dim element As Autodesk.Revit.DB.Element = SelElement(cmdData.Application.ActiveUIDocument.Selection).Element '提示您选择一个元素

      For Each p As Parameter In element.Parameters 'Goes through every parameter in "element" and assigns the parameter to "p"
        If p.Definition.Name = "Height" Then 'Check if "p" is the name you want, "Height"
          p.Set(2.5) 'Because Revit knows FEET, so in order to type in 30in you use 2.5 
        End If
      Next 'Loop through parameters
      

      如果您正在寻找它来做其他事情,请再次发布。

      另外,不确定您是否知道,但是一个完整的博客是很棒的 Revit API 信息是 Jeremy Tammik 的:http://thebuildingcoder.typepad.com。他的很多例子都是 C#,这就是我开始学习 C# 而不是 VB.NET 的原因。

      如果您还没有,请确保在此处获取 Revit 2014 SDK:http://images.autodesk.com/adsk/files/Revit2014SDK_RTM0.exe

      它有大量样本也可能有所帮助。祝你好运!

      【讨论】:

      • 嗨,感谢您为我指明方向。我要做的是我有一个 rfa 文件。它有几个参数,我想通过加载项从外部文件(如(txt 或 xls))为它们分配值,并以编程方式生成 bim。我不知道这是否可行,但这就是我想要做的
      • 听起来你可以只使用类型目录:help.autodesk.com/view/RVT/2014/ENU/… 例如,查看结构钢库中的族,如“W-Wide Flange.rfa”,它是类型目录“W-Wide”法兰.txt"。
      【解决方案3】:

      下载上一篇文章中提到的 SDK 后,我要做的第一件事就是安装包含的 revit 查找插件。这对于确定在 API 中调用哪些元素以及确定参数使用的存储类型非常有价值。如果您要更新的所有参数都是字符串,那么从您的文本文件中设置这些参数将相当简单。但是,例如,如果您认为是字符串的参数值实际上是由 elementid 设置的,那么将涉及一些编码来获取正确的信息来设置参数值。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-05-15
        • 2019-05-14
        • 2011-08-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多