Recipes¶
Schema¶
OpenAPI Docs¶
You can find the Open API Docs formatted by redoc here.
OpenAPI Definition¶
You can find the OpenAPI JSON definition here.
JSON Schema Definition¶
You can find the JSON Schema definition here.
Examples¶
Minimal¶
The minimal configuration for a recipe can be found below. The keys indicated here are the ones you absolutely have to fill in for this recipe to be validated by Queenbee.
metadata:
type: MetaData
name: minimal-recipe
tag: 0.2.1
dependencies:
- type: Dependency
kind: plugin
name: honeybee-radiance
tag: 1.2.3
source: https://example.com/test-repo
flow:
- name: main
type: DAG
tasks:
- name: minimal-task
type: DAGTask
template: honeybee-radiance/10000-lux-sky
Daylight-Factor Recipe¶
This is an example recipe called daylight-factor
. It is used to run a daylight factor simulation and takes
a model
and an input-grid
as artifact (file) inputs. A user can also optionally set the sensor-grid-count
and radiance-parameters
parameters.
Note
The dependencies source is set to a fake domain https://example.com/test-repo
. In a real scenario this url
would refer to an existing Queenbee package repository.
type: Recipe
annotations: {}
metadata:
type: MetaData
annotations: {}
name: daylight-factor
tag: 0.0.1
app_version: null
keywords:
- ladybug-tools
- radiance
maintainers:
- type: Maintainer
annotations: {}
name: mostapha
email: mostapha@ladybug.tools
home: null
sources: null
icon: https://www.ladybug.tools/assets/img/logo.png
deprecated: null
description: An awesome workflow to run daylight factor!
license: null
dependencies:
- type: Dependency
annotations: {}
kind: plugin
name: honeybee-radiance
hash: 69b43aedf58787f103d597b39f5e9a44c0a6ff3017208ad8f3a973a2143d7d03
alias: null
tag: 1.2.3
source: https://example.com/test-repo
flow:
- type: DAG
annotations: {}
inputs:
- type: DAGFileInput
annotations: {}
name: input-grid
description: A grid file
default: null
required: true
spec: null
alias: []
extensions: null
- type: DAGFileInput
annotations: {}
name: model_hbjson
description: Honeybee model as a hbjson file.
default: null
required: true
spec: null
alias:
- type: DAGGenericInputAlias
annotations: {}
name: model
description: 'A path to a HBJSON file or a HB model object built with Python
or dotnet
libraries.
'
default: null
required: true
spec: null
platform:
- grasshopper
handler:
- type: IOAliasHandler
annotations: {}
language: python
module: honeybee_rhino.handlers
function: hb_model_to_hbjson
- type: IOAliasHandler
annotations: {}
language: csharp
module: HBRhino.Model
function: HBModelToJSON
- type: DAGGenericInputAlias
annotations: {}
name: model
description: null
default: null
required: true
spec: null
platform:
- rhino
handler:
- type: IOAliasHandler
annotations: {}
language: dotnet
module: HBRhino.Model
function: ExportRhinoModel
extensions: null
- type: DAGStringInput
annotations: {}
name: radiance-parameters
description: The radiance parameters for ray tracing
default: -I -ab 2 -h
required: false
spec: null
alias: []
- type: DAGIntegerInput
annotations: {}
name: sensor-grid-count
description: The maximum number of grid points per parallel execution
default: null
required: true
spec: null
alias: []
outputs:
- type: DAGIntegerOutput
annotations: {}
name: average
description: null
from:
type: TaskReference
annotations: {}
name: post-process
variable: daylight-factor-average
alias: []
- type: DAGFolderOutput
annotations: {}
name: data
description: null
from:
type: TaskReference
annotations: {}
name: post-process
variable: post-process-folder
alias: []
name: main
fail_fast: true
tasks:
- type: DAGTask
annotations: {}
name: create-octree
template: honeybee-radiance/create-octree
needs:
- generate-sky
arguments:
- type: TaskPathArgument
annotations: {}
name: model
from:
type: InputFolderReference
annotations: {}
variable: model_hbjson
sub_path: null
- type: TaskPathArgument
annotations: {}
name: sky
from:
type: TaskFileReference
annotations: {}
name: generate-sky
variable: sky
sub_path: null
loop: null
sub_folder: null
returns:
- type: TaskPathReturn
annotations: {}
name: scene-file
description: null
path: output/octree/scene.oct
- type: DAGTask
annotations: {}
name: daylight-factor-simulation
template: honeybee-radiance/ray-tracing
needs:
- split-grid
- create-octree
arguments:
- type: TaskArgument
annotations: {}
name: radiance-parameters
from:
type: InputReference
annotations: {}
variable: radiance-parameters
- type: TaskPathArgument
annotations: {}
name: grid
from:
type: TaskFolderReference
annotations: {}
name: split-grid
variable: output-grids-folder
sub_path: '{{item.name}}'
- type: TaskPathArgument
annotations: {}
name: scene-file
from:
type: TaskFileReference
annotations: {}
name: create-octree
variable: scene-file
sub_path: null
loop:
type: DAGTaskLoop
annotations: {}
from:
type: TaskReference
annotations: {}
name: split-grid
variable: grid-list
sub_folder: output/raw-results
returns:
- type: TaskPathReturn
annotations: {}
name: result-file
description: null
path: '{{item.name}}.res'
- type: DAGTask
annotations: {}
name: generate-sky
template: honeybee-radiance/10000-lux-sky
needs: null
arguments: []
loop: null
sub_folder: null
returns:
- type: TaskPathReturn
annotations: {}
name: sky
description: null
path: asset/sky/10000_lux.sky
- type: DAGTask
annotations: {}
name: post-process
template: honeybee-radiance/post-process
needs:
- daylight-factor-simulation
arguments:
- type: TaskPathArgument
annotations: {}
name: raw-results-folder
from:
type: ValueFolderReference
annotations: {}
path: output/raw-results
sub_path: null
loop: null
sub_folder: null
returns:
- type: TaskPathReturn
annotations: {}
name: post-process-folder
description: null
path: result
- type: TaskReturn
annotations: {}
name: daylight-factor-average
description: null
- type: DAGTask
annotations: {}
name: split-grid
template: honeybee-radiance/split-grid
needs: null
arguments:
- type: TaskArgument
annotations: {}
name: grid-count
from:
type: InputReference
annotations: {}
variable: sensor-grid-count
- type: TaskPathArgument
annotations: {}
name: grid
from:
type: InputFileReference
annotations: {}
variable: input-grid
sub_path: null
loop: null
sub_folder: null
returns:
- type: TaskReturn
annotations: {}
name: grid-list
description: null
- type: TaskPathReturn
annotations: {}
name: output-grids-folder
description: null
path: output/temp