Workaround Importing large coordinate models (double to float)

Hi, Im new to blender development. Im looking for advice to set me in the right direction.

I need to find or write a workaround to handle importing models with coordinates larger than float. I understand Blender uses floats for position internally.

The workaround I intend to implement is to find the bounding box of the geometry in file (or some subset) and translate it before importing into blender. This isn’t a general solution of course but sufficient for my problem.

There seem to be a few places I could approach this. Collada seems a choice favoured by Blender. I think the format itself uses doubles. DXF is another possibility. Additionally I can choose between
(a) An existing external commandline file converter. I not sure which are robust.
(b) Write my own external commandline file converter. I think I can use OpenCollada.
© Write something entirely in python. I have seen something called pyCollada. It might be enough for a simple operation while preserving other features.

Does one of these options stand out as the most sensible? Is there a more sensible option or an existing feature I have missed?

I would wager for most objects you could just get away with storing the value in a float (accepting the loss of precision), but it really depends on what the additional coordinate accuracy was used for. Is it an extremely large object (scale model of a planet) or is it extremely small (scale model of a tardigrade)? In either extreme case, some rescaling is obviously going to be necessary, in which case your plan for getting a bounding box delta is solid, but if the additional precision wasn’t used for anything (it’s just a normal model coming from software that just happens to use double precision), you can likely just cast to float and the resulting loss of precision will not be noticeable.

Hi, I definitely need it for the specific files I am dealing with. I don’t know why they were created that way. Perhaps it was some internal workflow.

I have a bunch of possible approaches but each of them may reveal issues after I have invested a bunch of time investigating them. I guess I was just fishing for a shortcut.