Null・Invalid・Emptyのデータの削除や整理をする、Clean Treeの使い方について解説します。


グラスホッパー上では上の2つのどちらかで表されます。
Null・Invalid・Emptyのデータの削除や整理する
Clean Treeを使うことで、Null・Invalid・Emptyのデータの削除や整理することができます。
そのため、場合によってはエラーの状態を解決することができます。

最初は、Null(値が存在しない場合)を作成して見てみましょう。
1つ目のMergeの1つ目の端子に、数字の0を入力します。
1つ目のMergeの残りの4つの端子には、100,0,0・200,0,0・300,0,0・400,0,0の4つの座標データを入力します。
2つ目のMergeの1つ目の端子にも、数字の0を入力します。
2つ目のMergeの残りの4つの端子には、100,100,0・200,100,0・300,100,0・400,100,0の4つの座標データを入力します。

その後、座標データをPointにつなげます。
すると、座標データが、その位置にある点データに変換されます。
このように8つの点データが作成されます。
Mergeの最初の端子には、ただの数値を入力しているため、何も起きません。

この際に、2つのMergeのR端子を右クリックし、Graftを選択してください。

その後、2つのMergeを、LineのAとB端子につなげます。
すると、上の画像のように、2つの点を結んで線が作成されます。
そして、合計4本の線が作成されました。

追加コンポーネント:①Clean Tree
しかし、Lineを見てみると、エラー表示になっています。
これは、Lineには点データを入力しなければならないのですが、数値のデータを入力しているため、エラーが起きています。
LineにPanelをつなげてデータを見てみると、1つ目の階層がnullとなっています。
残りの4つは、正常にLineと表示され、線データが作成されていることが分かります。
この状態で、Lineを、Clean TreeのT端子につなげます。
すると、1つ目の階層のnullが削除されました。

しかし、このままでは{0;0}の階層が残ったままです。
Flattenにして、データを1つの階層にすると、空の階層を消すことができます。
Clean TreeのT端子を右クリックし、Flattenを選択します。

すると、1つの階層にデータがまとまり、空の階層が消えました。

追加コンポーネント:①Boolean Toggle
階層構造を維持したい場合、Clean TreeのE端子にTrueと入力します。
今回は、Boolean ToggleでTrueの情報を入力しています。
すると、階層構造を維持したまま、空の階層を削除することができました。

次は、Invalid(無効な状態)を見てみましょう。
Mergeの1つ目に入力する座標データを、どちらも0,0,0の原点の位置にします。

Lineは2つの点をつないで線を作成しますが、同じ位置に点がある場合、線が作成されません。
このような場合、Invalid Lineと表示されます。

この状態で、LineをClean Treeにつなげると、Invalid Lineを削除できます。

nullとInvalidがどちらも存在する場合を見てみましょう。
この場合も、Clean TreeでまとめてnullとInvalidを消すことができます。
しかし場合によっては、nullかInvalidのデータを残す必要がある場合もあります。

nullデータを残したい場合、Clean TreeのN端子に、Falseと入力します。
今回は、Boolean ToggleでFalseの情報を入力しています。
すると、Invalidのデータは削除されましたが、nullデータは残りました。

Invalidデータを残したい場合、Clean TreeのX端子に、Falseと入力します。
すると、nullデータは削除されましたが、Invalidのデータは残りました。
Clean Treeコンポーネントを使用しているグラスホッパー記事はこちら↓
Comment