Copy link to clipboard
Copied
Hi I was wandering if it is possible to create a dockable script using Automation blocks that will generate a treeview of shapes in a shape layer, and then allow me to perform certain operations on the ones that I can manually select in the treeview...
Copy link to clipboard
Copied
Hi,
so far, Automation Blocks does not support dockable UIs - although this is an interesting feature request!
Also, the Automation Blocks UI supports dropdown lists, but no tree views at the moment.
What kinds of operations would you like to perform on the shapes?
What you could do with Automation Blocks is to loop over all shapes and then do something with only the ones
- whose name contains a given search word
- which are selected
for example.
Copy link to clipboard
Copied
Here is an example, where I change various tapering options of the selected shape layer:
https://twitter.com/mamoworld/status/1498630597689892871?s=20&t=D7ffTJXFn3t7TIIBrlo3QQ
The block script simply loops over all properties of the shape layer and then changes the properties only, if they have a particular name.
Copy link to clipboard
Copied
Essentially what I would like to do is have the ability reset position/anchor properties of the shapes that I select and see the nesting structure of the shapes. Additionally I would like to be able to reset the shapes origin to be centered as well that would involve adding an expression to the path property and then remove it leaving the post expression value... but these operations I would like to be able to perform only on the selected shapes/layers...
Copy link to clipboard
Copied
As for having a sociable script it's not that big a deal... I can export to jsx and add that later... I am more interested in the tree view... I guess a list but would also work... perhaps with some syntax to indicate nesting....
Copy link to clipboard
Copied
I see. For lists, all that Automation Blocks currently supports are dropdowns in a dialog. But even those don't support multiple selections. Treeviews or other more advanced UIs are not supported, yet, by Automation Blocks. I try to keep Automation Blocks easy to use, such that 90% of the automation jobs can be done much faster - but this also means that the remaining 10% cannot be done in Automation Blocks because it does not cover the full functionality of the scripting API.
Copy link to clipboard
Copied
Understood... Are you planning to expand functionality to cover the full API or you intend to keep it as is? I am only asking because I recently found blockly and I had a thought about creating an implementation of extendscript/scriptUI in it - so that coding a script would be much easier (I posted about it on the AE discord in the scripting channel)... and it was pointed out to me that there exists a product like what I envisioned - Automation Blocks - and it is wonderful to have something like this - I was only hoping to have some more of the advanced functionality in it... so as a result I just wanted to know whether you are planning to expand it or to maintain it at this level! In any event - thanks for creating this wonderful product - I thoroughly enjoy it!
Copy link to clipboard
Copied
What I plan is to add a block which allows to wrap custom jsx code and execute it as part of the Automation Blocks script. That way, you can still use the missing 10% of the API in Automation Blocks by writing your own jsx code. I feel that makes much more sense than having a block for each API feature.
What makes Automation Blocks so convenient is not just the blocks instead of code paradigm. If you just create one block for each API call, your block scripts would become huge very quickly. And then it would not be more fun than writing code - it would rather be cumbersome.
The true advantage of Automation Blocks are all these high level blocks which perform much more than a single line of scripting code. For some blocks this is obvious, like the Add Row/Colum to Spreadsheet block, which deals with all the details of checking if the file is already opened and parsed, parsing the format, writing the data and closing the file (and doing the latter, for example, only if this is the last writing operation). For others it is more subtle like the Create Bin block, which first appears like a basic API call, but is much more than that:
Having a combination of high level blocks which fit well together is the main contribution (and was my main challenge) for Automation Blocks in my perspective.
Copy link to clipboard
Copied
A custom code wrapper block would also have the advantage that other developers could offer their tools both as standalone tools and as code that can be executed inside of Automation Blocks (similar to how some of my tools offer scripting/kbar APIs)
Copy link to clipboard
Copied
This sounds excellent! thank you!