I have a method that compares the geometries of block objects before and after running BlockEdit. Leaving aside a bunch of other checks and preparations, this comes eventually down to calling GeometryEquals() on the geometries that are gathered before and after running BlockEdit. This worked for some time now, but since a few days, I have a few meshes that are always shown as different although they should be the same.
In my test case, I run BlockEdit and close it directly without changing anything, then compare the geometries. The block contains hundreds of meshes. My check works for all of them except three (always the same ones), that are marked as being different.
Did the implementation of GeometryEquals() change recently? Is there anything about how this method works internally that could give me some pointers as to how to analyze my meshes to see if something is off with them?
After some more investigation of one of the meshes that are now shown as different, I think it is either the case that something changed within BlockEdit or that my assumption, that geometry would be exactly equal after entering and exiting BlockEdit, was never true in the first place.
The following is a comparison of the mesh geometry before and after using BlockEdit:
So, I can solve my problem by adding a vertex comparison in case GeometryEquals() returns false.
However, regarding the assumptions one can make about the Block geometry before and after using BlockEdit: is a potential change within tolerance like the one in the screenshot to be expected or does it hint to some problem with BlockEdit?