Working with Geo-location and Global Shift

I work on many international infrastructure projects (bridge design) where each project uses a different local coordinate system. Almost every project I do is in collaboration with an engineering firm. They always produce the drawings and models at the correct location in the local coordinate system, which is sometimes 1,000,000 of units away from 0,0,0. The way I usually work is to shift the model closer to zero by some fixed rounded distance (rounded to 100 or 1000) and I make a note of that shift in _Notes. This allows me to easily work without clipping issues, distorted geometry… and it also allows me to sync the model to Lumion, Twinmotion, UE…

The most time-consuming thing however is importing and exporting new models from and to the correct geo-location. In notes i also have a command shortcut like _ExportWithOrigin w1234,1234,0, but it doesn’t work with all file formats (IFC for example with VisualARQ - @fsalla ).

I quite like how the point cloud processing software CloudCompare handles the global shift. For performance reasons it uses 32 bit float values and if the imported objects are too far away from origin it asks the user to specify a global shift. This shift is then stored (can also be changed) and gets re-applied on save or if additional data gets imported. The dialog window for the global shift has a triggering value, which can be set in the settings.

Could a feature like this be added to Rhino? Either in a form of a plugin or at the core level?
It would go something like this:

  • A global shift could be specified in a command like _GlobalShift X,Y,Z and it would also have an Enable=Yes/No
  • If enabled, a dialog box would appear on every import, export and save asking the user if he wants to apply this shift.
  • If disabled, there would be a triggering threshold value for the coordinates (and max diagonal), which could be set in Options (advanced?). If Rhino recognizes the bounding box of the file that’s about to be imported, exported or saved is above this threshold, it would ask a user if he wants to apply a global shift (with the option Don’t show again for this file).