Enhance the ArcFM Locator to Search Duct Attributes in Conduit

Context

By default, the ArcFM Locator searches for ducts by their attributes by querying the duct feature class, however the ArcFM Locator tool does not query duct attributes within the conduit feature class. This is because, within the conduit, the duct attributes are stored in a separate duct definition table, which is viewable within the ArcFM Conduit Configuration dialog. The ArcFM Locator is unable to “reach” these fields when querying the conduit feature class.

However, following the steps below, you can configure the ArcFM Locator tool to include duct attributes when querying the conduit feature class.


Create ConduitDuctSearchInfo Model Name and Table

  1. Create the model name CONDUITDUCTSEARCHINFO. To do so, follow these sub-steps:

    1. In ArcCatalog > Catalog Tree, right-click your database and choose Properties.

    2. Click the Domains tab, if necessary.

    3. Scroll down the list of domains until you find the Domain Independent Object Class Model Name domain, then click it once to highlight.

    4. At the bottom of the dialog, under Coded Values, scroll down to the bottom of the list until you find the first empty row.

    5. Type CONDUITDUCTSEARCHINFO for both the Code and the Description.

      TIP: The fields do not accept a copy/paste. It looks like they do, but when you click OK, it clears them out. However, you can paste the model name in full, delete the last letter (in this case, “O”), then re-type it.

    6. Click Apply, then OK to close the dialog.

  2. Create a new object table called ConduitDuctSearchInfo. To do so, follow these steps:

    1. Coming up in a subsequent step, you add fields to the ConduitDuctSearchInfo table. These are the fields that you want to be able to search within the ArcFM Locator. Thus, before creating the new table, it is recommended to view your DuctDefintion table, and make a note of the fields you want to be able to query. Write down their field names and their data types. This example uses Material, DuctSize, and DuctType.

    2. Further, along these same lines, it is easier for your end users if they can use domains of values. So, take note of any domains assigned to your chosen fields.

    3. Finally, coming up in a subsequent step, you mirror the model name assignments for these fields. So, make a note of which model names are assigned to these fields.

    4. In the Catalog Tree, right-click your geodatabase and choose New > Table.

    5. Type ConduitDuctSearchInfo for both Name and Alias.

    6. Click Next.

    7. Add the following fields (these are required):

      • ConduitGuid with a Data Type of GUID

      • ConduitObjectID with a Data Type of Long Integer

    8. Then, add the fields you noted earlier in Substep A.

    9. Assign these fields their domains (you took note of their domains earlier in these steps).

    10. Click Finish.

  3. Newly-created tables or feature classes are not versioned by default. Thus, register this new table as versioned following your normal database procedures.

  4. Add class and field model names to your new table.

    1. Add the CONDUITDUCTSEARCHINFO class model name to the ConduitDuctSearchInfo table. This is the model name you created earlier in the Domain Independent Object Class Model Name domain.

    2. Then, add the field model names you wrote down earlier for the fields you’ve included in the table. Duct field model names are in the Electric Field Model Name domain.

    3. Click OK.


Initialize the ConduitDuctSearchInfo Table

The ConduitDuctSearchInfo you just created is currently empty. Below, you use the Initialize Conduit Duct Search tool to populate it.

  1. In ArcCatalog, on the ArcFM Solution toolbar, click the down arrow, then click Customize.

  2. Click the Commands tab.

  3. Search for the “Initialize Conduit Duct Search” tool.

  4. Once found, drag and drop it onto the ArcFM Solution toolbar.

  5. Close the Customize dialog.

  6. In the Catalog Tree, click the dataset that includes the ConduitSystem feature class in order to highlight the dataset. The name of your conduit feature class might vary, and the important part is this is the feature class with the ULS class model name. In the following example image, the ElectricDataset is highlighted because it contains the ConduitSystem feature class.

  7. On the ArcFM Solution toolbar, click the Initialize Conduit Duct Search tool.

  8. The tool runs. ArcCatalog is unavailable while running the tool. When finished, it stops without a dialog.

  9. In the Catalog Tree, click the ConduitDuctSearchInfo table once to highlight it.

  10. Click the Preview tab.

  11. Verify the table is now populated with records and duct attributes.


Assign Autoupdaters to the ConduitSystem Feature Class

Autoupdaters keep the ConduitDuctSearchInfo table in sync with data changes.

The Autoupdaters are assigned to the ConduitSystem feature class. Again, your feature name might differ, and this is the feature class with the ULS class model name.

  • On Feature Create: ArcFM Update Conduit Duct Search Info

  • On Feature Update: ArcFM Update Conduit Duct Search Info

  • On Feature Delete: ArcFM Delete Conduit Duct Search Info

    IMPORTANT: If your tasks already have autoupdaters assigned, use the “Multiple” option in order to assign more than one autoupdater to the same task.


Create a Join between the Conduit System and ConduitDuctSearchInfo Table

Lastly, in ArcMap you create a join between the Conduit System and ConduitDuctSearchInfo Table and save it in your Stored Display.

  1. In ArcMap, open the Stored Display typically used for conduit management purposes. If you are trying to assist your end users, ensure you are modifying the System Stored Display.

  2. Ensure you are not editing. You are unable to save Stored Displays while editing.

  3. Use the Add Data tool to add the ConduitDuctSearchInfo table into your Stored Display

  4. In the Table of Contents > List by Drawing Order, find your Conduit System (again, your name might vary).

  5. Right-click it, then choose Joins and Relates > Join.

  6. For, “Choose the field in this layer that the join will be based on,” choose GlobalID (or, ObjectID if GlobalID is not enabled).

  7. For, “Choose the table to join to this layer, or load the table from disk,” choose the ConduitDuctSearchInfo table. The order of this drop-down matches your Table of Contents, and thus, the ConduitDuctSearchInfo table is likely toward the bottom of tables since you just added it recently.

  8. For, “Choose the field in the table to base the join on,” choose ConduitGuid (or, ConduitObjectID if GlobalID is not enabled).

  9. Choose “Keep all records.”

  10. Click OK.

  11. Save your Stored Display.


Test the Configuration with the ArcFM Locator Tool

With the configuration done, perform a test search in the ArcFM Locator tool.

  • For the Locator Tool, use the Attribute Query.

  • Search the Conduit System feature class.

  • Mix and match attributes that are stored at the Conduit System level and at the Duct level. In the following image, Encasement Type is stored within the Conduit System, but Duct Material and Duct Size are stored at the Duct level.

    TIP: Total Length is calculated for the searched Conduit Systems by summing the Measured Length attribute values (this is the field assigned the MEASUREDLENGTH field model name).


QR Code is a registered trademark of DENSO WAVE INCORPORATED in Japan and other countries.

Was this helpful?