Inspiration

We think that testing is a key part of continuos integration and we want to make it easier to write tests and ensure quality in AEC projects. We got inspiration from testing libraries for Front end development, like cypress.

What it does

Maple is a library designed to write simple code that can check different attributes of a Model in Speckle. Using Maple you can write test specs that check any parameter or quantity inside the project model. Maple can be integrated into Speckle Automate to run the quality check tests on a continuous integration and ensure project standards.

How we built it

We build the library using python, leveraging the speckle py sdk and speckle automate functions. We used the Chai chain capable behavioural syntax to provide assertions in a readable language.

    mp.it("checks window height is greater than 2600 mm")

    mp.get('category', 'Windows')\
        .where('speckle_type', '...Revit.RevitInstance')\
        .its('Height')\
        .should('be.greater', 2600) 

Challenges we ran into

At first it was challenging to flatten the speckle object tree and select the elements by their properties. It was challenging to allow many specs to be run in succession while keeping the syntax minimal

Accomplishments that we're proud of

We are proud of that we made a library that can run locally and also as an automate function, also that it can show clear the test results in the model viewer and highlight the failing elements.

What we learned

We learned about creating a speckle automate function and writing libraries for python

What's next for Effortless model quality check with Maple

To allow more assertion like "clash detection" and let the users of the library create their own assertions.

Built With

  • python
  • revit
  • speckle
  • speckle-automate
+ 9 more
Share this project:

Updates