Hi, im trying to get a grip on my workflow from rhino7 to unreal engine via datasmith. i am not completely unsatiisfied but there is an issue i am trying to get more grip on… correct me if i am wrong… unreal engine needs objects to be ‘named’ so if no name is provided datasmith automatically gives a name to every brep. this does not only become very un-organized… it also seems to mess up sometimes as you develop the rhino model…
It happened to me that the autonaming process got messed up. resulting in UE5.2 referencing to the wrong objects from the datasmith link. being the death of that live link.
so. with some simple script i can manually give names to many objects at ones (just having to open up blocks for example). this works but is not ideal…
ideal would be: if rhino ‘by default’ would give a name to a new object when created. this could be based on the layer name it has been created in +00X or just a number 00X. Probably i am asking to much… but can i influence this default setting to change from spawing without name to spawning with a name?
Hi, fellow UE5 user here. Technically Rhino does give a unique name to every object in the form of a GUID. It isn’t available in user text but it should exist for each object. You can check an object guid by typing _What in the command line interface.
You can expose these in GH as well. In UE5 what actor/component tags accompany the geometry brought in with the live link? I don’t recall off hand but I thought the guid was brought in perhaps?
I’ve not messed around with guids extensively so I don’t recall if they remain persistent if an object is modified or if that results in a new id being created.
Alternatively, using Elefront, Human, or Rhino 8 you could leverage user text key/values and name everything that way.
As an example you could have a data tree with say 7 branches in it, each branch representing a category, Walls, Windows, Structure, etc. And set the user text value of each item in each categorized branch something like “Wall_F_128” where you leverage the concatenate node for the text name feeding the category name into the A input, the building letter designation into the B input and the branch index value into the C input. (just an example, not sure how you want to organize/what your data even is)
This method would mean you could control the naming better but it also means good data organization upfront. Which is good practice anyways but may be more extra work here. However, this could allow you to use advanced filtering methods via UE blueprints for example.
Alternatively again you could leverage the user text value BakeName that gets created with Elefront baking node allowing the objects to be updated and baked dynamically. This would ensure that even if the geometry or GUID changes, the bakename should be consistent because you are keeping the bake name as a “container” even if the geometry inside it changes.
You can achieve this also with Rhino 8 using the “User Text” node prior to the “Bake Content” node.
If this isnt making any sense let me know and I’ll try and mock up a quick example showing how it could work.
Hope this helps for now