Initial feedback

I finally got around to look into :speckle: Automate and happy to share some initial feedback.

  1. Maybe a silly question, but instead of only pausing an automation, how to delete one?

  2. I think the featured functions really help to lower the entry bar to get started with Automate as well as building custom functions. However, some featured functions aren’t working or give some confusing results (I haven’t checked all of them). Some of the things encountered:

Log Window Safety Legislation Impact

task 2b96a1ed03-5be03dca71-0 has failed: “step-2b96a1ed03-5be03dca71-0” exited with code 1
[prepare] 2024/04/11 13:39:05 Entrypoint initialization

[2b96a1ed03-5be03dca71-0] Reporting run status with content: {‘automationId’: ‘73f4f13340’, ‘automationRevisionId’: ‘c3a9ce35cf’, ‘automationRunId’: ‘de7b10f4e751db533ddf’, ‘versionId’: ‘c9c8a7f01b’, ‘functionId’: ‘2b96a1ed03-5be03dca71-0’, ‘functionName’: ‘Window Safety Legislation Impact’, ‘functionLogo’: 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/

. . .
deleted jpeg data to prevent running into character limit of this post
. . .

Ad0XioyJJ1WoAGiqKioqOLqqKioqIoqioqKiKKosYuekYnrEUWKjGGYurvjCOqL//2Q==', ‘runStatus’: ‘RUNNING’, ‘statusMessage’: None, ‘contextView’: None, ‘elapsed’: 0.002548567019402981, ‘resultVersionIds’: [], ‘objectResults’: None}
[2b96a1ed03-5be03dca71-0] It took 7.10 seconds to receive the speckle version c9c8a7f01b
[2b96a1ed03-5be03dca71-0] Traceback (most recent call last):
[2b96a1ed03-5be03dca71-0] File “/usr/local/lib/python3.11/site-packages/speckle_automate/runner.py”, line 168, in run_function
[2b96a1ed03-5be03dca71-0] automate_function(automation_context, inputs) # type: ignore
[2b96a1ed03-5be03dca71-0] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[2b96a1ed03-5be03dca71-0] File “/home/speckle/main.py”, line 49, in automate_function
[2b96a1ed03-5be03dca71-0] objects_with_forbidden_speckle_type = [
[2b96a1ed03-5be03dca71-0] ^
[2b96a1ed03-5be03dca71-0] File “/home/speckle/main.py”, line 49, in
[2b96a1ed03-5be03dca71-0] objects_with_forbidden_speckle_type = [
[2b96a1ed03-5be03dca71-0] ^
[2b96a1ed03-5be03dca71-0] File “/home/speckle/flatten.py”, line 12, in flatten_base
[2b96a1ed03-5be03dca71-0] yield from flatten_base(element)
[2b96a1ed03-5be03dca71-0] File “/home/speckle/flatten.py”, line 12, in flatten_base
[2b96a1ed03-5be03dca71-0] yield from flatten_base(element)
[2b96a1ed03-5be03dca71-0] File “/home/speckle/flatten.py”, line 11, in flatten_base
[2b96a1ed03-5be03dca71-0] for element in base[“elements”]:
[2b96a1ed03-5be03dca71-0] TypeError: ‘NoneType’ object is not iterable
[2b96a1ed03-5be03dca71-0]
[2b96a1ed03-5be03dca71-0] Automation run FAILED after 7.10 seconds.
[2b96a1ed03-5be03dca71-0] Function error. Check the automation run logs for details.
[2b96a1ed03-5be03dca71-0] Reporting run status with content: {‘automationId’: ‘73f4f13340’, ‘automationRevisionId’: ‘c3a9ce35cf’, ‘automationRunId’: ‘de7b10f4e751db533ddf’, ‘versionId’: ‘c9c8a7f01b’, ‘functionId’: ‘2b96a1ed03-5be03dca71-0’, ‘functionName’: ‘Window Safety Legislation Impact’, ‘functionLogo’: 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/

. . .
deleted jpeg data to prevent running into character limit of this post
. . .

Ad0XioyJJ1WoAGiqKioqOLqqKioqIoqioqKiKKosYuekYnrEUWKjGGYurvjCOqL//2Q==', ‘runStatus’: ‘FAILED’, ‘statusMessage’: ‘Function error. Check the automation run logs for details.’, ‘contextView’: ‘/projects/73e45b58d8/models/7ed4f20c89@c9c8a7f01b’, ‘elapsed’: 7.115144368028268, ‘resultVersionIds’: [], ‘objectResults’: {‘version’: ‘1.0.0’, ‘values’: {‘objectResults’: [], ‘blobIds’: []}}}

container step-2b96a1ed03-5be03dca71-0 has failed : [{“key”:“StartedAt”,“value”:“2024-04-11T13:39:06.403Z”,“type”:3}]

  • Data Sanitiser Demo https://automate.speckle.dev/functions/69601ebea4. It doesn’t allow to provide all input required. I set it to pattern matching but then the pattern match input field stays greyed out as you can see in the screenshot below. I tried various input combinations, but the log throws an error.
Log Data Sanitiser Demo

task 69601ebea4-58c75ed14b-0 has failed: “step-69601ebea4-58c75ed14b-0” exited with code 1
[prepare] 2024/04/08 10:05:17 Entrypoint initialization

[69601ebea4-58c75ed14b-0] Traceback (most recent call last):
[69601ebea4-58c75ed14b-0] File “/home/speckle/main.py”, line 177, in
[69601ebea4-58c75ed14b-0] execute_automate_function(automate_function, FunctionInputs)
[69601ebea4-58c75ed14b-0] File “/usr/local/lib/python3.11/site-packages/speckle_automate/runner.py”, line 62, in execute_automate_function
[69601ebea4-58c75ed14b-0] function_inputs = args[2]
[69601ebea4-58c75ed14b-0] ~~~~^^^
[69601ebea4-58c75ed14b-0] IndexError: list index out of range

container step-69601ebea4-58c75ed14b-0 has failed : [{“key”:“StartedAt”,“value”:“2024-04-08T10:05:17.815Z”,“type”:3}]

Log Fire Rating Checker

[prepare] > 2024/04/11 13:46:43 Entrypoint initialization

[2df6bdab50-88efa86ae8-0] Required argument missing for command: ‘SpeckleAutomateDotnetExample’.
[2df6bdab50-88efa86ae8-0] Required argument missing for command: ‘SpeckleAutomateDotnetExample’.
[2df6bdab50-88efa86ae8-0]
[2df6bdab50-88efa86ae8-0] Description:
[2df6bdab50-88efa86ae8-0]
[2df6bdab50-88efa86ae8-0] Usage:
[2df6bdab50-88efa86ae8-0] SpeckleAutomateDotnetExample [command] [options]
[2df6bdab50-88efa86ae8-0]
[2df6bdab50-88efa86ae8-0] Arguments:
[2df6bdab50-88efa86ae8-0] The values of the project / model / version that triggered this function
[2df6bdab50-88efa86ae8-0] The values provided by the function user, matching the function input schema
[2df6bdab50-88efa86ae8-0] A token to talk to the Speckle server with
[2df6bdab50-88efa86ae8-0]
[2df6bdab50-88efa86ae8-0] Options:
[2df6bdab50-88efa86ae8-0] --version Show version information
[2df6bdab50-88efa86ae8-0] -?, -h, --help Show help and usage information
[2df6bdab50-88efa86ae8-0]
[2df6bdab50-88efa86ae8-0]
[2df6bdab50-88efa86ae8-0] Commands:
[2df6bdab50-88efa86ae8-0] generate-schema Generate JSON schema for the function inputs
[2df6bdab50-88efa86ae8-0]
[2df6bdab50-88efa86ae8-0]

%!s()

  1. Great to see how Automate integrates directly with FE2! Just as the sidebar menu on the right, it would be nice if the left sidebar menu could also be made wider to improve readability of automation information (function names, output messages, etc.). I can imagine this can also be useful in any of the other sub menu’s (Scene Explorer, Discussions, etc.).
1 Like

Thanks, @JdB; a lot of this is on me. A few of the demos are there to demonstrate potential for use/features. A lesson learned as we work through the beta applicants’ feedback (not all of it live here) is that we need to do more to make the existing functions also demonstrate value.

We focussed on Developer Experience over BIM/ Analyst Experience, but I promise we’ll rectify this as soon as possible.

Right Sidebar

We’re working on selection info a lot right now. If you have any further insights from a data analyst’s point of view, @Agi and @Andrew_Wallace would love to hear them.

Fail

We also acknowledge the need for two types of Fail code failures/infra failures, which differ from Fail by “design”.

Deleting

Functions and Automations will be able to be “archived” or something equivalent very soon. The latter is a straightforward process, but we want to test the experience for automation that produced results previously. Should the results stay if the Automation is gone? Hence a possible Archived state
Function deletion is more delicate in case Automations is already built relying on them—a similar Archive state maybe the ideal solution.

2 Likes