0

助けてくれてありがとう。何が間違っているのかわからず、とてもイライラしています。まず、背景を少し...

プログラム: Revit MEP 2015 IDE: VS 2013 Ultimate

共有パラメータ ファイルを作成し、そのファイルのパラメータをプロジェクト パラメータに追加しました。これらのパラメータは、電線管経路、電線管継手、および電線管に適用されています。

VB.NET を使用して問題なくパラメーターを設定しています。コードが実行された後、要素のプロパティ ウィンドウに適用された予想されるテキストを確認できます。値を入力するために使用されるコードは次のとおりです。

移入:

Dim p as Parameter = Nothing
Dim VarName as String = "Parameter Name"
Dim VarVal as String = "Parameter Value"

p = elem.LookupParameter(VarName)      <-- elem is passed in to the function as an Element

If p IsNot Nothing Then
   p.Set(VarVal)
End if

ここでエラーに遭遇します。値を取得しようとすると、パラメーターの定義名でパラメーターを取得できますが、値は常に空白です。取得に使用されるコードは次のとおりです...

Try
  For Each e As Element In fec.OfCategory(BuiltInCategory.OST_ConduitRun)
      sTemp = sTemp & "Name: " & P.Definition.Name & vbCrLf & "Value: " & P.AsString & vbCrLf & "Value As: " & P.AsValueString & vbCrLf & vbCrLf
      sTemp2 = sTemp2 & "Name: " & GetParamInfo(P, doc)
  Next
      MessageBox.Show(sTemp)
Catch ex As Exception
  MessageBox.Show(ex.Message)
End Try

メッセージ ボックスにはすべてのパラメータ名が正しく表示され、Revit パラメータの値が表示されます。ただし、共有パラメーターにはパラメーター名のみが表示され、値は常に空白です。私がこれについて行くべき別の方法はありますか?奇妙なことに、このようにユーザー選択による参照を使用すると、共有パラメーターの値を確認できます...

Dim uiDoc As UIDocument = app.ActiveUIDocument
Dim Sel As Selection = uiDoc.Selection
Dim pr As Reference = Nothing
Dim doc As Document = uiDoc.Document
Dim fec As New FilteredElementCollector(doc)
Dim filter As New ElementCategoryFilter(BuiltInCategory.OST_ConduitRun)
Dim sTemp As String = "", sTemp2 As String = ""
Dim elemcol As FilteredElementCollector = fec.OfCategory(BuiltInCategory.OST_ConduitRun)
Dim e As Element = Nothing, el As Element = Nothing
Dim P As Parameter


pr = Sel.PickObject(ObjectType.Element)
e = doc.GetElement(pr)

For Each P in e.Paramters 
    sTemp = sTemp & "Name: " & P.Definition.Name & vbCrLf & "Value: " & P.AsString & vbCrLf & "Value As: " & P.AsValueString & vbCrLf & vbCrLf
    sTemp2 = sTemp2 & "Name: " & GetParamInfo(P, doc)
Next
MessageBox.Show(sTemp)

上記の方法で、ユーザーがオブジェクトを直接選択すると、共有パラメーターの値と名前が表示されます。それらはどう違いますか?

値が最初に設定されているときに、私が見なければならない何らかのバインディングはありますか? みんなの助けを前もってありがとう。

よろしく、 グレン

4

1 に答える 1