Basically you have to check which property is different in 'Available seat' objects and 'Occupied Seat' objects in that pop-up window. In given redbus site, ‘class’ property differentiates them with value 'availableSeat' for not booked seats.
Here below is code for step 3 to 5:
'seats are of object type link, hence creating description object for collection link child objects
Set oDesc = Description.Create()
oDesc("micclass").Value = "Link"
'Here Seatmap is pop-up window which has collection of seats link
Set seatlinks = Browser("Online Bus Booking: Book").Page("Book Ticket - Search Buses").WebElement("Seatmap").ChildObjects(oDesc)
For i = 0 To seatlinks.count - 1 Step 1
DataTable.SetCurrentRow(i+1)
If seatlinks(i).GetROProperty("class") = "availableSeat" Then
DataTable.Value("AvailableSeats","Global") = seatlinks(i).GetROProperty("innertext") & " -Seat Available"
Else
DataTable.Value("AvailableSeats","Global") = seatlinks(i).GetROProperty("innertext") & " -Seat Occupied"
End If
Next
So it will give list of 'Available' and 'Occupied' seats with seat number in your global datatable.