I asked PTC support about this some months ago.
This functionality was introduced in WildFire 4.
Unfortunately, I'm still at WilFire 3.
In WF3 this is not supported as you know. My suggested is to determine the type of model that is active so if anyone selects on the menu button a message will appear informing the user that the button can not be used based on the model type.An example is below.
//Get model type
ModelType modelType =mdlObject.GetType();
currSession.UIShowMessageDialog("Please select an assembly.",null );
Hope this helps. If you have questions, please contact me at firstname.lastname@example.org.
In Reply to Chris Bell:
Example: The button for Manikin only appears when an assembly is opened. I'd like to do this for parts with JLink. Can anyone point me in the right direction? It seems like it should be a listener but none of the available ones I have found seem to serve the purpose.