RevitAPI: PipeScheduleType is missing for a rte file

中文链接

By Aaron Lu

I’ve gotten a strange problem for Revit 2015, in the project file created from a rte file sent from a customer, there is no PipeScheduleType at all,

which means all PipeType.Class is null, even if there are a lot of pipe segments in the document.

PipeSegment

After communicating with developer, we confirmed it is a defect caused by file upgrading.

The only solution now is to create a pipe segment by manual, which is not accessible via API because PipeSegment.Create method requires a PipeScheduleId. After the pipe segment is created, a pipe schedule type will be created automatically. To make it work, we should then change pipe segment of pipe type to the new one. Like this:

PipeSegment-Change

However, after doing that, PipeType.Class is still null! What’s going on?

 

Again, developer helped us: PipeType.Class property will be moved to Pipe, so we can use Pipe’s Parameter to get the schedule type, below is how:

Autodesk.Revit.DB.Plumbing.Pipe pipe = null;
var pipeClass = pipe.get_Parameter(BuiltInParameter.RBS_PIPE_CLASS_PARAM);
var pipeScheduleTypeId = pipeClass.AsElementId();

But how to change PipeSegment of PipeType via API? Here it is:

ElementId theSegmentId = new ElementId(1803995);
PipeType pipeType = doc.GetElement(new ElementId(1660690)) as PipeType;
var rpm = pipeType.RoutingPreferenceManager;
var groupType = RoutingPreferenceRuleGroupType.Segments;
RoutingPreferenceRule rule = new RoutingPreferenceRule(theSegmentId,     "description");
using (Transaction transaction = new Transaction(RevitDoc))
{
transaction.Start("Change pipe segment");
rpm.AddRule(groupType, rule);
transaction.Commit();
}
Keynotes:
  • First, get RoutingPreferenceManager from PipeType.RoutingPreferenceManager
  • Then create a new RoutingPreferenceRule
  • Last, Add the rule using AddRule method

 


Comments

One response to “RevitAPI: PipeScheduleType is missing for a rte file”

  1. I’d like to thank the author for writing such an insightful and informative blog post about pipe that is not just useful to the readers but also revealing.

Leave a Reply

Discover more from Autodesk Developer Blog

Subscribe now to keep reading and get access to the full archive.

Continue reading