我想将参数值传递给 Revit 系列。我在谷歌上花了很多时间。结果,我得到了几个链接,这些链接告诉使用 VB.NET 读取和写入参数值 使用 VB.NET 读取和写入参数值
在此示例中,我们正在获取参数并将值写入名为ParametersValue.txt
. 但我很困惑,我应该如何将此文件传递给 Revit?我希望有人能引导我朝着正确的方向前进。我真的很感激!
我想将参数值传递给 Revit 系列。我在谷歌上花了很多时间。结果,我得到了几个链接,这些链接告诉使用 VB.NET 读取和写入参数值 使用 VB.NET 读取和写入参数值
在此示例中,我们正在获取参数并将值写入名为ParametersValue.txt
. 但我很困惑,我应该如何将此文件传递给 Revit?我希望有人能引导我朝着正确的方向前进。我真的很感激!
下载上一篇文章中提到的 SDK 后,我要做的第一件事就是安装包含的 revit 查找插件。这对于确定在 API 中调用哪些元素以及确定参数使用的存储类型非常有价值。如果您要更新的所有参数都是字符串,那么从您的文本文件中设置这些参数将相当简单。但是,例如,如果您认为是字符串的参数值实际上是由 elementid 设置的,那么将涉及一些编码来获取正确的信息来设置参数值。
您可以使用“FamilyManager”类轻松地将参数传递给组件系列。FamilyManager 类提供对族类型和参数的访问。只需获取参数并设置其值即可。当我们在组件族的族编辑器中工作时,我们必须在项目中加载参数值。我在 Revit 2019 上试过这个。你必须
然后检查该族的属性中的参数值。
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
我在编写 Revit API 代码时使用 C#,因为所有示例都是用 C# 编写的,但我可以通过一些额外的细节让你指出正确的方向。您是否希望为特定参数赋值?例如:Height=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
它有大量的样本也可能有所帮助。祝你好运!