Understanding Associations in ESRI Utility Network with Telecom Dataset
- Paritosh Gupta
- Jul 12
- 3 min read
Managing and analyzing a telecom network—with its complex web of fibers, conduits, handholes, and terminals—requires more than simple geometric connections. The Esri Utility Network Extension revolutionizes utility and telecom modeling with a foundational concept: Associations.
This blog post explores the four types of associations, demonstrates how to implement them using a telecom dataset, and shares ArcPy/Python snippets to work with them programmatically.

🔍 What are Associations?
In a Utility Network, associations define relationships that can't always be represented spatially (like with lines and junctions). These include:
Connectivity Association – Connects features that aren’t touching (e.g., fiber port to cable).
Containment Association – Groups features within a container (e.g., a handhole containing cables).
Structural Attachment Association – Attaches features physically to others (e.g., fiber cable attached to a pole).
Association Role – Defines a parent-child role between the two features.
📡 Telecom Scenario Overview
Imagine a simple telecom fiber network:
Poles: Structural features
Handholes: Container features
Fiber Cables: Linear assets
Terminals: Endpoints or interfaces
Splice Closures: Junctions
Fiber Ports: Junction objects inside terminals
⚙️ Creating Associations with Python (ArcPy)
First, ensure you're using ArcGIS Pro with a licensed Utility Network and valid feature classes.
import arcpy
# Set your environment
arcpy.env.workspace = r"C:\GIS\TelecomUN.gdb"
arcpy.env.overwriteOutput = True
# Enable utility network
un = "UtilityNetwork"
1️⃣ Connectivity Association – Fiber Port to Cable
This connects a Fiber Port (junction object) to a Fiber Cable (edge), even if they don’t touch geometrically.
arcpy.un.CreateAssociation(
utility_network=un,
association_type="Connectivity",
from_global_id="{GUID_PORT}",
to_global_id="{GUID_CABLE}"
)
Use case: Connect a fiber port in a terminal to a fiber cable that enters a handhole.
2️⃣ Containment Association – Handhole Containing Terminals and Cables
A handhole contains multiple items, like fiber terminals and cables.
arcpy.un.CreateAssociation(
utility_network=un,
association_type="Containment",
from_global_id="{GUID_HANDHOLE}",
to_global_id="{GUID_TERMINAL}",
association_role="Content"
)
Add additional contents (like cables):
arcpy.un.CreateAssociation(
utility_network=un,
association_type="Containment",
from_global_id="{GUID_HANDHOLE}",
to_global_id="{GUID_CABLE}"
)
3️⃣ Structural Attachment Association – Pole to Fiber Cable
You might need to show that a fiber cable is attached to a pole.
arcpy.un.CreateAssociation(
utility_network=un,
association_type="StructuralAttachment",
from_global_id="{GUID_POLE}",
to_global_id="{GUID_CABLE}"
)
This improves visibility of network structures like aerial fiber deployments.
🔄 Querying Existing Associations
You can list associations using Describe on the utility network.
un_desc = arcpy.Describe(un)
for assoc in un_desc.associations:
print(f"Type: {assoc.associationType}, From: {assoc.fromGlobalId}, To: {assoc.toGlobalId}")
🧩 Working with Feature GUIDs
You can retrieve the Global IDs using an attribute query:
def get_global_id(fc, where_clause):
with arcpy.da.SearchCursor(fc, ["GLOBALID"], where_clause) as cursor:
for row in cursor:
return str(row[0])
Usage:
guid_handhole = get_global_id("Handholes", "AssetID = 'HH1001'")
guid_terminal = get_global_id("Terminals", "AssetID = 'TM2001'")
📈 Why Associations Matter in Telecom
✅ Enables complex modeling without excessive geometric clutter
✅ Supports tracing through logical (not just spatial) connections
✅ Improves visual clarity for operators and planners
✅ Supports real-world business logic (e.g., what’s inside that handhole?)
🔒 Final Tips for Working with Associations
Associations only work on valid utility network feature classes and objects.
After modifying associations, validate the network topology:
arcpy.un.ValidateNetworkTopology(un, "EntireExtent")
Ensure editing is done in a versioned environment or using branch versioning.
📚 Conclusion
The Esri Utility Network’s association model is a game-changer for modeling real-world telecom infrastructure. From mapping physical enclosures like handholes to logical paths between ports and cables, associations help you bridge the spatial and non-spatial world of network assets.
Write to us at bd@agilytics.in for the expertise.
Comments