Points on which surface?

I have 237 points in space.
I’ve projected them onto a series of surfaces(ceiling panels)

I want to list which points are on which surface.

The final deliverable would be either

  1. A tree where each panel’s list of points starts at 0 or 1.
  2. A master list of points (0 to 237) and the tree shows each branch is a panel number, and each list inside that branch is a list of point numbers which are included for that surface.

Thanks!
PointsInSurface.gh (40.9 KB)


PointsInSurface_2024Oct21a.gh (53.6 KB)

1 Like

Hi Kenzan,

There are a few ways of doing this, a lot will depend on other conditions that you may have in the project as a whole. Joseph’s Surface Closest Point can handle a lot of potential variations.

This uses a solid collision.


PointsInSurface-SortByColliders.gh (46.5 KB)

I’m not sure #2 makes sense? But #1 is available from the Cull Pattern in my previous post and this one. This version adds a branch slider (blue group) to select one ceiling panel (shown in white) and its list of points (shown in black).


PointsInSurface_2024Oct21b.gh (64.2 KB)

Thanks Joe,
Each of these points is the top of a string (literal wool string)

I have been tearing my hair out, but I cant get the data to work over here:

In the end I need an excel sheet with each of these points having three sets of data.

  1. Global Individual ID starting at 1 (1-237)
  2. local ID, meaning Surface#, dash, ID local to surface (14-1, 14-2, …)
  3. Length of string at each location

If I can get two outputs based on the same reference, its easy in excel to Vlookup and concatenate a table.

Are you saying my code doesn’t work? Or that it doesn’t give you two IDs per point,?

No, your part works.

I cant get the list order to reference the order set by the points.

Is this what you want?


PointsInSurface_volker.gh (56.4 KB)

I don’t know how to give the string lengths. They aren’t in the file of the original post.

1 Like

This is perfect.

I will get the lengths from this.

Thanks!

Right now the panels start from 0. Wasn’t sure if you wanted that or 1 like with the wool-string identifiers. Also, panels without strings are not listed… I suppose I could create (panel# - string0) for those if you wanted.

1 Like

This looks overly complex, and perhaps too late?


PointsInSurface_2024Oct23a.gh (77.3 KB)

P.S. I was out when you posted this so it didn’t register with me:

I don’t agree with one-based numbering.

In my text panels (“Points per Panel” and “Index Values”), branch paths are ceiling tile IDs.

P.P.S. It seems to me that I went to the trouble of creating the complex white group for nothing :interrobang:

Its sole purpose was to generate “Index Values” to make a pointless connection between the initial list of random points (‘Strand tops’) and list of points in each branch (ceiling tile).

Who cares :interrobang: The initial list of random points is irrelevant once they are “assigned” to ceiling tiles, eh? The post two days ago, marked as “Solution”, is all you need. Again, branch paths are ceiling tile IDs. Some have one or more points, most have none. DONE :bangbang:

1 Like