{Set} NOT taking Primitive data directly, Why?

COVID.gh (56.7 KB)

Primitive means geometry here, correct? Then, why can a point (a geometry type) be read from the set input?

Set{}, by definition, may carry any type of data. This should also be the case in GH, but is now unclear/confused…

Points in Grasshopper are essentially a simple collection of three numbers \(\{x, y, z\}\). Because numbers can be compared with perfect precision, Grasshopper can easily determine if two points are identical. Complex geometry like Breps are mathematical descriptions rather than fixed coordinate sets. Unlike a simple string or number, Grasshopper does not have a native “is this Brep identical to that Brep” logic built into, to create a set from complex geometry, you must first convert that geometry into a “fingerprint” of unique data that can be compared.

edit; > appears there are methods to check if breps are the same {Set} NOT taking Primitive data directly, Why? - #7 by dfytz1

I think also for points you should not use the set component. There is a dedicated duplicate points component and kangaroo has a component that works with lines

Cast them into text using text container, and then cast back

I guess he did ? but @Mathew3 still needed to know what @crz_06 zeroed into:

What’s the benefit of a set of all mesh faces?

Api gives you exactly that with the following and multiple other methods:

https://developer.rhino3d.com/api/rhinocommon/rhino.geometry.brep/isduplicate

That is what sort duplicate breps component from Lunchbox implements