Hello guy,

I’m recently dealing with panelised modeling. However, I would like to know if there is any method that I can apply to check how many types it has? (in terms of the same size, angle…etc).

Thank you!

PanelQuestion.gh (15.1 KB)

Hello guy,

I’m recently dealing with panelised modeling. However, I would like to know if there is any method that I can apply to check how many types it has? (in terms of the same size, angle…etc).

Thank you!

PanelQuestion.gh (15.1 KB)

What do you mean by type? if you mean configuration of quads, you can check the skeness factor for quads. or for comparing the sides of each quad you can use the aspect ratio of quads.

Thanks for your reply, I mean the variation.

For instance, how many different panels as well as the quantities.

Thank you

You have the problem half-defined. What are the categories? How exactly do you define what a category is?

This is a problem in the machine learning area and GH has no support for it. As a basic and naive approach, each category and each panel can be converted to a multidimensional vector, where each dimension represents a feature (area, angles, lengths…). Then normalized them and you can measure which category is closer for each panel, using the Euclidean distance or the cosine of its angle, so for any panel the closest category belongs to. However, it is more complicated than this, because you want to preserve some symmetries like a trapezoidal panel being the same regardless of which side is small… or the angle variance being invariant to the order, or each feature need to be weighted… So you need this function that maps the panels to a position in an abstract space that puts them in separate places depending on how you define the variance, and viceversa, from that vectors get a panel/category. This is what some auto-encoders do, but using optimization techniques over GPUs.

In your case, there is very little variance, so I advise you to prioritize your categories, so that either you categorize them by individual features, like a table, or you group them by one feature and then subgroup them by others.

The above idea is good for you because it is general for measuring variation. But do it for each feature separately. For example, for high/long ratio, you get this factor for each panel and use this value as X coordinate in the point constructor, and with these points you use the Point Groups component with the tolerance you want, and use its index output to group the panels back together. You will get several branches that represent those panels with a similar ratio (technically, those that has a difference less that the tolerance input). Same for the other features.

More than your video, Mouse arrow distracts me a lot

#rofl