I want to count the number of points that locate in nearest points.

Or I want to send the dots to nearest rectangle. How can I do?

@hojukys ,

can you explan what you exactly want? the perimeterpoints ?

https://dictionary.dynamobim.com/#/Geometry/Geometry/Action/ClosestPointTo

Iâd like to make a list of many of the points that Iâm currently drawing by connecting them to the nearest rectangle among the nine squares in red, or Iâd like to count the number of points that are close to the rectangle. This is to think of each point as a unit load, a rectangle as a column, and then send the points to the column to calculate the fixed load.

First thing would be to isolate the nine squares if you havenât already. Then you can just do a check for `DistanceTo`

between every square and every dot. Use list levels so that the outcome is structured as a sublist for each dot, with distances to every square. That will allow you to use `SortByKey`

to sort the squares by distance.

Hello,

Possible but I think longer than Mr. Nickâs proposal

1/create boundingbox from the 9 elements with distances separating the elements (or min max of the dot matrix)

2/ create a boundingbox enclosing the dot matrix

3/Intersection of the boudingboxes

4/Then Coutains

Cordially

christian.stan

What? @christian.stan ,

i can create the rectangles and the boundingBoxesâŠ creating the bounding box does not work

Hello, here is the beginning of the reasoning for a column.

edit:

1st codeblock

```
a=1..20.2..0.4;
b=-2..11.8..0.4;
c=Point.ByCoordinates(a<1>,b<2>);
d=Point.X(c);
e=Point.Y(c);
CBG=Point.ByCoordinates(List.FirstItem(List.MinimumItem(d)),
List.FirstItem(List.MinimumItem(e)));
CHD=Point.ByCoordinates(List.LastItem(List.MaximumItem(d)),
List.LastItem(List.MaximumItem(e)));
f=BoundingBox.ByCorners(CBG,CHD);
BoundingBox.Contains(f,c);
```

2nd codeblock

```
a=[0,6,22];
b=[-5,5,8];
c=Point.ByCoordinates(a<1>,b<2>);
//Rectangle for column 1
CBG=Point.ByCoordinates(List.MinimumItem(a),
List.MinimumItem(b));
CHD=Point.ByCoordinates((a[1]-a[0])*0.5+a[0],
(b[1]-b[0])*0.5+b[0]);
f=BoundingBox.ByCorners(CBG,CHD);
```

Cordially

christian.stan

What function I have to useâŠ?

The number of level2 is 9

and each level3 is 735.

So, I have to find the minimum distances with 735dots and 9rectangles.

I would use `SortByKey`

to sort your points by distance (key). I believe youâd want list levels @L2 for both inputs so that the sublists get sorted individually.

Note: I think you have your list structure inverted though. Your sublists should be 9 items long (representing the 9 rectangles) so that those are the items that get sorted by distance. That way when you take the first item in each sublist it will be the closest rectangle.

So you want to know for a bunch of points (Gray points) which rectangle point (Black points) is closest?

Start

Something like this?

Result

I assume you already have the rectangle points (Black points) and the Evaluator points (Gray points)

@Joelmick ,

i have a sorting issue and scale problems, finally it colors just 3 lines and i canÂŽt see them

Wow thank you!!!

âUnable to create line. Points are likely coincidentâ

- This means the 2 points between which you want to create a line are on top of each other.

This happends if one of the eveluator points is on top of a rectangle point.

âGeometry Scalingâ

- Is what is says, a warning. you can always ignore that since it still computes right. the Dynamo team should get rid of this error since it is a complete hoax.

âColors only 3 linesâ

- I think you need to provide more colors. If you have 9 rectangles â 9 Groups of curves â 9 colors

I have attached my graph below. You can just run in in the Dynamo Sandbox

Points to nearest points.dyn (67.1 KB)