For anyone having this trouble, I solved it myself.
using (Transaction transaction = new Transaction(doc, "Routing Preference"))
{
transaction.Start();
RoutingPreferenceManager routePrefManager = ductType.RoutingPreferenceManager;
routePrefManager.PreferredJunctionType = PreferredJunctionType.Tap;
int initRuleCount = routePrefManager.GetNumberOfRules(RoutingPreferenceRuleGroupType.Junctions);
for (int i = 0; i != initRuleCount; ++i)
{
routePrefManager.RemoveRule(RoutingPreferenceRuleGroupType.Junctions, 0);
}
Family tapFam = null;
FamilySymbol symbol = null;
string path =
@"C:\ProgramData\Autodesk\RVT 2020\Libraries\US Imperial\Duct\Fittings\Round\Taps\Round Takeoff.rfa";
doc.LoadFamily(path, out tapFam);
ISet<ElementId> familySymbolIds = tapFam.GetFamilySymbolIds();
ElementId id = familySymbolIds.ElementAt(0);
symbol = tapFam.Document.GetElement(id) as FamilySymbol;
if ((!symbol.IsActive) && (symbol != null))
{
symbol.Activate();
doc.Regenerate();
}
RoutingPreferenceRule newRule = new RoutingPreferenceRule(symbol.Id, "Round Takeoff");
routePrefManager.AddRule(RoutingPreferenceRuleGroupType.Junctions, newRule);
transaction.Commit();
}