In ifc2x3 IfcProject is not IfcContext because there is no IfcContext in ifc2x3 and it was causing the error below on .ifc import with filtered spatial elements.
Also added small refactor
Traceback:
Error: Python: Traceback (most recent call last):
File "\blenderbim\bim\module\project\operator.py", line 595, in execute
ifc_importer.execute()
File "\blenderbim\bim\import_ifc.py", line 253, in execute
self.create_spatial_elements()
File "\blenderbim\bim\import_ifc.py", line 688, in create_spatial_elements
self.create_generic_elements(self.spatial_elements)
File "\blenderbim\bim\import_ifc.py", line 698, in create_generic_elements
products = self.create_products(elements)
File "\blenderbim\bim\import_ifc.py", line 717, in create_products
iterator = ifcopenshell.geom.iterator(settings, self.file, multiprocessing.cpu_count(), include=products)
File "\blenderbim\libs\site\packages\ifcopenshell\geom\main.py", line 99, in __init__
raise ValueError("include and exclude need to be an aggregate of IfcProduct?")
ValueError: include and exclude need to be an aggregate of IfcProduct?
Example - https://i.imgur.com/f4Yi3MR.png
Now changing style type should be a bit more intuitive - previously there were no button and it wasn't possible to change style type for all selected objects / changing style type for the entire scene were hidden in N-panel Miscellaneous section.
Now it also able to change style type for all blender materials, even the ones that don't have any objects using them (wasn't possible before 7c0c934b4)
`ifcmerge` is asymmetrical. When both branches have new entities, either
local or remote step Ids need to be renumbered to resolve the merge
conflict.
If the remote branch is 'origin/main' or 'main' we preserve remote Ids,
otherwise we preserve local Ids.
This should support a workflow where a local 'main' branch is kept
pristine, but other local branches are treated as disposable; it should
also support a workflow where multiple authors access a shared 'origin'.