ArcGIS Pro 3.7 API Reference Guide
ArcGIS.Core.Data.UtilityNetwork.Telecom Namespace / CircuitManager Class / Create Method
The circuit to create.
Example

In This Topic
    Create Method (CircuitManager)
    In This Topic
    Inserts a circuit row in the circuit table with the provided argument's values. This method must be called on the MCT. Use QueuedTask.Run.
    Syntax
    Public Sub Create( _
       ByVal circuit As Circuit _
    ) 
    public void Create( 
       Circuit circuit
    )

    Parameters

    circuit
    The circuit to create.
    Exceptions
    ExceptionDescription
    circuit is null.
    This operation cannot be invoked inside ArcGIS.Core.Data.Geodatabase.ApplyEdits or when an edit operation is in progress.
    A geodatabase-related exception has occurred.
    Example
    Create a physical circuit (non-sectioned) in the utility network with subcircuits
    await QueuedTask.Run(() =>
    {
      using (CircuitManager circuitManager = utilityNetwork.GetCircuitManager(telecomDomainNetwork))
      {
        // Create a non-sectioned circuit object
        Circuit circuit = new Circuit(circuitManager);
        circuit.SetName(circuitNames.First());
        circuit.SetSectioned(false);
        circuit.SetCircuitType(CircuitType.Physical);
    
        // Set a circuit user attribute
        IReadOnlyList<Field> circuitFields = circuitManager.GetCircuitUserFields();
        circuit[circuitFields.First().Name] = "My circuit description";
    
        // Add start and stop locations
        circuit.SetStartLocation(new CircuitLocation(startElement));
        circuit.SetStopLocation(new CircuitLocation(stopElement));
    
        Subcircuit subcircuit1 = new Subcircuit(circuitManager);
        subcircuit1.SetName("Subcircuit1");
    
        // Set a subcircuit user attribute
        IReadOnlyList<Field> subcircuitFields = circuitManager.GetSubcircuitUserFields();
        subcircuit1[subcircuitFields[0].Name] = "My subcircuit description";
    
        Subcircuit subcircuit2 = new Subcircuit(circuitManager);
        subcircuit2.SetName("Subcircuit2");
        subcircuit2.SetProviderID(new Guid("9B587BB4-FA30-4AC8-ACAC-4CB1BB087111")); // Example GUID 
    
        // Add subcircuits to the circuit
        circuit.SetSubcircuits(new List<Subcircuit> {
                      subcircuit1,
                      subcircuit2
            });
    
        // Create the circuit.
    
        circuitManager.Create(circuit);
    
      }
    
    });
    Create a virtual sectioned circuit in the utility network
    await QueuedTask.Run(() =>
    {
      using (CircuitManager circuitManager = utilityNetwork.GetCircuitManager(telecomDomainNetwork))
      {
        // Create a sectioned virtual circuit object
        Circuit circuit = new Circuit(circuitManager);
        circuit.SetName(circuitNames.First());
        circuit.SetSectioned(true);
        circuit.SetCircuitType(CircuitType.Virtual);
    
        CircuitSection circuitSection1 = new CircuitSection(circuitManager);
        circuitSection1.SetSectionType(CircuitSectionType.Virtual);
        circuitSection1.SetStartLocation(new CircuitLocation(startElement));
        circuitSection1.SetStopLocation(new CircuitLocation(stopElement));
    
        CircuitSection circuitSection2 = new CircuitSection(circuitManager);
        circuitSection2.SetSectionType(CircuitSectionType.Physical);
        circuitSection2.SetStartLocation(new CircuitLocation(startElement));
        circuitSection2.SetStopLocation(new CircuitLocation(stopElement));
    
        // Add sections in parallel
        Dictionary<CircuitSection, List<CircuitSection>> circuitSections = new Dictionary<CircuitSection,
                  List<CircuitSection>> {
                      {
                          circuitSection1,
                          new List < CircuitSection > ()
                      },
                      {
                          circuitSection2,
                          new List < CircuitSection > ()
                      }
            };
    
        circuit.SetCircuitSections(circuitSections);
    
        // Create the circuit.
    
        circuitManager.Create(circuit);
      }
    });
    Requirements

    Target Platforms: Windows 11 Home, Pro, Enterprise (64 bit)

    ArcGIS Pro version: 3.7 or higher.
    See Also