From my perspective, this is working correctly. When adding PVIs to a profile through the Civil 3D UI, you also can’t add two PVIs at the same station, whether through the tabular editor or inserting them manually. You have to go back and edit the station of the PVI in the grid view. The API method for adding PVIs will throw an argument exception of “Value does not fall within the expected range” if two identical stations are supplied.
This is just background info and doesn’t really solve your problem. I don’t think you’ll be able to get around this by adding PVIs to the profile unless you add a very small increment to the station value so that they are not identical. You could maybe look into adding tangent entities to the profile instead of PVIs.
If the intent of the profile is just for visual purposes, then adding a small increment to the station shouldn’t be an issue. But if you’re using the profile as a source of data for some other operation (like getting the invert elevation of the pipe at any point, for example), then having two PVIs at the same station is probably undesirable anyway because you wouldn’t be able to correctly query the elevation at that station.
Thank you for your answer @mzjensen I think I will add a small increment to the station, as you suggest. I just need to follow the pipe slope. Of course I wasn’t say that it’s not working correctly, I was just wondering how the API method works.
The Actual values take into account the slope and rotate the face of the pipe whereas the Invert keeps the faces of the pipe vertical as in Civil 3D. If the pipe has no slope, there is no difference.