In a small bowl, whisk together olive oil, wine, garlic, grapefruit juice, and thyme.
Cut the beef into 1 inch cubes and place in large plastic bag or baking dish. Add 1/2 of the marinade, tossing to coat all the beef. Cover and refrigerate for 3 hours. Cover and refrigerate the remaining marinade.
If using wooden skewers, soak in water 30 minutes before use. Preheat the grill. Remove the beef cubes from the marinade. Place the beef, onions, bell peppers, and tomatoes onto the skewers in alternating order. Place the skewers on the preheated grill. Brush often with the other half of the marinade. Grill, turning once, until cooked to desired internal temperature, about 10 minutes.