BBIM: Why Do Some Viewers Not Show Colors for Beams and Columns?
I've noticed that most of the IFC viewers don't show the colors for columns or beams created in BlenderBIM.
For example, with the attached IFC file, the following services don't show the beam or column green colored like they should:
- https://speckle.systems
- https://view.ifcopenshell.org/v/ctVVZXKLUgtoobQCXywNTGxKvvNPezpc
- https://wikiifc.com/
The two that work are:
Am I doing something wrong, or is there something BlenderBIM can do to be more compatible?
I'm particularly hoping to get Speckle working, since it looks like it could be really helpful to me, it's just a little annoying that the colors are not coming over.
Comments
You're not doing anything wrong. You can either add styles to representation items manually (no bulk way to do this unfortunately right now) to accommodate them and/or help report bugs. I'm surprised that the view.ifcopenshell also has this issue. Ping @aothms.
In short, these viewers don't show the surface style inherited from the material assignment. See this post for more details which you can help forward to them (ping @gokermu for Speckle): https://community.osarch.org/discussion/comment/13744/#Comment_13744
Awesome thanks for the info. One thing I've just noticed is that after I duplicated some of my pillars around, for some reason the color works fine on the duplicates. It fixes the color for both Speckle and view.ifcopenshell so it looks like they've got similar logic. I can't see the difference between them in BBIM, though, so I'm not sure what's changed.
In the attached IFC file one column is correctly displayed and the other isn't: https://view.ifcopenshell.org/v/LHzjsbUNLFURxMNfIPEGQhsIOMxKddnZ

Might have something to do with this...
Yes, the way duplication is handled right now is that it actually "recreates" the shape and reassigns styles, leading to a difference between the two. This isn't ideal but requires a bit of work before it's properly solved.
It turns out IfcConvert (which powers ifc-pipeline) never really considered material profiles, probably because the logic for the material determination was written in the ifc2x3 era. Fixed in https://github.com/IfcOpenShell/IfcOpenShell/commit/b3e7975b83a19d5778475a38061833df5061037b but it will take some time until you see this changed in ifc-pipeline.