Hi, I am trying to create a digital twin of a building with assets and i want a way to attach BIM data (Temperature reading, Asset manufacture material ect) to my asset and view it when the asset is clicked when i run my simulation.
Would anyone assist on how this can be achieved through Omniverse and what steps should i take to achieve this
hiya, i am just another OV user; and i’d say that’s an interesting question. i wonder if this is something can be achieved using a custom schema in USD or implementing a way to embed metadata for your assets.
i am still learning, so that’s just a thought and likely not the answer. would love to hear ideas from the dev, though.
Another option is CustomData, which allows you to store anything, even nested objects (you need to separate the key with ‘:’ to make something nested, like ‘BIM:temperature’, 5 and ‘BIM:material’, ‘metal’ will be stored as BIM: {temperature: 5, material: ‘metal’} .
This method stores the data, but it doesn’t show up anywhere in kit.
I found an extension to show these in a panel, and adapted it to also make it work for nested data. omni-customdata-view (github.com)
I’m currently storing both for another extension I’m writing.
...
if value and attr_data_type == "Float64":
# Set Attribute
prim_attr = prim_ref.CreateAttribute(
attr_name,
Sdf.ValueTypeNames.Float,
)
prim_attr.Set(value)
# Set CustomData
prim_ref.SetCustomDataByKey(
custom_attr_name, value
)
elif value and attr_data_type == "String":
prim_attr = prim_ref.CreateAttribute(
attr_name,
Sdf.ValueTypeNames.String,
)
prim_attr.Set(value)
prim_ref.SetCustomDataByKey(
custom_attr_name, value
)
...