使用.net api将参数值传递给Revit系列

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

我想将参数值传递给Revit family。我在google上花了很多时间。结果我得到了几个链接,用VB.NET Read and Write Parameter Values with VB.NET告诉读写参数值

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

vb.net revit-api
3个回答
0
投票

我在编写Revit API代码时使用C#,因为这是所有样本都写入的内容,但我可能会让您指出正确的方向并附加一些其他细节。您是否希望为特定参数指定值?例如:Height = 30“?如果是这样,你首先必须”获取“参数。在spidernet的例子中,他遍历所选元素的每个参数:

Dim元素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

它有一些TON样本也可能有所帮助。祝好运!


2
投票

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


1
投票

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

  1. 在家庭编辑中打开家庭
  2. 激活插件
  3. 单击addins功能区上的Load into Project按钮。

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

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
© www.soinside.com 2019 - 2024. All rights reserved.