<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def export_node_di_data(node_id, params, plane):
 """ Creates a new BPMNShape XML element for given node parameters and adds it to 'plane' element. :param node_id: string representing ID of given flow node, :param params: dictionary with node parameters, :param plane: object of Element class, representing BPMN XML 'BPMNPlane' element (root for node DI data). """

        output_element_di = eTree.SubElement(plane, BpmnDiagramGraphExport.bpmndi_namespace + consts.Consts.bpmn_shape)
        output_element_di.set(consts.Consts.id, node_id + "_gui")

        output_element_di.set(consts.Consts.bpmn_element, node_id)
        bounds = eTree.SubElement(output_element_di, "omgdc:Bounds")
        bounds.set(consts.Consts.width, params[consts.Consts.width])
        bounds.set(consts.Consts.height, params[consts.Consts.height])
        bounds.set(consts.Consts.x, params[consts.Consts.x])
        bounds.set(consts.Consts.y, params[consts.Consts.y])
        if params[consts.Consts.type] == consts.Consts.subprocess:
            output_element_di.set(consts.Consts.is_expanded, params[consts.Consts.is_expanded])