Editor/Tunnel/ArchPlanTunnels.cs

Extension methods for the editor ArchPlan type that locate tunnel and road parts. FindTunnel returns the ArchTunnelPart with a matching id by searching all roads' tunnels. RoadHolding returns the ArchRoadPart that contains a given tunnel.

Reflection
using System.Linq;

namespace Sunless.Architecture;

public static class ArchPlanTunnels
{
	public static ArchTunnelPart FindTunnel( this ArchPlan plan, int id ) =>
		plan.Roads().SelectMany( road => road.Tunnels ).FirstOrDefault( tunnel => tunnel.Id == id );

	public static ArchRoadPart RoadHolding( this ArchPlan plan, ArchTunnelPart tunnel ) =>
		plan.Roads().FirstOrDefault( road => road.Tunnels.Contains( tunnel ) );
}