private void Process(List <object> l, List <RelativeMeasurements> rm, IPosition position, List <object> ladd, int priority, string reason) { Action <object> act = (object obj) => { }; if (position == null) { return; } IDataConsumer c = position.GetLabelObject <IDataConsumer>(); if (c != null) { if (c is IAssociatedObject) { IAssociatedObject ao = c as IAssociatedObject; object o = ao.Object; if (!ladd.Contains(o)) { ladd.Add(o); } } CreateDataConsumerCollection(c, ladd, act, priority, reason); } Process(l, rm, position.Parent, ladd, priority, reason); }