While creating IndependentTags for elements in a Revit model, you might have noticed that the IndependentTag.TagText() method is read-only. The label for this tag is picked up, by default, by the Type parameter. For instance, for any given wall, when Document.NewTag() method is used to create a new IndependentTag, it picks up the value of the Type Mark parameter which is contained in the Wall Type.
If you wish to use the Wall Instance parameter value instead (say Mark parameter) for the tag, you can do that from the Revit User Interface (UI). You can do this by editing the Tag family and select the Label in it. This brings up the parameters of the Label in the Family Editor mode and at this point, we can click the Edit button on the Label parameter of the Label. This brings up a dialog called Edit Label in which we can set the specific Instance parameter you want to use to set the Tag text (Mark parameter in this case), instead of the default Type parameter. The screenshot below shows the dialog I am referring to here:
After reloading the Tag family in the model, any new tags created will use this specific Instance parameter value for its text.
Using the API, it does not seem like we can edit the Label of a Tag family. So as an alternative, we can work with a model/template which already has the tag families configured (as per the specific Instance parameter you want to use) and also loaded in the model. Consequently any API calls to NewTag() should use the configured tags.