Check if Room Tags Intersect w/ Duct?

I have a large project and need to quickly check if my room tags are intersecting elements we’ve drawn, like duct, pipe, etc. to then address those tags to make sure our floorplans are nice and tidy.

I recently discovered the GeniusLoci annotation bounding box node, and it seems to… kind of work. When given a tolerance of around 6 or more, it starts to read some of the elements around it, but only scope boxes, air terminals and flex ducts. It doesn’t seem to pick up ducts unless given a crazy tolerance of something like 20, even if placed directly on top of it.

I assume this is because it may need to encompass the entire element for it to be considered, but this wouldn’t make any sense for the scope boxes to be in results. Is there a way to ensure it’s considering intersecting elements without requiring a region that will be far too big to be useful?

For reference, this is with the selected room tag placed on top of an air terminal, and nothing else actually touches it in the model:

Ideally, I want this script to select all room tags in a view, and then display if they are intersecting other items…

A few things -

The tags have point locations. You’ll need to approximate the text size on screen to extend the checking area, otherwise you can have room tags that still clip into your duct elements.

The point locations have a Z value, so you can still completely miss a duct intersect. Before making the comparisons, you should take all of the geometry and pull it down onto a common plane.

This link has a workflow built from from the idea of starting with an unannotated plan and finding the open locations before tagging. There’s elements in the process that might be useful in your case.

2 Likes

Hello, you may be able to use Raybounce on the 4 points of the BB (it will be necessary to rebuild to have 2 of the 4 vertices)
The BB has no height in this case.
I don’t know if this is optimum in terms of calculation time, it must be greedy

Cordially
christian.stan

2 Likes

Using that example script, I’ve nearly got it… however, trying to substitute room tags for mechanical tags has yielded some issues. Not sure what I can do to swap that out at this step:

If I tag rooms using the spatial element node, there isn’t an offset input, but rooms can’t be tagged by this node… any ideas?

At this point it’s faster to do manually until I can figure out some kind of solution. My Dynamo keeps crashing trying to test any changes, and I have to do a full restart of Revit to clear errors each time.