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

Log in or sign up for Devpost to join the conversation.