Tag multiple Elements in multiple views

i’m trying to use the create annotation tag package to tag multiple selected elements in the same family in multiple views but only one tag is generated , is there something i did wrong here? ![Help|690x266]


It seems that the create annotation tag node wants the same number of views as the number of elements / points that are input. What if you run the views into the Create Annotation Tag node with a List.map node? Maybe that helps?

I think this is a lacing issue. Because the node is set to shortest and there are only two inputs for the Views, it only produces two tags. Do you want each view to have all of the tags created? If so, try setting the lacing of Create Annotation Tag to cross-product but right clicking the node.

Edit: Actually that might be a bad idea given how many different inputs there are and it being a custom node. Not sure how it will react to that.

I think they’re right. In the picture you’re feeding the tag node with 2 views, then you need to input 2 lists of elements (containing those 105 elements) and 2 lists of locations (containing those 105 locations).

List.Create and List.Cycle nodes may help for this.

I think you just need to set the List Level for Views to @1.

I think you’re right, I tried it with only one view and the tag works normally.
not really sure how to do multiple views tho, is there a workaround to feed the views input one by one instead?
How would you add list.create and list.cycle in this situation?

Have you tried @andre.abotnes’s post using List.Map node? Unplug the view input in the annotation tag node, then plug the tags output into List.map’s f(x) input and the views into the list input.

Also, which package is the create annotation tag node from?

1 Like

If you upload the dyn file I can take a look.

Basically keep in mind you need to match the number and level of inputs.

Tag All elements in all views.dyn (13.4 KB)

Here’s the code I’m working on

That’s essentially what List Levels are for. Changing the Views input to list level @1 will run the node separately based on each input view @1 which would just be each individual view.

If you’re unfamiliar with list levels I highly suggest you look into them and get familiar. They are incredibly useful for managing complex list structures and eliminate the need for extra nodes like List.Map.

1 Like

Do you agree that list level one also would require lacing set to longest for this particular node?

It shouldn’t. The node can already create multiple tags for a single view. Using list levels would still create multiple tags for a single view, it will just run on each view separately.

1 Like

Aha! Thanks for clearing that up :slight_smile:

Thanks, I got it working using the list levels method, tho this script only works for normal tags and not multi category for some reason any idea why this happens?

Edit : After some searching, I used a modified version of the node for multi-category tag here:
https://forum.dynamobim.com/t/tag-textnote-multi-category-elements/9592/6

hope that helps
Just one little thing, How do I get the tags in elevation views to be in the middle of the object and not on the floor?

there is a node for that Tag.ByElementAndOffset.

I don’t think that node give an option to select the tag type is it?

You can change the family type afterwards with SetParameter.

Thank You, for a beginner like me this was a perfect solution!

Hi, I am trying to use that node Tag.by Element. But I’m finding 2 problems, first, it seems to be impossible to use it in multiple views at once, I have tried using lists in the view input, lacing the node to longest, and even cross product, but all 3 produce a loop Dynamo can’t get out of and I end up ending the task. On the other hand I’ve tried other methods but they don’t offer the offset feature, which I can’t retrieve as a parameter from a tag. Any thoughts? Thank you

Hi,

You can use instead the Create Tag node in the Genius Loci package. This custom node works for multiple views.