Scale 1D in scripting

I also got into scale1D problems some time ago.

You might want to try something like @Helvetosaur did:

import rhinoscriptsyntax as rs
import scriptcontext as sc
import Rhino, System

def ScaleObjectsEx(object_ids, plane, scale, copy=False):
    """Scales one or more objects. Can be used to perform a uniform or non-
    uniform scale transformation. Scaling is based on supplied plane argument.
      object_ids: Identifiers of objects to scale
      plane: the plane for the transformation
      scale: three numbers that identify the X, Y, and Z axis scale factors to apply
      copy[opt] = copy the objects
      List of identifiers of the scaled objects if successful
      None on error
    scale = rs.coerce3dpoint(scale, True)
    if scale:
        xform = Rhino.Geometry.Transform.Scale(plane, scale.X, scale.Y, scale.Z)
        rc = []
        for object_id in object_ids:
            object_id = rs.coerceguid(object_id, True)
            id = sc.doc.Objects.Transform(object_id, xform, not copy)
            if id!=System.Guid.Empty: rc.append(id)
        if rc: sc.doc.Views.Redraw()
    return rc