Guidance on VM Service Catalog Items

In this chapter:

A service item is created for a RHEV type, and then fields from the dialog is used to overwrite the catalog item’s default name during the provisioning process. Is this considered the best practice to deploy VMs for your selected hypervisor? Specifically, setting default values within the catalog item and overwriting them?

Or is it recommended to create a Generic service catalog item and then generate the code/workflows to create the VM? I did see this: How can I get Customization Templates to work while using a Generic Service Catalog Item?

But could not find references to the BuildRequest method so that I could “turn” the generic service item into a VMware based provisioning request.

I would do it as described in the book.

When you are using a generic-service-catalog-item, you basically need to recreate everything the VMware-catalog-item does for you anyway.
Apart from that, he VMware-catalog-item also uses the selected template to schedule the miq_provsion-task to an Appliance, that is in the same zone as the provider (if you have multiple zones)