algorithmic modeling for Rhino

Hello Grasshopper users,

Can someone help me with the following problem.

I have a large scale 3D model. 
And I need to find out the similar objects.

If one 3d geometry same of another then they must take the same names, else they must have different names.

Based on this lojic i would do fabrication drawings. and i dont want to end up with unnecessary work load in preparation of fabrication drawings.

Your helps are highly appreciated.

Thanks & Best Regards

Views: 3040

Replies to This Discussion

I assume these polysurfaces are in different locations and can have different orientations, but not different sizes?

Grasshopper tends not to work with geometry inside the Rhino 3dm file very well, so dealing with attributes like layers and names is tricky.

First you have to establish the criteria of similarity and difference. It absolutely depends on the objects, can you display them?

After you know the criteria, you have to set priorities of evaluation. Perhaps first consider the size, then number of faces, etc.

Not enough information to help.

One (rather stupid and VERY slow) way is to test against Area/Volume (and anything else).

Theoretically it could work ... in reality avoid (takes ages to finish especially if non rectilinear geometry is around).

BTW: "Letters" are excluded from tests due to broken nerves.

Can you pass me the definition.
I would like to test it...

Yea why not? But allow me first to make it less stupid (triumph of hope VS experience).

Tekla eh? 

Does it make some instance definitions ? (same "pool" of data with regard geometry, different transformation matrix per instance) or the "same" are treated via the neolithic way? Can it export instance definitions (blocks in plain English) instead of "same" solids (that actually are "different" ones).

Is it any way to extract/export some Tekla info about the "same"?

BTW: A zillion of "solids" with holes could make the C# work for a week (Rhino is very slow with regard "solid" related ops).

Hi Peter,

Thanks for your interest first of all.
I really couldnt get what did you mean. I am not familiar with such terminology actually.
It is not a megastructure actually. It is a simple roofing.
Some coloumns, beams, rafters and brackets... Even if it would take 2 or 3 hours to sovle the issue in my opinion it worths.
on the other hand - currently i dont have tekla licence. Otherwise i would like to convert the rhino model into tekla.


Well ... for future reference, I'll try to explain the situation better (assembly/component basics, that is):

Imagine some app that does something many times. By that I mean that it places that something may times in 3d space. Obviously it makes the first of these ... er ... first.

If the next somethings are a copy of the original (i.e. the "first") then all these are separated entities and then we must do ultra tedious checks (say: on volume, area, BrepFace count, cats, dogs etc etc) to find if these are "equal" with the "first" (Note: a scaled something is NOT equal although derived from the same "first"). Trad ways to "eliminate" "equals", say, using HashSets et all they don't work (it's a bit complex to explain the reasons, but don't bother with that).

If the next somethings are a clone of the original (instance definition: Block in Rhino speak) then all these are actually the same thing (actually they are "instances" of the same thing, hence the name) ... just transformed in 3d space. Finding (via code) the instance definitions is rather easy and 1Z times faster.

Now every contemporary app must do that clone thingy. May use a different name than the Rhino Block  but that's rather irrelevant.

BTW: post some stuff of yours in order to test ... against ... er ... the eternity this ultra stupid C# of mine.

BTW: find a couple of minutes to "better" (*) this ultra stupid C#.

More soon.

BTW: this thing makes the "equality" tests based on area and if the object is a "solid" on volume as well. Obviously this is 1/10th of the bacon: therefor you want to add other "criteria" as well? (count the BrepFace edges, count the vertices, count dogs [and cats], count Karma etc etc).

(*) if you buy this you can buy anything.

All the objects are closed polysurfaces
thickness ofcourse may vary - due to strength requirements.
And also the size and locations of drill holes can be different...

Good news: a great progress is achieved > its faster by approx 0.001%.  Undoubtedly one of my "greatest"  moments in coding > Nobel on sight, if not some Grammy/Emmy/Pulitzer/Whatever has tax free cash.

Bad news: Rhino is not CATIA.

Ugly news: Spot the obvious > see stuff with holes: rated as the same since we check (for the moment) only VS volume and area.

more soon

And with this (and that) the "soon" arrived.

Slower than any Harley Davidson, faster than any tortoise (but not by much).

Tests only against Volume (if solid) and Area (always). If the object is not a Brep ... er ... does nothing. Obviously any other test is achievable.

PS: Other methods provided are ... for some "gurus" in my practice (in a permanent  confusion).

PS: Load R file for the test data.

Moral: life sucks.


More or less such a workout...






  • Add Photos
  • View All

© 2022   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service