In the ISO14443 protocol (the protocol used by most contactless smart cards), there is a mechanism that does that: it is called anticollision.
Basically (and simplifying things), this is how it works for ISO14443 type A (which is one of the two flavors of contactless card):
- The reader regularily polls the field, asking all tags to respond with their Unique ID (that is assigned during the manufacturing of the tag).
- The reader is able to detect when two tags answer different things at the same time. When it happens (say, at then nth bit), the reader re-polls the tags in the field, but providing the first n bits he got right, plus one bit set to 0, so only the tags with the ID starting with these bits answer.
- He'll also try with the n bits he got right, plus one bit set to 1, to get the other tags.
- This way, and eventually using multiple levels and tries, he finally gets all unique IDs of all tags in the field.
- Later on, when he wants to send a command, he'll indicate to which tag the command is targeted, so only this tag processes the command and answers.
for ISO14443 type B, the anticollision is done differently, and is based on time slots. I don't have the details in mind, but it's in the spec.
So from the protocol point of view, you could theoretically do what you want, no problem.
Now, 200/300 tags is a lot, and you'll therefore certainly need a specifically-designed antenna to be able to power all those tags at the same time. Moreover, it implies that the communication range certainly needs to be higher than usual, because 300 lego parts takes more room than 5 cards stacked on the top of each other.
Edit: the above only suggest HF (13.56Mhz) solutions. These solutions are made for limited range (10-20cm or so), but extended capabilities (cryptography, ...). What is actually more appropriate in your case are UHF (860-960MHz) solutions, mainly ECP Gen2 tags. I haven't worked myself with this technology, but it seems to be what you need.
It can work over a few meters (even when passively powered), but it is primarily made for simple tagging. Of course, it also supports some anticollision scheme, so you can have a lot of tags in the field. Bonus: these tags are usually cheaper than the 13.56Mhz tags. The readers, however, seem more expensive (typically in the 500$-1000$ range), and I'm not sure how you can easily interface them with a raspi (although some of them seem to have a USB interface, you'll have to check for the drivers).