How to get the base dimensions of an object (ignoring all of it's modifiers)?
Look at the mesh coordinates.
The unmodified dimensions of the mesh can be obtained from the mesh.
import bpy
import numpy as np

ob = bpy.context.object
me = ob.data

coords = np.empty(3 * len(me.vertices))
me.vertices.foreach_get(&quot;co&quot;, coords)
x, y, z = coords.reshape((-1, 3)).T

mesh_dim = (
        x.max() - x.min(),
        y.max() - y.min(),
        z.max() - z.min()
        )
        
print(mesh_dim)

Could use this to give a mesh a dimensions property
import bpy
import numpy as np
from bpy.props import FloatVectorProperty

def get_mesh_dims(self):
    coords = np.empty(3 * len(me.vertices))
    me.vertices.foreach_get(&quot;co&quot;, coords)

    x, y, z = coords.reshape((-1, 3)).T

    return (
            x.max() - x.min(),
            y.max() - y.min(),
            z.max() - z.min()
            )

bpy.types.Mesh.dimensions = FloatVectorProperty(
        name=&quot;Mesh Dimensions&quot;,
        get=get_mesh_dims,
        subtype='XYZ',
        unit='LENGTH',
        )  

python console code, default cube, arrayed subsurfed spun and hung.
&gt;&gt;&gt; C.object.data.dimensions
Vector((2.0, 2.0, 2.0))