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