@classmethod
def export_to_hdf5(cls, h5_file, model, pids):
    """exports the properties in a vectorized way"""
    encoding = model._encoding
    mid = []
    cordm = []
    integ = []
    stress = []
    isop = []
    fctn = []
    assert len(pids) > 0, pids
    for pid in pids:
        prop = model.properties[pid]
        mid.append(prop.mid)
        cordm.append(prop.cordm)
        if prop.integ is None:
            integ.append(b'')
        elif prop.integ == 0:
            integ.append(b'BUBBLE')
        elif prop.integ == 1:
            integ.append(b'GAUSS')
        elif prop.integ == 2:
            integ.append(b'TWO')
        elif prop.integ == 3:
            integ.append(b'THREE')
        else:
            integ.append(prop.integ.encode(encoding))
        if prop.stress is None:
            stress.append(b'')
        elif prop.stress == 1:
            stress.append(b'GAUSS')
        else:
            stress.append(prop.stress.encode(encoding))
        if prop.isop is None:
            isop.append(b'')
        elif prop.isop == 0:
            isop.append(b'REDUCED')
        elif prop.isop == 1:
            isop.append(b'FULL')
        elif prop.isop == 2:
            isop.append('2')
        else:
            isop.append(prop.isop.encode(encoding))
        fctn.append(prop.fctn.encode(encoding))
    h5_file.create_dataset('pid', data=pids)
    h5_file.create_dataset('mid', data=mid)
    h5_file.create_dataset('cordm', data=cordm)
    h5_file.create_dataset('integ', data=integ)
    h5_file.create_dataset('stress', data=stress)
    h5_file.create_dataset('isop', data=isop)
    h5_file.create_dataset('fctn', data=fctn)
