def METHOD_NAME(model: BDF, pids: list[int],
                                           constraint_id: int, uallow: float,
                                           dresp_id: int=1):
    """adds VM stress constraints for shells"""
    skip_properties = [
        'PROD', 'PELAS', 'PDAMP',
        'PBAR', 'PBEAM', 'PBARL', 'PBEAML', 'PBCOMP', 'PBEND',
        'PSOLID', 'PLSOLID',
        'PCOMP', 'PCOMPG', 'PSHEAR',
    ]
    response_type = 'STRESS'
    for pid in pids:
        prop = model.properties[pid]
        if prop.type in skip_properties:
            continue
        if prop.type == 'PSHELL':
            property_type = 'PSHELL'
            atta = [9, 17] # von mises upper/lower surface stress
            region = None
            attb = None
            atti = [pid]
            label = f'o{pid}U'[:8]
            model.add_dresp1(dresp_id, label, response_type, property_type, region, atta[0], attb, atti)
            model.add_dconstr(constraint_id, dresp_id, uid=uallow)
            dresp_id += 1
            label = f'o{pid}L'[:8]
            model.add_dresp1(dresp_id, label, response_type, property_type, region, atta[1], attb, atti)
            model.add_dconstr(constraint_id, dresp_id, uid=uallow)
            dresp_id += 1
        #elif prop.type == 'PCOMP':
            #label = 'resp2'
            #property_type = 'PCOMP'
            #layer = 4
            #atta = 9 # von mises upper surface stress
            #region = None
            #attb = layer
            #atti = [pid]
            #DRESP1(dresp_id, label, response_type, property_type, region, atta, attb, atti)
        else:
            raise NotImplementedError(prop)
    DRESP1(dresp_id, label, response_type, property_type, region, atta, attb, atti,
           comment='')