I am generating some geometry via a series of extrude edges operations. After each extrude, I want to “save” the top edge for later use (I.e. tag it so that I can operate on it later). What I have done so far is use a “store named attribute” node to create a boolean attribute on the edges, and set it to true for these specific edges.
The issue I am running into is that the extrude edges node propagates the value of the boolean values to the next set of edges. That means that the newly created edges are now tagged with a value that they should not have.
I have three possible thoughts on how to deal with this situation, but I am wondering whether there are any better ways of handling this. (I haven’t implemented any of these yet, so there may be hidden gotcha’s I have not thought of)
The first is that I would separate out the edges that I want to extrude, remove the existing attributes, do the extrusion, give the newly extruded their new tags, and then join the geometry again afterwards. This feels clunky, and I need to individually disable every attribute that has been added to the mesh to this point.
The second is that I would do the extrusion, then use the top and side selection tags to turn OFF the boolean for any tags that had been carried over. This also feels very clunky, and as the mesh gets more complicated, I will have an ever expanding list of attributes that I need to go back and fix after each extrusion.
The third idea is that I would not store these edges using booleans, but rather as an integer (can’t store strings on edges as far as I know). So I would have to keep a written mapping table somewhere that tells me that integer 1 is a particular set of edges, integer 2 is a second set of edges and so on. Then, later, when I want to operate on specific edges I would have to do a compare on that stored attribute to re-create the selection. This seems like the best solution so far (and has the added benefit of only having a single attribute that I am carrying around), but it means I have an abstract number instead of an actual named attribute to specify a specific set of edges.
Does anyone have any better idea how to deal with this situation (that blender propagates attributes to new edges during an extrude)?
Thanks!
