MapperについてGrasshopperでは、データをフォルダの様に階層化して管理しています。望んだアルゴリズムを作成するには、データの階層構造を任意の形に修正する必要があります。通常データの階層を修正する場合には、Graft,Flatten,Simplifyを使います。この3種類はコンポーネントの端子の上で右クリックから設定することで、端子ごとにデータ階層を変更することができます。詳細は下記リンクを参照ください。https://www.applicraft.com/tips/rhinoceros/graft_flatten_simplify/またこの3種類以外の階層を変更するコンポーネントは下記リンクを参照ください。https://www.applicraft.com/ghcp_sets/ただしこういった通常のコンポーネントだけでは、変更に対応しきれない場合があります。Mapperコンポーネントというものがあります。Mapperはキャンバスに置いた時点では、「!」マークが表示され何も動作しない状態になっています。コンポーネントをダブルクリックし、開いたエディタに内容を記述することで、入力データの階層を変更することができます。左側の「Source」に元の階層を、右側の「Target」に修正後の階層構造を記述します。ダブルクリックで開いたEditorSourceに{A;B;C}、Targetに{A}と書いてみます(ここでは階層の表示を、上から順にABC・・と書きます)。この記述では{A;B;C}を{A}に変更するので、BとCに相当する階層を使用しないことになり、{A}だけが残ります(下図)。{1;0;1},{1;0;2},{1;0;3}のうち、Aに該当する{1}だけが残るので、出力された階層は{1}になっているこのように元の階層の値を使ったり、直接0や1という様に階層の値を書き込むことで、入力する階層を変更できます。階層だけでなくインデックスの番号を使用することもできます。階層内の記述は{}で、インデックスの記述は()で記述します。Editor」を押すとダブルクリックしたのと同様の記述ダイアログが起動)。{A;B;C}→{0}出力階層を{0}に、階層の分岐を無くす“Flatten”と同様の考え方。{A;B;C}(i)→{A;B;C;i}出力階層の末尾に(i)インデックスを足す、“Graft”と同様の考え方。{A;B;C;D}→{A;B;C}末端の階層を使用せず、削除する。”Graft”の反対の効果。{A;B}(i)→{i\4}インデックス値を4毎に分割する。List”の様な効果。注)階層の分割を行う場合は「\」と入力(下記の表記に置きかわる)。{A;B;C}(i)→{i}インデックスの値毎に階層をまとめ直す。0番のインデックスを{0}に、1番のインデックスを{1}に集める形。Matrix”の様な効果。-i)階層はそのままでインデックス値を反転したもの。List”の様な効果。{A;B;C}→{path_index}入力した階層を上から順に{0}、{1}・・と番号を付けていく。四則演算などの計算式+-*/や^(階乗)なども使用可能。Mapperは上記の内容を組み合わせることで、詳細な階層の変更ができますが、入力情報の階層が変わると記述内容も変更する必要があります(例:下図の下側は、{A;B}を{A;B;C}に変更する必要あり)。Mapperはメリットとして詳細な設定ができる分、入力情報の変化に対応しきれず小回りに欠ける点があります。Mapperコンポーネントを使用頂けたらと思います。