Placing tags at vertivals ducts (and/or pipes)

Hello everyone,

At the moment I am trying to create a script that places tags at vertical ducts that crosses level lines.
What I have done so far:

  1. selected a view in which to tag.
  2. select all vertical ducts in view.
  3. create planes at associated level and level above.

For the next part of my script I want to intersect the curves from my ducts with the solids I placed at the levels. But i dont get that part to work. I want the following:

  • If it intersect only with associated level place tag A
  • If it intersect only with level above place tag B
  • If it intersect with both levels place tag C
  • If it intersect with no level place no tag

This is my script so far:

place tags steigleiding_2019-09-11.dyn (53.2 KB)

all help is appreciated :slight_smile:

Can you zoom in before taking the screenshot? Nodes are not legible.

EDIT: You could try something like this.

Hello Nick,

Thank you so much for your help. I managed to shrink my script down a lot using your script as an example xD.
So with your script I’m almost there but I stil have a problem with actualy placing the tags. At the moment I have this:

Is there a good node that lets u place difrent tags on a list of elements? I’ll keep trying myself, but if you have more pointers, they are very welcome :slight_smile:

Hi Lennard,
You could try something like this, where you associate a family type (tag) with every possible True/False combination from your intersection results.

2 Likes

Heya Taco,

Long time no see :wink:
and thanks for your response but I think I got that problem solved using nicks idea:

So now I have a list of vertical ducts, and a list of what tags to place. (in the red circle’s)
The problem I have now is uding those list to place the tags. (in the blue circle)

Sure is :slight_smile:

You’ll probably need to do a few things:

  • Get rid of and filter the nulls
  • Make sure your list of views is just as long as your point/element list
  • Once that works you’ll probably have to scale the points by 1/304.8 (Dynamo units are in feet and I assume you’re using millimeters)

Thanks guys, got this working with a combination of your methods.
Very satisfying when it works.

Unfortunately had to give up on Create Annotation Tag… it just doesnt work, with all possible combinations, and no way to find out why :frowning:
Used Tag.ByElement instead and then changed tag types afterwards.

A few small improvements;
Uses view range instead of level above/below, as this can be significantly different in a given view.
A more thorough check for vertical, sloped and horizontal elements.
Multicategory tag, so this should work for all linear elements.
Optional writing of “Is Vertical” to a parameter to use for other stuff.

Next step… tag all categories in all views and find a strategy for tagging parallel pipes…

Tag All Vertical.dyn (92.8 KB)