Help making a Select by size app

Hi,

I have a hard time trying to find documentation of the API, I just want to select shapes that match the size of the shape I have selected.

How do I use EASEL.selection.selectObject(); ?

Are you looking to match shapes by their bounding box size or an exact match of the path data?

Bounding box its ok I guess :smiley:

I am running Deepnest to optmize the svg layout but I lose the “outline” “on-path” etc features, so an easy way would be to select all the similar ones and change that. But how :face_with_raised_eyebrow:

So looking into it a little bit… There is no api for the UI, you can only create an app.

But that being said and with what you’re trying to accomplish here is the bare-bones code that you would need to accomplish this task:

var properties = [{
    type: 'list',
    id: "Cut Type",
    value: "fill",
    options: ["fill", "outline"]
},
{
    type: 'list',
    id: "Outline Style",
    value: "on-path",
    options: ["on-path", "outside", "inside"]
},
];

var getSelectedVolumes = function(volumes, selectedVolumeIds) {
    var selectedVolumes = [];
    var volume;
    for (i = 0; i < volumes.length; i++) {
        volume = volumes[i];
        if (selectedVolumeIds.indexOf(volume.id) !== -1) {
            selectedVolumes.push(volume);
        }
    }
    return selectedVolumes;
};

var executor = function(args, success, failure) {
    var params = args.params;
    var volumes = [];
    var selectedVolumes = getSelectedVolumes(args.volumes, args.selectedVolumeIds);

    if (selectedVolumes.length > 1) {
        failure("Please select only 1 volume.");
        return false;
    }

    args.volumes.forEach(function(vol) {
        if (vol.shape.width == selectedVolumes[0].shape.width && vol.shape.height == selectedVolumes[0].shape.height) {
            vol.cut.type = params["Cut Type"];
            vol.cut.outlineStyle = params["Outline Style"];
            volumes.push(vol);
        }
    });
    success(volumes);
};
1 Like

Also, API documentation is found here: http://developer.easel.com/
(So long as you are using v2 of the API)

Yes I saw that but I didn’t thought it was the documentation because is so short. Thanks for the code, I’ll take a look. :smile: looks like a very nice alternative.

Yeah it’s taken a lot of trial and error to figure out how the api works. Hope the code works out for you.

I ended writing a small script that adds the function to the UI:

Oh boy, you’ve just opened up a new door for me! Think of the chaos I can cause now!

Much thanks!

1 Like

Unleash the kraken!

It is kinda a continuation of: Adding new functionality to Easel: Quick app search

:smiley: and they added a similar search to apps after few months

  1. Open the Settings app.
  2. Go into Home screen.
  3. Select the Home screen grid or the Apps screen grid.
  4. You can change the grid size. App icons will change in size as they adapt to different grid options.