Good morning bskim,
I'm one of the developers here at Safe and I've been working with Kailin to try and help out.
Group Tags
> When converting to OBJ through FME, a group tag was not added, so an OBJ file had to be created for each IFC property. In other words, it was impossible to know detailed properties when picking by exporting as a single OBJ file.
From your attached workspace and data I believe you were trying to keep one of your attributes (`Tag` or `GlobalId`) this can be done by creating a geometry trait for each piece of geometry called `obj_group`. This can be done by creating an attribute called `obj_group` and then using a GeometryPropertySetter to convert the attribute into a geometry trait.
Please note that in our testing we found that if a Mesh contains the trait `obj_group` it is not preserved correctly, I've created a ticket to fix this. Until then, you can use a GeometryCoercer to convert your Mesh geometries into CompositeMesh geometries and the Group will be preserved successfully.
Materials
Kailin and I looked into your use of fanout (to preserve group tags) and preserving material information. After some more investigations we found that materials are actually being preserved, in the attached screenshot you can see a bright green feature and the resulting OBJ showing that we are preserving materials in some cases.
> The material property of the Mesh with ID "0MqJJVOvz9EAAqebgegn0o" is
Kd 1 1 0, Ks 0.5 0.5 0.5, Ns 64, but there is no material in the conversion through FME. (Faces without material properties are rendered with previous material values.)
When we look at the mentioned feature inside the workspace prior to arriving at the writer, we can see that it has an appearance of `<inherited_or_default_appearance>`. This is how FME says that there isn't an appearance on that feature. The original IFC file didn't have an appearance for that feature. As such the OBJ writer has to decide what to do in that case. Since there was no material on the feature, the OBJ writer will not set a material on the resulting output. As such when you read that specific OBJ file back either in FME or another inspector app you will see the default material (usually grey as seen here).
If you would like this behaviour to change you can create an appearance with your specified settings, and apply that material to all features that have a default appearance.