Attached is a code to access routing preference of a pipe .I would like to know what is routing preference condition and how to access it?
# Enable Python support and load DesignScript library
import clr
import sys
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)
clr.AddReference('DSCoreNodes')
from DSCore.List import Flatten
from Autodesk.Revit.DB.Electrical import*
import sys
pyt_path = r'C:\Program Files (x86)\IronPython 2.7\Lib'
sys.path.append(pyt_path)
import System
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument
clr.AddReference("RevitAPI")
import Autodesk
from Autodesk.Revit.DB import *
clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)
clr.ImportExtensions(Revit.GeometryConversion)
import collections
from itertools import combinations
from itertools import product
def ToInternalUnits(number, unittype = None):
if unittype == None:
unittype = UnitType.UT_Length
currentType = doc.GetUnits().GetFormatOptions(unittype).DisplayUnits
return UnitUtils.ConvertToInternalUnits(float(number), currentType)
def FindSlope(x1,y1,x2,y2):
if x1 == x2:
x = 0
return x
else:
x = (y2 - y1) / (x2 - x1)
return x
# The inputs to this node will be stored as a list in the IN variables.
doc = DocumentManager.Instance.CurrentDBDocument
TransactionManager.Instance.EnsureInTransaction(doc)
AccView = doc.ActiveView
AccViewid = AccView.Id
PipeType = UnwrapElement(IN[0])
#for Pipe in Pipes:
routePrefManager = PipeType.RoutingPreferenceManager;
NumberOfRules = routePrefManager.GetNumberOfRules(RoutingPreferenceRuleGroupType.Elbows)
Rule = routePrefManager.GetRule(RoutingPreferenceRuleGroupType.Elbows,0)
Criteria = Rule.GetCriterion(0)
MinSize = Criteria.MinimumSize
MinSizeInmm = MinSize*304.8
MaxSize = Criteria.MaximumSize
MaxSizeInmm = MaxSize*304.8
if MinSizeInmm == -3.048E+32:
x = "all"
else:
x = "Not all"
if MaxSizeInmm == 3.048E+32:
y = "all"
else:
y = "Not all"
#routePrefManager.GetMEPPartId(RoutingPreferenceRuleGroupType.Elbows,Criteria)
#Rule.GetConditionAt(0)
TransactionManager.Instance.TransactionTaskDone()
# Assign your output to the OUT variable.
OUT = PipeType.GetNumberOfConditions