Geometry.Intersect Empty List

Hi,

I have a problem with the Geometry.Intersect operation below: Geometry.Doesintersect == true (for all), but Geometry.Intersect produces empty lists. I dont get this.

How can I still get the intersection? Anyone knows a workaround?

Can you recreate the relevant parts of the graph so I can play with this? May be as simple as the order and the lacing/list levels.

Thanks @JacobSmall we solved it. It was a Geometry Scaling thing.

Best regards JN

1 Like

I know this post is old now, but can you please elaborate?
Im facing the same problem.
My project units are in m, the project location is however in huge coordinates and i think that is the problem.
How was it in your case?

Greetings!

Would help if you posted screen shots and files to help us understand if your issue is actually relevant to this thread.

However, the feature referred to above is available at Settings > Geometry Scaling
You can choose between Small, Medium, Large and Extra Large depending on the geometry sizes you are working on.

1 Like

Sure, here it is:


units

Can you show the Dynamo geometry too? Open the background preview and zoom extents.

My guess is that the internal origin of the link doesn’t align with the internal origin of your file. The background preview of this graph will quickly confirm.

1 Like

you-are-absolutely-right.
The two solids that are intersected are flying in a huge distance to each other in the background view (even difficult to see on a screenshot).
Although in the revit model it is obvious that both solids are clashing…

So I checked the project locations of the active doc and the linked instance:

and run into some nulls…

Any ideas?

The Revit API (and pretty much every geometry engine in every API) returns the location of stuff relative to it’s internal origin. This is the hard coded 0,0,0 point in the file, and cannot be moved or altered. The Project base point and survey point, and project location all relocate the math of this point to tie the model into a real world coordinate system which is used for dimensioning, rather than the one which returns values which have no relation to real life.

What you need to do is find how the linked project was transformed after it was linked into the host project. That is - what is the vector from the link’s internal origin to the host’s internal origin, and then how was the link rotated. This is complex, but doable. There are several forum posts about handling this condition, but the fastest and likely easiest solution is to leverage the BiMorph package to report on link element’s geometry as it makes short work of the issue. Information on this topic can be found here: https://bimorph.com/bimorph-nodes-v2-2-supports-holistic-linked-element-clash-detection/

Thanks for the tips @JacobSmall, but in order to avoid the complexity with the different locations and coordinate systems I applied another workaround:

Copied the linked elements to the active project, so they are located in the correct coordinates. Did the stuff i needed and then deleted the elements from the active document.