found, datavizRules = dataviz.TryGetFilterRules()
startConditionValue = createConditionalValue(jsonParam['startValue']['type'],jsonParam['startValue']['value'])
endConditionValue = createConditionalValue(jsonParam['endValue']['type'],jsonParam['endValue']['value'])
filterRule = None
if(found):
    for testedRule in datavizRules:
        ruleType = clr.GetClrType(type(testedRule.RuleCondition)).ToString()
        if(testedRule.DisplayName == jsonParam['displayName'] and ruleType == 'Spotfire.Dxp.Application.Visuals.TopBottomRuleCondition'):
            filterRule = testedRule
            break
    if(filterRule == None):
        filterRule = datavizRules.AddRangeRule(jsonParam['expression'], startConditionValue, endConditionValue, jsonParam['hideMatchedItems'])
        filterRule.ManualDisplayName = jsonParam['displayName']
    filterRule.Enabled = jsonParam['enabled']
    filterRule.EvaluatePerTrellis = jsonParam['evaluatePerTrellis']
    filterRule.Expression = jsonParam['expression']
    filterRule.RuleCondition.StartValue = startConditionValue
    filterRule.RuleCondition.EndValue = endConditionValue