tips005

データとツリー②
— List Item

Sets ▸ List ▸ List Item

リストの中から、番号を指定して取り出すコンポーネント。
番号は 0 から数える

何をつなぐか

  • L(List)に元のリスト、i(Index)に取り出したい番号をつなぐ
  • W(Wrap=折り返し)は、番号がリストの範囲から外れたときの振る舞いを決める
元のリストは左のパネルの A〜E。①が番号を1つ渡した形、②が番号を並べた形、③が範囲の外を渡した形、④が出力を増やした形。クリックで拡大。

ListA〜E の5個

番号01234
中身ABCDE

① 番号を1つ渡す

  • i2 を渡す(図①の①・オレンジの枠)

Resulti = 2

出てくるものC

0 から数えるので、2 は3番目の C

② 番号を並べて渡す

  • i0 2 4 の3つを渡す(図①の②・青い枠)

Resulti = 0, 2, 4

出てくるものACE

List Item は渡した番号の数だけ動く。
3個ほしいからといって List Item を3つ並べる必要はない。

③ 範囲の外の番号を渡す

  • i-1 を渡し、W を False と True で見比べる(図①の③)
W = True(既定)端で折り返す。-1 は最後の E5 は先頭の A になる
W = False出力は null(空)。コンポーネントがオレンジになり、Supplied index too low. が出る。大きすぎる番号なら Supplied index too high.

W は何もつながなくても True
範囲の外の番号を渡しても、警告なしに別の項目が返ってくる。

WrapW = True・5個のリスト

i-6-5-3-15712
出てくるものEACEACC

④ 出力を増やすと隣もまとめて出る

  • List Item は出力側だけを増やせる。
    キャンバスを拡大して出力の脇に出る + を押すと、出力が1つ増える(図①の④・青い枠)

Resulti = 2 / W = True

出力i+1+2+3
中身CDEA

+1 は i の次、+2 はそのまた次。
+3 が指す番号 5 はこのリストに無いので、Wrap で先頭の A に戻っている。

使用例

リストの中身は数値や文字だけとは限らない。
Deconstruct Brep(立体を面・線・点にばらすコンポーネント)が返す面のリストでも、取り出し方は同じ。

上(オレンジ)が List Item を通す前、下(青)が通したあと。下の i に渡している 5 が、取り出す面の番号。クリックで拡大。

図②のパネルの行数が、そのままリストの長さ。
List Item を挟むと、下流へ流れる面は6つから1つに減る。

面の番号は見た目の順番とは限らない。
この箱では上の面が 5、下の面が 4、横の4面が 03 だった。

使いどころ

  • 並んだ柱や梁から、端の1本・真ん中の1本だけを取り出す。
  • 分割した曲線の点から、最初と最後だけを取り出す。
  • 色や寸法をリストで持っておき、番号で使い分ける。

注意

増やした +1 以降が範囲の外に出ても、警告は出ない。
W が False で i = 2 なら +3null になるが、コンポーネントは白いまま。
面や線の並び順は、作り方によって変わる。
どの番号が何になるかは、いちど Panel につないで確かめる。

番号ではなく条件で選ぶ Cull Pattern は、別の tips で扱う。

#データ抽出