Python in Dynamo . Create parameters for families

Hi all!
I’m a beginner in Python. Can somebody help me, please?
I have a list of families and a list of parameters, the scope is to create for each family a group of parameters. For the family at index [0] to create parameters at index [0] from the parameter list.
I suppose that the Iterative Loop Statement starting at row 32 need some adjustments.

# Enable Python support and load DesignScript library
import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
clr.AddReference("RevitServices")
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument

clr.AddReference("RevitAPI")
from Autodesk.Revit.DB import *

par_name = IN[0]
exec("par_type = ParameterType.%s" % IN[1])
exec("par_grp = BuiltInParameterGroup.%s" % IN[2])
inst_or_typ = IN[3]
families = UnwrapElement(IN[4])

# class for overwriting loaded families in the project
class FamOpt1(IFamilyLoadOptions):
    def __init__(self): pass
    def OnFamilyFound(self,familyInUse, overwriteParameterValues): return True
    def OnSharedFamilyFound(self,familyInUse, source, overwriteParameterValues): return True

trans1 = TransactionManager.Instance
trans1.ForceCloseTransaction() #just to make sure everything is closed down
# Dynamo's transaction handling is pretty poor for
# multiple documents, so we'll need to force close
# every single transaction we open
result = []

for f1 in families:
    famdoc = doc.EditFamily(f1)
    try: # this might fail if the parameter exists or for some other reason
        trans1.EnsureInTransaction(famdoc)
	for j in par_name:
        	famdoc.FamilyManager.AddParameter(j, par_grp, par_type, inst_or_typ)
	trans1.ForceCloseTransaction()
	famdoc.LoadFamily(doc, FamOpt1())
	result.append(True)
        	
    except: #you might want to import traceback for a more detailed error report
        result.append(False)
        trans1.ForceCloseTransaction()      
    famdoc.Close(False)

OUT = result

Thanks for your answer jbo,

I did these adjustments and python code didn’t give any errors but also neither no parameter creation.

# Enable Python support and load DesignScript library
import clr

clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *

clr.AddReference("RevitServices")
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager

doc = DocumentManager.Instance.CurrentDBDocument

clr.AddReference("RevitAPI")
from Autodesk.Revit.DB import *

par_name = IN[0]
exec("par_type = ParameterType.%s" % IN[1])
exec("par_grp = BuiltInParameterGroup.%s" % IN[2])
inst_or_typ = IN[3]
families = UnwrapElement(IN[4])


# class for overwriting loaded families in the project
class FamOpt1(IFamilyLoadOptions):
    def __init__(self): pass

    def OnFamilyFound(self, familyInUse, overwriteParameterValues): return True

    def OnSharedFamilyFound(self, familyInUse, source, overwriteParameterValues): return True


trans1 = TransactionManager.Instance
trans1.ForceCloseTransaction()  # just to make sure everything is closed down
# Dynamo's transaction handling is pretty poor for
# multiple documents, so we'll need to force close
# every single transaction we open
result = []

for c, f1 in enumerate(families):
    famdoc = doc.EditFamily(f1)
    try:  # this might fail if the parameter exists or for some other reason
        trans1.EnsureInTransaction(famdoc)
	for parameter in par_name[c]:
	    	famdoc.FamilyManager.AddParameter(parameter, par_gp, par_type, inst_or_typ)
		trans1.ForceCloseTransaction()
		famdoc.LoadFamily(doc, FamOpt1())
		result.append(True)

    except:  # you might want to import traceback for a more detailed error report
		result.append(False)
		trans1.ForceCloseTransaction()
		famdoc.Close(False)

OUT = result