Yes.
You should not need to write an RGGSubphraseGenerator class. Instead the rgg session will provide <View>...</View>
configuration XML that tells the QueryPhraseModel what to do. For example, we might have
<View Type="DescriptivePhrase" TopLevel="true" AllowSortFilter="true">
<PhraseModel Type="RGGPhraseModel"/>
<SubphraseGenerator Type="QueryPhraseModel">
<MapPhrase ParentTitle="pins">
<Resource Type="smtk::session::rgg::Resource"
Filter="aux_geom[string{'rgg_type'='pin'}]"/>
</MapPhrase>
<MapPhrase ParentTitle="ducts">
<Resource Type="smtk::session::rgg::Resource"
Filter="aux_geom[string{'rgg_type'='duct'}]"/>
</MapPhrase>
<MapPhrase ParentTitle="assemblies">
<Resource Type="smtk::session::rgg::Resource"
Filter="group[string{'rgg_type'='assembly'}]"/>
</MapPhrase>
<MapPhrase ParentTitle="cores">
<Resource Type="smtk::session::rgg::Resource"
Filter="group[string{'rgg_type'='core'}]"/>
</MapPhrase>
</SubphraseGenerator>
</View>
(The filter strings are discussed here: Query filter strings for model resources .)