Пока единственный условно рабочий вариант какой пришел в голову и вроде бы работает это парсить BuiltInCategory, например у стен категория OST_Walls , а у марок (тэгов) для стен OST_WallTags, и это правило видимо работает во всех случаях. Соответственно нужно у OST_WallTags отбросить часть Tag, а затем сравнить на равенство с проверяемой категорией "OST_Walls"=="OST_WallTags".Replace("Tag", string.Empty) если true, то значит категория тэга подходит для выбранной категории.