For starters, use code tags:
for (int i = 1; i <= amountOfBuildings; i++) {
GameObject building = Instantiate(randomBuildingPrefeb, randomBuildingPosition, Quaternion.Euler(-90, 0, 0), parentObject);
building.transform.FadeIn3D(1, 1);
}
Next, what you need to do is wait the duration between each instantiate and fade in:
for (int i = 1; i <= amountOfBuildings; i++) {
GameObject building = Instantiate(randomBuildingPrefeb, randomBuildingPosition, Quaternion.Euler(-90, 0, 0), parentObject);
building.transform.FadeIn3D(1, 1);
yield return new WaitForSeconds(1f); //wait 1 second, the duration fade in takes
}
Note, this for loop needs to be happening in a coroutine itself.
I don’t know what your FadeIn3d method does either… but it appears to return an IEnumerator. Why is that? Does that mean it should be ran as a coroutine? Maybe you can yield that instead of the WaitForSeconds.