Shields Description

Summary

The Network Dataset Shields Description object provides additional shields information which is used to enhance the direction information when the streets have multiple street names.

Discussion

The shieldTypeX and shieldDescriptionX properties are dynamic. This means that the total number of properties supported by the shields description object depends on the descriptionCount property. For example, if the value of the descriptionCount property is 2, then the shields description object will support shieldType0, shieldDescription0, shieldType1, and shieldDescription1 properties.

Properties

PropertyExplanationData Type
shieldTypeX
(Read Only)

The shield type for a particular shield (indicated by X)

Integer
shieldDescriptionX
(Read Only)

The shield description for a particular shield (indicated by X)

Integer

Code Sample

Shields Description object example

Display the shields description information for each network source.

# Name: NDSShieldsDescriptionProperties_ex01.py
# Description: Print additional information about directions shields for each
#              edge source

import arcpy
import sys

# Set the workspace
arcpy.env.workspace = "C:/Data/SanFrancisco.gdb/Transportation"

# Create Describe object for the network dataset
desc = arcpy.Describe("Streets_ND")

#If the directions are not set for the network dataset, exit 
if not desc.supportsDirections:
    print "No direction information"
    sys.exit() 

print "Source Direction Information ----" 

# Get all the edge sources 
sources = desc.edgeSources 

if not sources:
    print "No edge sources"
    sys.exit() 
#Loop through all the edge sources
for source in sources:  
    print "--------------------" 
    print "Name: " , source.name 
    print "Source ID: " , source.sourceID  
    #Get the direction information specific to edge source    
    sDir = source.sourceDirections
    #Get the shields for each source
    if hasattr(sDir,"shields"): 
        shields = sDir.shields 
        print "----Shields description"
        print "Description count: " , shields.descriptionCount
        sDesc = shields.description 
        if sDesc: 
            for i in range(0, shields.descriptionCount): 
                shieldType = getattr(sDesc,"shieldType" + str(i)) 
                sheildDesc = getattr(sDesc, "shieldDescription" + str(i)) 
                print "Type: " , shieldType 
                print "Description: " , sheildDesc 
    else: 
        print "(No shield information)"  

10/28/2011