Non-Underground Facilities Management (UFM) Implementation
Migrating your 10.x Conduit Manager data is accomplished by working with your data conversion and implementation team to follow the steps outlined below. Schneider Electric does not provide developer samples to address all the conversion steps necessary to move from 10.x Conduit Manager to Conduit Manager XI. However, several developer samples have been provided to help with some of the more complex migration steps. We expect data migration vendors to use the developer samples we’re providing and Esri’s UN migration tools to complete the conversion process. We believe it will be common for data migration vendors to modify these developer samples based on the customer’s existing data and feedback from the customer. To download these developer samples, refer to the Conduit Manager Data Migration 10.x to XI article on myArcFM.
Step 1: Create Vault Polygons
Create Vault Boundaries Developer Sample
The Create Vault Boundaries developer sample, written for use in ArcMap, creates polygons around the selected Underground Structure points. It is implemented in ConduitDataConversionAddin.sln. This sample defaults the size of the Vault Boundary to 10 x 10 and the wall height to 10. This developer sample expects underground structures in the origin geodatabase to have a FacilityID field with the FacilityID field model name assigned. The following data configuration is required for this developer sample:
-
A point feature class with the ManholeFeatureSnap model name assigned. This model name is usually assigned to the underground structure feature class.
-
A polygon feature class with the VaultBoundary model name assigned: VaultBoundary is a new object class model name created for this developer sample. The VaultBoundary feature class requires the following fields:
-
FacilityId — this is a text field with the FacilityId field model name assigned.
-
WallHeight — this is a float field with the WallHeight field model name assigned.
-
Step 2: Migrating Ducts
Create Duct Ends from Blob Developer Sample
The 10.x Conduit Manager data model’s Conduit feature class includes a blob field with the DuctBankConfiguration field model name. The field contains the layout and attributes of conduits’ ducts. To migrate this data, we first need to unpack that information from the blob field if you did not implement Underground Facilities Manager (UFM). The Create Duct Ends from Blob developer sample, written for use in ArcMap, iterates over Conduits connected to the selected Underground Structures. It uses information stored in the Conduit feature’s blob field to create three different types of features that are used to populate UN data in the Editor XI data model:
-
One Duct Bank End feature is created where the conduit intersects the Vault Boundary polygon.
-
One Duct End feature is created for each duct definition stored in the Conduit’s blob field. The Duct End features are created on the edge (wall) of the Vault Boundary.
-
One Underground Connection Point is created at the same location as each Duct End feature for each duct that is associated to a cable.
It is implemented in ConduitDataConversionAddin.sln. It requires the following data configuration:
-
A point feature class with the ManholeFeatureSnap model name assigned. This model name is usually assigned to the underground structure feature class.
-
An edge feature class with the ULS model name assigned. This model name is usually assigned to the ConduitSystem feature class.
-
A polygon feature class with the VaultBoundary model name assigned — VaultBoundary is a new object class model name created for this developer sample. We recommend the dataset to which this feature class belongs have a Z coordinate system defined. The VaultBoundary feature class requires the following fields:
- FacilityId — this is a text field with the FacilityId field model name assigned.
- WallHeight — this is a float field with the WallHeight field model name assigned.
-
A point feature class with the DuctBankEnd model name assigned — this feature class’s coordinates must have Z values. The DuctBankEnd feature class requires the following field:
- ConduitObjectID — this is a long integer field with the ConduitIdentifier field model name assigned.
-
A point feature class with the DuctEnd model name assigned — this feature class’s coordinates must include Z values. The DuctEnd feature class requires the following fields:
- ConduitObjectId — this is a long integer field with the ConduitIdentifier field model name assigned.
- Diameter — this is a text field with the DuctSize model name assigned.
- DuctCrossSectionShape — this is a short integer field with the DuctCrossSectionShape model name assigned.
- DuctId — this is a text field with the DuctName model name assigned.
- IsAvailable — this is a short integer field with the DuctAvailability model name assigned.
- IsOccupied — this is a short integer field with the DuctOccupied model name assigned.
- Material — this is a text field with the DuctMaterial model name assigned.
-
A point feature class with the UndergroundConnectionPoint model name assigned — this feature class’s coordinates must include Z values. The UndergroundConnectionPoint feature class requires the following field:
- DuctEndObjectId — this is a long integer field with the DuctEndIdentifier field model name assigned.
Step 3: Cross-Section Anno Migration Part One: ArcMap Add-in Developer Sample
ArcFM 10.x cross-section annotation must go through a conversion process so it can be edited in ArcGIS Pro because ArcGIS Pro does not support 10.x annotation that contains group elements. ArcFM 10.x cross-section annotation features are group elements that are usually composed of polygon elements that represent ducts and text elements that are used to label the ducts and describe the ducts’ contents.
The Create Features from Cross-Section Anno Group Elements ArcMap add-in developer sample is used to create features from individual elements contained within the cross-section annotation group elements. The geometry of the ducts (polygons) within the cross-section annotation group elements is used to create polygon features in a new DuctEndFlagConversion feature class described below. The add-in populates the ConduitObjectId field with the ObjectId of the conduit the cross-section annotation is related to. The ConduitObjectId field can be replaced with a GUID field if the conduit feature class is configured to use global Ids.
-
DuctEndFlagConversion - polygon feature class:
-
Class model name: DuctEndFlag
-
Fields
-
|
Field Name |
Data Type |
Field Model Name |
ConduitObjectId |
Long Integer |
ConduitIdentifier |
|
Rotation |
Float |
SymbolRotation |
|
DuctId |
Text |
DuctName |
|
DuctFlagOutlineId |
GUID |
DuctFlagOutlineId |
A rectangular “DuctFlagOutlineConversion” polygon is added around DuctEndFlagConversion features that are related to the same conduit. This polygon feature is used in ArcFM Editor’s UN data model for feature-linked annotation that describes the contents of the duct end flags.
-
DuctFlagOutlineConversion - polygon feature class
-
Class model name: DuctFlagOutline
-
Fields
-
|
Field Name |
Data Type |
Field Model Name |
|
DuctFlagOutlineId |
GUID |
DuctFlagOutlineId |
|
ConduitObjectId |
Long Integer |
ConduitIdentifier |
Leader lines found in the cross-section annotation feature class are copied to a Line feature class that has the CrossSectionLeaderLine class model name. This feature class does not have any extra attributes.
The DuctEndFlagConversion, DuctFlagOutlineConversion, and CrossSectionLeaderLine features should be copied to the target UN database in Step 4.
Step 4: Migrate 10.x Data to a Utility Network (UN) Database
Use ArcGIS Pro’s Migrate to Utility Network geoprocessing tool or other Esri tools to copy the data into the target UN database.
The best way to understand ArcFM Editor’s UN data model is to use the sample database. Add a vault, connect a duct bank to the vault, and then use ArcGIS Pro’s Attribute pane to explore the features and their connections. However, these points might also be helpful:
-
StructureLine - DuctBank and StructureEdgeObject - DuctPath - Duct and StructureJunction – Duct Node - Duct End:
-
10.x Conduit line features should be migrated to StructureLine - DuctBank features in Editor’s UN data model.
-
The StructureLine – DuctBank features created for each 10.x conduit feature should contain a StructureEdgeObject - DuctPath - Duct for each duct in the 10.x conduit.
-
Each end of a StructureEdgeObject - DuctPath - Duct should connect to a StructureJunction – Duct Node - Duct End.
-
Each StructureJunction – Duct Node - Duct End should only connect to one StructureEdgeObject - DuctPath - Duct.
-
-
StructureJunction – Duct Bank Node - Duct Bank Hub
-
Every StructureJunction – Duct Bank Node - Duct Bank End should connect to a Duct Bank Hub
-
-
StructureJunction - Duct Bank Node - Duct Bank End
-
A Duct Bank End should be at each end of a StructureLine - DuctBank
-
-
ElectricJunction - Connection Point
-
Connection Points are necessary when a non-spatial cable is associated to a duct
-
Connection Points are not supported when a spatial cable is associated to a duct
-
Contained within a StructureJunction – Duct Node - Duct End
-
Connected to Electric Edge Object - Cable
-
Step 5: Create Duct End Flag and Duct Flag Outline Annotation Classes in the UN Database
Create a DuctEndFlagAnno annotation feature class that is linked to the StructureBoundary feature class. This annotation feature class should have the following properties:
Create a DuctFlagOutlineAnno annotation feature class that is linked to the StructureBoundary feature class. This annotation feature class should have the following properties:
-
Expression: This annotation string uses ‘::” as a line delimiter:
var result = split($feature.notes, '::', -1, true)
for (var val in result)
{
val = Trim(val);
}
concatenate(result, TextFormatting.NewLine)
Step 6: Create Duct End Flag Annotation for Duct End Flag Polygons
Use ArcGIS Pro’s Annotate Selected Features geoprocessing tool to create annotation for all the duct end polygon features. The new feature-linked annotation should be created at the center of duct end flag polygons.
Step 7: Cross-Section Anno Migration Part Two: ArcGIS Pro Add-in Developer Sample
The ArcGIS Pro add-in developer samples named Create duct flags and Create duct flag outline annotation are contained in a Visual Studio solution named ConvertCrossSectionAnno.sln.
To use the Create duct flags developer sample, select some DuctFlagOutline features and press the Create duct flags tool. This tool performs the following steps for each selected duct flag outline feature:
-
Locates the closest point on the duct bank (conduit) line feature that is related to the duct flag outline feature.
-
Finds the nearest vault that is closest to the point on the duct bank feature.
-
Finds the vault wall segment that intersects the duct bank.
-
Identifies the duct end features on that vault wall, matches them to duct end flag features, and copies attributes (e.g. OccupantDescription, IsOccupied) from duct ends to duct end flags.
-
Creates containment associations between duct end flags and the ducts they represent.
-
Updates the duct flag outline’s Notes field with the vault’s Facility ID and a concatenated list of values from the duct end flags’ OccupantDescription fields.
The Create duct flag outline annotation developer sample uses the string in the duct flag outline’s Notes field to create feature-linked annotation that describes the contents of the duct end flags.
The tables provided below identify the feature classes and fields in the 10.x Series application and where they should be mapped in the XI Series application. Use these tables to scope and plan your data migration. With the exception of the Conduit Blob field, all of the Conduit Manager 10.x fields have an equivalent field in the Conduit Manager XI data model. Your company likely added other fields to your data model, and these fields vary by company. Thus, they are not represented in the tables below. Most likely, there is a logical field in the Conduit Manager XI data model to accept your additional fields. Work with your implementation team to determine the best fit.
|
10.x Feature Class |
Asset Group |
Asset Type |
|---|---|---|
|
Underground Structure |
Structure Junction |
Handhole, Manhole, Vault |
|
Conduit Manager 10.x Field |
Equivalent Conduit Manager XI Field |
Type |
|---|---|---|
|
FacilityID |
Facility ID |
Text |
|
WallHeight |
Height |
Short |
|
Material |
Material |
Short |
|
InstallationDate |
Install Date |
Date |
|
Manufacturer |
Manufacturer |
Text |
|
Comments |
Notes |
Text |
|
GlobalID |
Legacy ID |
Long |
|
CreationUser |
Creator |
Text |
|
DateCreated |
Creation Date |
Date |
|
LastUser |
Updated By |
Text |
|
DateModified |
Last Update |
Date |
|
SymbolRotation |
Symbol Rotation |
Short |
|
10.x Feature Class |
Asset Group |
Asset Type |
|---|---|---|
|
Conduit System |
Structure Line |
Duct Bank — Duct Bank |
|
Conduit Manager 10.x Field |
Conduit Manager 10.x Property Name in Conduit Blob |
Equivalent Conduit Manager XI Field |
Type |
|---|---|---|---|
|
FacilityID |
Facility ID |
Text |
|
|
Material |
Material |
Short |
|
|
MeasuredLength |
Measured Length |
Double |
|
|
InstallationDate |
Install Date |
Date |
|
|
Configuration |
Does not store directly but can be calculated from blob |
Number of Available Ducts |
Short |
|
GlobalID |
Legacy ID |
Long |
|
|
CreationUser |
Creator |
Text |
|
|
DateCreated |
Creation Date |
Date |
|
|
LastUser |
Updated By |
Text |
|
|
DateModified |
Last Update |
Date |
|
10.x Feature Class |
Asset Group |
Asset Type |
|---|---|---|
|
Conduit System Blob Field |
Structure Junction |
Duct Node — Duct End |
|
Conduit Manager 10.x Property Name in Conduit Blob |
Equivalent Conduit Manager XI Field |
Type |
|---|---|---|
|
Diameter |
Diameter |
Double |
|
Material |
Material |
Short |
|
Availability |
Is Available (Y/N) |
Short |
|
Check the DuctCables collection |
Is Occupied (Y/N) |
Short |
|
DuctID |
Duct ID |
Text |
|
IsCircle |
Duct Cross Section Shape |
Short |

