# How to change the Elbow,Crosses,Unions,ect in MEPCurveType's RoutingPreference using Dynamo?

**URL:** <https://forum.dynamobim.com/t/how-to-change-the-elbow-crosses-unions-ect-in-mepcurvetypes-routingpreference-using-dynamo/66963>\
**Category:** Revit\
**Tags:** dynamo\
**Created:** [August 9, 2021, 9:27am UTC](https://forum.dynamobim.com/t/how-to-change-the-elbow-crosses-unions-ect-in-mepcurvetypes-routingpreference-using-dynamo/66963 "2021-08-09T09:27:06Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![IAmTheOne](https://avatars.discourse-cdn.com/v4/letter/i/958977/32.png) [@IAmTheOne](https://forum.dynamobim.com/u/IAmTheOne)\
**Post date:** [August 9, 2021, 9:27am UTC](https://forum.dynamobim.com/t/how-to-change-the-elbow-crosses-unions-ect-in-mepcurvetypes-routingpreference-using-dynamo/66963/1 "2021-08-09T09:27:06Z")

</div>

I lookuped the API,I just can add a new RoutingPreferenceRule with the following code：

import clr

import System

clr.AddReference(‘RevitAPI’)  
from Autodesk.Revit.DB import \*

clr.AddReference(‘RevitNodes’)  
import Revit  
clr.ImportExtensions(Revit.GeometryConversion)  
clr.ImportExtensions(Revit.Elements)

clr.AddReference(‘RevitServices’)  
import RevitServices  
from RevitServices.Persistence import DocumentManager  
from RevitServices.Transactions import TransactionManager

doc = DocumentManager.Instance.CurrentDBDocument

MepCur\_Type = UnwrapElement(IN[0])  
elbow = UnwrapElement(IN[1])

TransactionManager.Instance.EnsureInTransaction(doc)  
OUT = MepCur\_Type.RoutingPreferenceManager.AddRule(RoutingPreferenceRuleGroupType.Elbows,RoutingPreferenceRule(elbow.Id,“弯头”))  
TransactionManager.Instance.TransactionTaskDone()

 ![9639d0a99acc9413f9ece58b9257e25](https://us1.discourse-cdn.com/flex022/uploads/dynamobim/original/3X/f/3/f38d092f3160338ccd34f1e0d9a01fb34e1d89ac.png)

but I want to change the existed one .Anyone can help me ?Thanks a lot !  
I failed in this way too.

 ![ef43acbd8c8c59c1223281188f542aa](https://us1.discourse-cdn.com/flex022/uploads/dynamobim/original/3X/3/f/3f40b68ae3ac1e7f70dfb5e2cbb56bdbfa35c79f.png)

---

<div class="post-metadata">

**Author:** ![IAmTheOne](https://avatars.discourse-cdn.com/v4/letter/i/958977/32.png) [@IAmTheOne](https://forum.dynamobim.com/u/IAmTheOne)\
**Post date:** [August 11, 2021, 4:42am UTC](https://forum.dynamobim.com/t/how-to-change-the-elbow-crosses-unions-ect-in-mepcurvetypes-routingpreference-using-dynamo/66963/2 "2021-08-11T04:42:43Z")

</div>

I convert the thought to access it：Add a new RoutingPreferenceRule first then remove the previous one.Setting the size to “ALL” successfully at the same time .

---

<div class="post-metadata">

**Author:** ![IAmTheOne](https://avatars.discourse-cdn.com/v4/letter/i/958977/32.png) [@IAmTheOne](https://forum.dynamobim.com/u/IAmTheOne)\
**Post date:** [August 11, 2021, 4:44am UTC](https://forum.dynamobim.com/t/how-to-change-the-elbow-crosses-unions-ect-in-mepcurvetypes-routingpreference-using-dynamo/66963/3 "2021-08-11T04:44:31Z")

</div>

![image](https://us1.discourse-cdn.com/flex022/uploads/dynamobim/original/3X/f/1/f1c3f73765ade60553edc3ce5525e86a470b3a38.png)  
import clr

clr.AddReference(‘RevitAPI’)  
from Autodesk.Revit.DB import \*

clr.AddReference(‘RevitNodes’)  
import Revit  
clr.ImportExtensions(Revit.GeometryConversion)  
clr.ImportExtensions(Revit.Elements)

clr.AddReference(‘RevitServices’)  
import RevitServices  
from RevitServices.Persistence import DocumentManager  
from RevitServices.Transactions import TransactionManager

doc = DocumentManager.Instance.CurrentDBDocument

MepCur\_Type = UnwrapElement(IN[0])  
elbow = UnwrapElement(IN[1])

TransactionManager.Instance.EnsureInTransaction(doc)  
new\_PSC = PrimarySizeCriterion.All()  
new\_RPR = RoutingPreferenceRule(elbow.Id,“弯头”)  
new\_RPR.AddCriterion(new\_PSC)  
Routing = MepCur\_Type.RoutingPreferenceManager  
Routing.AddRule(RoutingPreferenceRuleGroupType.Elbows,new\_RPR)  
Routing.RemoveRule(RoutingPreferenceRuleGroupType.Elbows,0)  
TransactionManager.Instance.TransactionTaskDone()  
OUT = 0
