2018年9月24日月曜日

スラブのレベルごとに色分けする

パラメータの値で色分けするには?

躯体図や構造伏図でスラブをレベルごとに色分けできるとわかりやすいのですが、その方法としてはフィルタを使う方法があります。しかしながら、「レベル高さからのオフセット(2018)」の値を指定しなくてはいけないので、新しい値が発生するたびにフィルタを追加する必要があります。
ダイナモを使って、ダイナミックに色を更新してみましょう。
床のパラメータの値で色分けするには?

Dynamo:現在のビューに表示されている床を選択する




  1. [Revit]>[Views]>[View]>[All Elements In Active View]①
  2. [List]>[Modify]>[RemoveIfNot]②を追加し、①のelementsとlistを接続。
  3. [Input]>[Basic]>[String]を追加し、「Floor」と設定し、②のtypeに接続。
これで現在のビューに表示されている床をすべて選択できました。

Dynamo:パラメータの値を取り出す


  1. [Revit]>[Element]>[GetParameterValueByName]③を追加し、②のVar[]..[]とelementを接続。
  2. [Input]>[Basic]>[String]を追加し、「レベルからの高さオフセット」と設定し、③のparameterNameと接続。
パラメータの名前は各バージョンで異なりますので、床を選択してパラメータの名称を確認してください。

Dynamo:色範囲を設定する

取得した値を色に割り当てます。そのために割り当てる「色の範囲」を決めます。今回は一番低い値を赤、一番高い値を青色としてそのグラデーションを使ってパラメータの値を表現してみましょう。

  1. [Input]>[Basic]>[Number]①を二つ追加し、それぞれ「0」と[255]を入力。
  2. [Display]>[Color]>[ByARGB]②をつ追加。
  3. ①の255を②のrと接続し、g、bを①の0のノードと接続。これが赤です。
  4. [Display]>[Color]>[ByARGB]をもう一つ追加。
  5. bに255のノードを、他を0のノードと接続。これが青です。
  6. [List]>[Generate]>[List Create]を追加し、[+]をクリックしてItem1を追加。
  7. item0に赤、item1に青を接続
  8. [Display]>[Color Range]>[Color Range]を追加し、List Createのlistをcolorsに追加。
カラーが左から右に向かって赤から青へ色が変化していることを確認してください。エラーになりますが気にしないでください。

Dynamo:パラメータの値を0~1に再割り当てする


Color Rangeのvalueは0~1の値しか受け付けないので、取得したパラメータの値を0から1の値に再割り当てする必要があります。

  1. [Math]>[RemapRange]を追加し[Element.GetParameterValueByName]のvar[]..[]とnumberを接続。
  2. Input]>[Basic]>[Number]を二つ追加し、それぞれ「0」と[1]を入力。
  3. [RemapRang]のnewMinに0、newMaxに1を接続。
これで、パラメータの値が、0~1の値に再割り当てされます。

Dynamo:要素の色付け

現在のビューで要素を色付けしてみます。

  1. [Math.RemapRange]のlistを[Color Range]のvalue に接続。
  2. [Revit]>[Elements]>[Element]>[OverrideColorInView]を追加し、[Color Range]のcolorをcolorに接続。
  3. [List.RemoveIfNot]のvar[]..[]をelementに接続。
以上で、現在のビューにある床をレベルごとに色分けすることができました。

試しに、床の「レベルからのオフセット」の値を変更してみると・・・

色が自動的に再割り当てされることがわかります。これはもちろん3Dビュー(隠線処理・シェーディング・べた塗りのみ)でも有効です。

こちらのグラフを参考にしていろいろと試してみてください。