The first thing to do is create any custom parameters. The trick here is that you are creating a parameter associated with materials, not a "material parameter" as shown in the image below.
If you create a material with Type of Material set to Material you can only select material names from a list. If you create a Text parameter associated with the material category, then you can type whatever you want in that text-based parameter. TIP: Add a tooltip to your custom parameters to help other designers in the office.
Accessing the custom material parameters is not very intuitive, but this does not really matter as...
all this information can be modified in a schedule. Notice how the "Paint" materials can be assigned to the "Paint" Class and then sorted by Class in the upper left - you can create custom Class groups (which is also accessible when using the Paint command).
Below is a Material Schedule using all the required built-in and custom parameters for paint. The big catch here is that only materials used somewhere in the project appear in this list... which is a good thing, right? Perhaps:)
If you ever want to be able to tag any of your 'custom material' information within the model, maybe in a presentation drawing for a more detailed client meeting, you have to make sure to use Shared Parameters. The image below is an interior elevation with a custom material tag applied to three different walls in a project. These can be selected and deleted or swapped with the simple material mark-only option.
Here is an example using/creating a shared parameter...
Finally, if would be really nice if the 'custom material' parameters were in-line with the information on the Identity tab. I did a little image editing to show how I envision this looking in Revit (this os a separate tab). Having to click the little button to access 'custom material' parameters is not very clever. I will find, or create, a Revit Ideas on this and update the post later.
For BIM Chapters updates, follow @DanStine_MN on Twitter