thanks, @Jedd, for taking a look. I’m not a C++ guy but I took a quick look at the code and here’s one possible cause:
In /Source/SpeckleUnreal/Private/Objects/Utils/SpeckleObjectUtils.cpp the TryParseTransform function tries to parse the transform array with the attribute name: “matrix”. However, when I inspect the SketchUp model in the speckle viewer, I can see that the transform array is under the attribute “value” instead of “matrix”. Interestingly, models sent from Rhino do use the “matrix” name for transforms. not sure which one is right or how to handle both.
That said, I doubt that will address the material issue. I’ll keep looking at the code to see if I can spot where that issue is.
Ahha! Yes, I think we’ve both independently found this to be the cause
It looks like we updated value → matrix at some point in our SDKs, but Sketchup appears to still send using the value property.
In our C# and Python SDK, we even have a bit of code to handle this value to matrix change gracefully (hence other connectors being unaffected). However, neither our Unreal or Sketchup connectors use either SDK, I guess we forgot to update Sketchup to use matrix, and forgot to handle gracefully in Unreal .
I’ll need to discuss with @oguzhankoral (our Sketchup expert) whether we prioritize a fix on the Sketchup side or the unreal side.
I just want to report that this issue happens in Revit as well when coming from SketchUp, even on the 20.1 hotfix. Everything looks good in SketchUp and in the online viewer, but gets borked when imported into Revit.
I believe it has something to do with components and / or groups, especially ones that have been moved or scaled after being made into components and groups. For example, a scaled component will pop into Revit at its original scale and not carry over that kind of transform information from SketchUp.