# error no attribute 'setParameter' when using segment editor in python interactor

**URL:** <https://discourse.slicer.org/t/error-no-attribute-setparameter-when-using-segment-editor-in-python-interactor/27177>\
**Category:** Support\
**Tags:** segmentation, python\
**Created:** [January 10, 2023, 8:52pm UTC](https://discourse.slicer.org/t/error-no-attribute-setparameter-when-using-segment-editor-in-python-interactor/27177 "2023-01-10T20:52:08Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![ibowennn](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/ibowennn/32/17960_2.png) [@ibowennn](https://discourse.slicer.org/u/ibowennn)\
**Post date:** [January 10, 2023, 8:52pm UTC](https://discourse.slicer.org/t/error-no-attribute-setparameter-when-using-segment-editor-in-python-interactor/27177/1 "2023-01-10T20:52:08Z")

</div>

Hi, I used the segment editor in python interactor for a list of segmentations. However, the codes work for a while and raise Error: ‘NoneType’ object has no attribute ‘setParameter.’  
Below is my code:

```auto
dir_roi = '/my/segment/folder'
names = os.listdir(dir_roi)
for name in names:
    path_roi = os.path.join(dir_roi, name)
    path_img = path_roi.replace('roi', 'video_nii')
    path_out = path_roi.replace('roi', 'roi_smooth')
    volumn = slicer.util.loadVolume(path_img)
    seg = slicer.util.loadSegmentation(path_roi)

    seg.CreateClosedSurfaceRepresentation() 
    slicer.util.mainWindow().moduleSelector().selectModule('SegmentEditor')
    segmentEditorWidget = (
        slicer.modules.segmenteditor.widgetRepresentation().self().editor
    )  

    segmentEditorWidget.setActiveEffectByName("Smoothing")  
    effect = segmentEditorWidget.activeEffect()
    effect.setParameter("SmoothingMethod", "MORPHOLOGICAL_CLOSING")
    effect.setParameter("KernelSizeMm", 12)
    effect.self().onApply()

    effect = segmentEditorWidget.activeEffect()
    effect.setParameter("SmoothingMethod", "MORPHOLOGICAL_OPENING")
    effect.setParameter("KernelSizeMm", 12)
    effect.self().onApply()

    effect = segmentEditorWidget.activeEffect()
    effect.setParameter("SmoothingMethod", "JOINT_TAUBIN")
    effect.setParameter("JointTaubinSmoothingFactor", 1)
    effect.self().onApply()

    masterVolumeNode = slicer.mrmlScene.GetFirstNodeByClass(
        'vtkMRMLScalarVolumeNode'
    )  
    labelmapVolumeNode = slicer.mrmlScene.AddNewNodeByClass('vtkMRMLLabelMapVolumeNode')
    slicer.modules.segmentations.logic().ExportVisibleSegmentsToLabelmapNode(
        seg, labelmapVolumeNode, masterVolumeNode
    )
    slicer.util.saveNode(labelmapVolumeNode, path_out)
    slicer.mrmlScene.Clear(0)

```

Sometimes “setParameter” works, but most of the time, it fails.  
I would appreciate any help. Thanks!

---

<div class="post-metadata">

**Author:** ![cpinter](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/cpinter/32/7995_2.png) [@cpinter](https://discourse.slicer.org/u/cpinter)\
**Post date:** [January 11, 2023, 1:10pm UTC](https://discourse.slicer.org/t/error-no-attribute-setparameter-when-using-segment-editor-in-python-interactor/27177/2 "2023-01-11T13:10:16Z")

</div>

This is what you need to do for example:  
`smoothingEffect.scriptedEffect.setParameter('SmoothingMethod', 'MORPHOLOGICAL_OPENING')`
