IfcOpenShell-BIMserver-plugin icon indicating copy to clipboard operation
IfcOpenShell-BIMserver-plugin copied to clipboard

Rework settings and update to IfcOpenShell v0.8

Open hlg opened this issue 1 year ago • 2 comments

There have been changes to the way how IfcOpenShell handles settings from v0.8 on. The rework might also consider new settings such as "permissive extrusions" (allows extrusions depths of zero or less). Parallel adjustments might need to be made on the geometry server side in IfcOpenShell itself.

See https://github.com/IfcOpenShell/IfcOpenShell/issues/1490#issuecomment-2306598309 for reference.

Maybe the settings could also be handled dynamically, but then it needs some thought how compatibilty between versions is going to be handled and how settings should be maintained in the BIMserver database while allowing for the IfcOpenShell version to be switched.

hlg avatar Sep 16 '24 10:09 hlg

There have been changes already from v0.6.0 to v0.7.0.

In v0.6.0 we have setting IDs as follows:

SEW_SHELLS = 1 << 4,
DISABLE_OPENING_SUBTRACTIONS = 1 << 6,
APPLY_LAYERSETS = 1 << 13,

In v0.7.0 due to the removal of the FASTER_BOOLEAN setting, there is:

SEW_SHELLS = 1 << 4,
DISABLE_OPENING_SUBTRACTIONS = 1 << 5,
APPLY_LAYERSETS = 1 << 12,

Even though I don't know if this accounts for all 0.7.0 builds, to handle this change, we can only make a distinction on the basis of the version that the geom server announces during the HELLO handshake. It may be that some earlier 0.7.0 builds will fail with this, but the later ones should work. It is a pity that there is no semantic versioning on the minor number. Commit SHAs are not consecutive, we would have to enumerate the SHAs of the builds in order to distinguish the builds before and after the FASTER_BOOLEAN removal.

hlg avatar Sep 18 '24 15:09 hlg

Yeah... sorry bout that. In 0.8 settings are identified by string so wouldn't affect us like that anymore in the future.

aothms avatar Sep 18 '24 17:09 aothms