docs: def add_parameter_dd(self, dag_tag, node_dict):
          """
          helper function for adding parameters in condition
  
          Parameters
          ---------------
          dag_tag: etree SubElement
                   the DAG tag is contained in this subelement
          node_dict: dictionary
                     the decision diagram dictionary
  
          Return
          ---------------
          None
          """
          if isinstance(node_dict, defaultdict) or isinstance(node_dict, dict):
              node_tag = etree.SubElement(dag_tag, 'Node', attrib={'var': next(iter(node_dict.keys()))})
              edge_dict = next(iter(node_dict.values()))
              for edge in sorted(edge_dict.keys(), key=tuple):
                  edge_tag = etree.SubElement(node_tag, 'Edge', attrib={'val': edge})
                  value = edge_dict.get(edge)
                  if isinstance(value, six.string_types):
                      terminal_tag = etree.SubElement(edge_tag, 'Terminal')
                      terminal_tag.text = value
                  elif 'type' in value:
                      if 'val' in value:
                          etree.SubElement(edge_tag, 'SubDAG',
                                           attrib={'type': value['type'], 'var': value['var'], 'val': value['val']})
                      elif 'idref' in value:
                          etree.SubElement(edge_tag, 'SubDAG', attrib={'type': value['type'], 'idref': value['idref']})
                      else:
                          etree.SubElement(edge_tag, 'SubDAG', attrib={'type': value['type'], 'var': value['var']})
                  else:
                      self.add_parameter_dd(edge_tag, value)