Dynamoでパラメータを操作する
躯体天端レベルをタグに表示するにはどうすればよいでしょうか?残念ながら床タグでは床レベルのパラメータはありませんし、ましてや躯体の天端レベルというパラメータはありません。「レベルからのオフセット」すらタグに表示できないのです。
|
躯体天端レベルをタグに表示するには? |
「上部躯体の高さ」というパラメータが使用可能ですが、惜しいかなこの値は高さ(Z)の座標値で、レベルからの相対距離ではありません。
|
床の「上部躯体の高さ」はzの値でレベルからの相対距離ではない |
APIを使えはもちろん可能ですが、この「床の躯体天端レベルをタグに表示する」というお題をダイナモで解いてみます。
共有パラメータの準備
タグに値を表示するのですから、まずは床に躯体天端レベルの値を表示するインスタンスパラメータを共有パラメータとして作成します。
|
共有パラメータを作成し、床のインスタンスパラメータとして設定する。 |
ここでは「スラブレベル」という共有パラメータを作成し、床のインスタンスプロパティとして設定しました。
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を開いておけば、床の変更にリアルタイムに追随します。
|
モデルの変更にリアルタイムに追随する |
躯体の天端なので、仕上があってもスラブレベルを表示します。
また、躯体境界よりも上にレイヤがあっても問題ありません。
|
仕上が入っても躯体レベルを表示する |
このグラフはこちらからダウンロードできます。