We are working with Rhino Version 6 (6.3.18090.471, 31.03.2018) on Windows 10 x64.
After processing the buildings near the coordinate system origin in order to avoid problems with the floating-point resolution, we have to move them back to the original location in our national spatial reference system.
This is, most likely, floating point resolution giving you problems. For compatibility reasons, the Mesh class uses single precision Vertices by default. You may have more luck if you call UseDoublePrecision on the vertex list before attempting any transformations.
Because whe have not yet the version 6.10 of Rhino installed there is no property UseDoublePrecisionVertices available and I am not able to verify if that helps.
Is there no global settig to tell the application do use double precision floating point numbers?
In version 6.3, the property UseDoublePrecisionVertices does not exist. I have to look now how I can install the latest version of Rhino through the IT department. This could take a while.
Yes, this is for API compatibility reasons and type information. The MeshVertexList is of type IEnumerable<Point3f> and nothing you can do will change it to Point3d. But, if you set UseDoublePrecisionVertices the vertices will be stored in double precision and all operations performed on the mesh will use these double precision vertices.
You can set the double precision vertices with AddVertices(IEnumerable<Point3d>) or Add(double,double,double) and get them with ToPoint3dArray(). There is no other way unfortunately.
The question is though, does using double precision vertices solve your problem during translation?
@piac
In the attached file TranslationMovesVertex.3dm there is one building stored.
The building before the translation is stored in the layer “Building Solid Mesh”
The building after the translation is stored in the layer “Result”