Advanced custom fields is an incredibly powerful WordPress plugin. We use it on virtually every WordPress website we develop. It contains a useful element know as a repeater that can be used to create whole new content types. For instance, if you were developing a website to manage real estate, it could be used to create house types. Fields might include house size, number of rooms, number of bedrooms and so on.
Even though you could use advanced custom fields to model content types, its probably not a good idea. When you have discrete content types that contain details pages e.g. a real estate site lists houses you click on for detail, you are better off creating custom post types. Custom post types will be stored as their own separate entity making editing easier and display of the content simpler to program.
The second case of using custom post types is when you have data without a details page but there are lots of those items e.g. thousands of images.