converted_force_hierarchy_beyond_distance,
                        measurement_units)
                else:
                    report_value_with_units = "{0} {1}".format(
                        force_hierarchy_beyond_distance,
                        distance_attribute_units)
                arcpy.AddIDMessage("WARNING", 30109)
                arcpy.AddIDMessage("WARNING", 30127, report_value_with_units)
        else:
            arcpy.AddIDMessage("ERROR", 30119,
                               "Force Hierarchy beyond Distance")
            raise nau.InputError()

    #Throttling Check 5: Check if the number of barrier features (point, line and polygon) are within maximum allowed
    load_point_barriers, load_line_barriers, load_polygon_barriers = nau.check_barriers(
        point_barriers_obj, line_barriers_obj, polygon_barriers_obj,
        max_features_point_barriers, max_features_line_barriers,
        max_features_polygon_barriers, desc_nds)
    ##Perform the closest facility analysis as all throttling conditions are met.
    #Get the restrictions and accumulate attributes that are valid for the network dataset
    if restrictions:
        restrictions_to_use = nau.get_valid_attributes(desc_nds_attributes,
                                                       restrictions)
    else:
        restrictions_to_use = []

    #Determine the accumulation attributes to use
    #Get only the attributes that are valid for the current network dataset.
    if accumulate_attributes:
        accumulate_attributes = nau.get_valid_attributes(
            desc_nds_attributes, accumulate_attributes, "Cost", 30128)
        #remove time attribute and distance attribute from the list of accumulate attributes as we will manage
                convertedForceHierarchyDistanceWithUnits = "%s %s" % (convertedForceHierarchyDistance, breakUnits)
                arcpy.AddIDMessage("WARNING", 30120,endBreakValue, convertedForceHierarchyDistanceWithUnits)
        
            else:
                arcpy.AddIDMessage("ERROR", 30119, parameterInfo[parameterIndex['forceHierarchyDistance']].displayName)
                raise nau.InputError()

    #Check if generating detailed polygons when using hierarchy
    if useHierarchy and detailedPolygons:
        arcpy.AddIDMessage("ERROR", 30097, parameterInfo[parameterIndex['detailedPolygons']].displayName)
        raise nau.InputError()
    
    #Thortling Check 4: Check if the number of barrier features (point, line and polygon)
    #are within maximum allowed
    loadPointBarriers, loadLineBarriers, loadPolygonBarriers = nau.check_barriers(point_barriers_obj, line_barriers_obj, polygon_barriers_obj,
                                                                                  maxPointBarrierCount, maxEdgeCountLineBarriers, maxEdgeCountPolygonBarriers, 
                                                                                  descNDS)    
    
    ##Perform the Service Area analysis as all throtlling conditions are met.
    #We don't want to use extra break when using hierarchy as the solver does this for us.
    #trimming is not supported when using hierarchy
    #detailed Polygons are not supported when using hierarchy
    if useHierarchy:
        useExtraBreak = False
        trimPolygons = "NO_TRIM_POLYS"
        polygonType = "SIMPLE_POLYS"
        #Add warning messages that trim distance and detailed polygons will not be generated
        if isTrimDistanceZero == False:
            arcpy.AddIDMessage("WARNING", 30097, parameterInfo[parameterIndex['trimDistance']].displayName)
    else:    
        #If a trim distance is specified, we use trimming instead of extra break
                else:
                    report_value_with_units = "{0} {1}".format(
                        force_hierarchy_beyond_distance, distance_attribute_units
                    )
                arcpy.AddIDMessage("WARNING", 30109)
                arcpy.AddIDMessage("WARNING", 30127, report_value_with_units)
        else:
            arcpy.AddIDMessage("ERROR", 30119, "Force Hierarchy beyond Distance")
            raise nau.InputError()

    # Throttling Check 5: Check if the number of barrier features (point, line and polygon) are within maximum allowed
    load_point_barriers, load_line_barriers, load_polygon_barriers = nau.check_barriers(
        point_barriers_obj,
        line_barriers_obj,
        polygon_barriers_obj,
        max_features_point_barriers,
        max_features_line_barriers,
        max_features_polygon_barriers,
        desc_nds,
    )
    ##Perform the closest facility analysis as all throttling conditions are met.
    # Get the restrictions and accumulate attributes that are valid for the network dataset
    if restrictions:
        restrictions_to_use = nau.get_valid_attributes(desc_nds_attributes, restrictions)
    else:
        restrictions_to_use = []

    # Determine the accumulation attributes to use
    # Get only the attributes that are valid for the current network dataset.
    if accumulate_attributes:
        accumulate_attributes = nau.get_valid_attributes(desc_nds_attributes, accumulate_attributes, "Cost", 30128)
                arcpy.AddIDMessage(
                    "ERROR", 30119, parameterInfo[
                        parameterIndex['forceHierarchyDistance']].displayName)
                raise nau.InputError()

    #Check if generating detailed polygons when using hierarchy
    if useHierarchy and detailedPolygons:
        arcpy.AddIDMessage(
            "ERROR", 30097,
            parameterInfo[parameterIndex['detailedPolygons']].displayName)
        raise nau.InputError()

    #Thortling Check 4: Check if the number of barrier features (point, line and polygon)
    #are within maximum allowed
    loadPointBarriers, loadLineBarriers, loadPolygonBarriers = nau.check_barriers(
        point_barriers_obj, line_barriers_obj, polygon_barriers_obj,
        maxPointBarrierCount, maxEdgeCountLineBarriers,
        maxEdgeCountPolygonBarriers, descNDS)

    ##Perform the Service Area analysis as all throtlling conditions are met.
    #We don't want to use extra break when using hierarchy as the solver does this for us.
    #trimming is not supported when using hierarchy
    #detailed Polygons are not supported when using hierarchy
    if useHierarchy:
        useExtraBreak = False
        trimPolygons = "NO_TRIM_POLYS"
        polygonType = "SIMPLE_POLYS"
        #Add warning messages that trim distance and detailed polygons will not be generated
        if isTrimDistanceZero == False:
            arcpy.AddIDMessage(
                "WARNING", 30097,
                parameterInfo[parameterIndex['trimDistance']].displayName)