Dynamoでパラメータを操作する
躯体天端レベルをタグに表示するにはどうすればよいでしょうか?残念ながら床タグでは床レベルのパラメータはありませんし、ましてや躯体の天端レベルというパラメータはありません。「レベルからのオフセット」すらタグに表示できないのです。躯体天端レベルをタグに表示するには? |
床の「上部躯体の高さ」はzの値でレベルからの相対距離ではない |
共有パラメータの準備
タグに値を表示するのですから、まずは床に躯体天端レベルの値を表示するインスタンスパラメータを共有パラメータとして作成します。共有パラメータを作成し、床のインスタンスパラメータとして設定する。 |
Dynamo:構造の床を集める
まず、すべての床を集めます。ただし、床のインスタンスプロパティ「構造」にチェックが入っているものだけです。そうでないと「上部躯体の高さ」の値が「なし」になってしまうからです。- [Revit]>[Selection]>[Categories]を追加し「床」を選択。
- [Revit]>[Selection]>[All Elements of Category]を追加し、1と接続。
- [Revit]>[Element]>[GetParameterValurByName]を追加し、2のElementsをElementに接続。
- [Input]>[Basic]>[String]を追加し「構造」と入力、3のParameterNameに接続。
- [Math]>[Operaters]>[==]を追加し、Xに4のvar[]..[]を接続。
- [Input]>[Basic]>[Number]を追加し、値を1とし、==のyに接続。(これによりパラメータの値の1/0をTrue/Falseに変換する)
- [List]>[Modify]>[FilterByBoolMask]を追加し、==のvar[]..[]とmaskを接続。
- 7のlistと2のElementsを接続。
これでFilterByBoolMaskの[in]に、パラメータ「構造」にチェックが入った床のインスタンスを集めることができました。
Dynamo:スラブレベルを計算する
- [Revit]>[Element]>[GetParameterValurByName]を追加し、[in]と[element]を接続。
- [Input]>[Basic]>[String]を追加し「レベル」と入力、2のParameterNameに接続。
- [Revit]>[Element]>[GetParameterValurByName]を追加し、1のvar[]..[]と接続。
- [Input]>[Basic]>[String]を追加し「高さ」と入力、3のParameterNameに接続。これで床の参照レベルの高さを取得できました。
- [Revit]>[Element]>[GetParameterValurByName]を追加し、[in]と[element]を接続。
- [Input]>[Basic]>[String]を追加し「上部躯体の高さ」と入力、5のParameterNameに接続。
- [Math]>[Operators]>[-]を追加し、[x]には5(上部躯体の高さ)のvar[]..[]、[y]には3(レベルの高さ)を接続
ここでWatchノードなどで値を確認してください。
Dynamo:スラブレベルの値を床にセットする
最後に、求めたスラブレベルを床のインスタンスプロパティ「スラブレベル」にセットします。
スラブレベルの値を床にセットする |
- [Revit]>[Element]>[SetParameterValurByName]を追加し、
- elementsを[List.FilterByBoolMask]の[in]へ接続。
- valueを[-]のvar[]..[]に接続
- [Input]>[Basic]>[String]を追加し「スラブレベル」と入力し、1のParameterNameに接続。
あとは、共有パラメータ「スラブレベル」を使った床タグを配置すればスラブレベルが表示されます。Dynamoを開いておけば、床の変更にリアルタイムに追随します。
モデルの変更にリアルタイムに追随する |
躯体の天端なので、仕上があってもスラブレベルを表示します。
また、躯体境界よりも上にレイヤがあっても問題ありません。
仕上が入っても躯体レベルを表示する |