Implementing Compliance Calculations




I noticed @chris’s post about compliance to Australian regulation and went on a deep dive of the few compliance/regulation related posts on the forum. Seems people are keen to use ladybug tools to assist with compliance (not necessarily as a government approved tool but as a useful exploratory tool).

As such I was wondering if there was any strategy in place to encourage people to help in this endeavour for the core libraries? I recognise that most folk are building scripts in grasshopper to test for compliance but */!\ strong opinion warning /!* this is not scalable, error prone and difficult to share/reuse. Therefore it would seem judicious to add a regulation or compliance section to the appropriate libraries (eg: honeybee.radiance.compliance.leed would contain all daylight related compliance calcs/methods).

What do we think is the best way to organise this? Here is some food for thought:

  • An entire repository dedicated to compliance

    • Easier to manage
    • More difficult to integrate with rest of ladybug tools libraries/objects
  • Compliance classes in each repository where relevant

    • Honeybee holds daylight/energy calcs
    • Ladybug comfort calcs
    • Butterfly (?)
    • Will be more difficult to coordinate overall
  • How do we encourage people to contribute?

    • Using core libraries rather than Hydra scripts is a barrier to entry but vastly increases the opportunity for reusability/version control etc…
    • The core libraries are set up for testing/deployment but might scare some non-pythonistas
    • Writing regulatory scripts could however be an excellent way to onboard new contributors as they will have to use their preferred library, write a new feature (rather than debug code) and can apply it quickly to their code once their work is tested and deployed.

Going to rope in some folk who I know will have some thoughts on this issue but feel free to bring in some more into the conversation!!

@mostapha, @ChristianKongsgaard, @SaeranVasanthakumar, @TheodorosGalanos, @MichalDengusiak


The feedback that we get form the users during the travels and workshops this year is that they want to use it for compliance and then want it to be government approved in possible. There are other tools that they need to use currently for compliance and the process is not necessarily pleasing!

We have been discussing how to do this for some time and the first step is to add a new category: #code-compliance

I agree that it should eventually be it’s own repository and agree that having them as scripts is more manageable and less prone to errors but:

  • The compliance library will be built on top of other libraries and in any case it will be dependent on them. We can use version control and testing to ensure the quality of the code.

  • I don’t think jumping to scripting in Python is a good move. To get this right we need the experts in our community who know ups and downs the process. To get maximum collaboration at this point I think we should start from what they know how to use currently: Grasshopper scripts and Hydra. Once we have a stable sample file we can convert them to scripts. I propose a process like this:

    • a. Develop Grasshopper scripts that meets the needs of code compliance.
      b. Develop modules/methods to duplicate the scripts generated in step a.
      c. Replace the scripts in step a with the development in step b.
      d. Ask more people to test it!

I’m adding @OlivierDambron to this discussion.


I just wanted to second the idea that we should eventually have separate repositories for code compliance but that should not hinder people from investing time in Grasshopper definitions right now. It will take time for us to get enough overlap in knowledge between software developers an code experts such that we can build useful scripts to automate certain types of code compliance:

Thinking about energy modeling in particular, I know that we are planning to have objects that parse the OpenStudio Standards Gem, which contains default building energy modeling properties for a large number of standards. This will make it possible to quickly make baseline buildings according to ASHRAE and IECC codes very quickly. Invariably, there are details about these standards that we are going to miss the first time that we parse the OpenStudio Standards Gem. That’s why it’s important to still develop Grasshopper scripts now so that we know how we should be structuring repositories when we create them.