How do I get a proxy object dimensions?
For a linked collection instance

Pertaining to 2.8x

Example below. Collection instance "Cube.001" is linked from library "Cube.blend" where it belongs to collection "Cube"

&gt;&gt;&gt; C.object
bpy.data.objects['Cube.001']

&gt;&gt;&gt; C.object.type
'EMPTY'

&gt;&gt;&gt; C.object.library
bpy.data.libraries['CUBE.blend']


Notice the collection is linked too

&gt;&gt;&gt; C.object.instance_collection
bpy.data.collections['Cube']

&gt;&gt;&gt; D.collections['Cube'].objects[:]
[bpy.data.objects['Cube']]


The dimensions of the individual objects in the group can be found via

&gt;&gt;&gt; for o in C.object.instance_collection.objects:
...     o.name, o.type, o.dimensions
...     
('Cube', 'MESH', Vector((2.0000009536743164, 2.0000009536743164, 2.0)))


which could be used to make a "virtual" bounding box for the collection.

How to have a boundary box around a whole group instance?

Similarly for linking the collection and instancing from local blend.