tips005
データとツリー②
— List Item
Sets ▸ List ▸ List Item
リストの中から、番号を指定して取り出すコンポーネント。
番号は 0 から数える。
何をつなぐか
- L(List)に元のリスト、i(Index)に取り出したい番号をつなぐ
- W(Wrap=折り返し)は、番号がリストの範囲から外れたときの振る舞いを決める
ListA〜E の5個
| 番号 | 0 | 1 | 2 | 3 | 4 |
|---|---|---|---|---|---|
| 中身 | A | B | C | D | E |
① 番号を1つ渡す
- i に
2を渡す(図①の①・オレンジの枠)
Resulti = 2
| 出てくるもの | C |
|---|
0 から数えるので、2 は3番目の C。
② 番号を並べて渡す
- i に
024の3つを渡す(図①の②・青い枠)
Resulti = 0, 2, 4
| 出てくるもの | A | C | E |
|---|
List Item は渡した番号の数だけ動く。
3個ほしいからといって List Item を3つ並べる必要はない。
③ 範囲の外の番号を渡す
- i に
-1を渡し、W を False と True で見比べる(図①の③)
| W = True(既定) | 端で折り返す。-1 は最後の E、5 は先頭の A になる |
|---|---|
| W = False | 出力は null(空)。コンポーネントがオレンジになり、Supplied index too low. が出る。大きすぎる番号なら Supplied index too high. |
W は何もつながなくても True。
範囲の外の番号を渡しても、警告なしに別の項目が返ってくる。
WrapW = True・5個のリスト
| i | -6 | -5 | -3 | -1 | 5 | 7 | 12 |
|---|---|---|---|---|---|---|---|
| 出てくるもの | E | A | C | E | A | C | C |
④ 出力を増やすと隣もまとめて出る
- List Item は出力側だけを増やせる。
キャンバスを拡大して出力の脇に出る+を押すと、出力が1つ増える(図①の④・青い枠)
Resulti = 2 / W = True
| 出力 | i | +1 | +2 | +3 |
|---|---|---|---|---|
| 中身 | C | D | E | A |
+1 は i の次、+2 はそのまた次。+3 が指す番号 5 はこのリストに無いので、Wrap で先頭の A に戻っている。
使用例
リストの中身は数値や文字だけとは限らない。
Deconstruct Brep(立体を面・線・点にばらすコンポーネント)が返す面のリストでも、取り出し方は同じ。
5 が、取り出す面の番号。クリックで拡大。図②のパネルの行数が、そのままリストの長さ。
List Item を挟むと、下流へ流れる面は6つから1つに減る。
面の番号は見た目の順番とは限らない。
この箱では上の面が 5、下の面が 4、横の4面が 0〜3 だった。
使いどころ
- 並んだ柱や梁から、端の1本・真ん中の1本だけを取り出す。
- 分割した曲線の点から、最初と最後だけを取り出す。
- 色や寸法をリストで持っておき、番号で使い分ける。
注意
増やした +1 以降が範囲の外に出ても、警告は出ない。
W が False で i = 2 なら +3 は null になるが、コンポーネントは白いまま。
面や線の並び順は、作り方によって変わる。
どの番号が何になるかは、いちど Panel につないで確かめる。
番号ではなく条件で選ぶ Cull Pattern は、別の tips で扱う。