path = r'D:\data\1.i3dm'
f = open(path, 'rb')
f.seek(4)
print('version:%d' % struct.unpack('I', f.read(4)))
print('byteLength:%d' % struct.unpack('I', f.read(4)))
print('featureTableJsonByteLength:%d' % struct.unpack('I', f.read(4)))
print('featureTableBinaryByteLength:%d' % struct.unpack('I', f.read(4)))
print('batchTableJsonByteLength:%d' % struct.unpack('I', f.read(4)))
print('batchTableBinaryByteLength:%d' % struct.unpack('I', f.read(4)))
print('gltfFormat:%d' % struct.unpack('I', f.read(4)))
f.seek(32)
print(f.read(104).decode(encoding = "utf-8"))
print('pos x:%f' % struct.unpack('f', f.read(4)))
print('pos y:%f' % struct.unpack('f', f.read(4)))
print('pos z:%f' % struct.unpack('f', f.read(4)))
print('scale:%f' % struct.unpack('f', f.read(4)))
f.close()