Quality Assurance and Quality Control (QAQC) in Building Information Modeling (BIM) traditionally relies on exporting models to neutral formats like IFC for validation. However, this process can introduce data loss before checking even begins. By validating data directly from the host application (like Revit, Rhino, etc.), we can:
- Check data in its native format
- Catch issues before information is lost in translation
- Validate application-specific parameters and properties
- Create more precise and reliable checks
- Reduce the validation feedback loop
- Enable teams to fix issues while actively working in their design tools
This workshop teaches you how to create automated QAQC systems using Speckle Automate that work directly with native application data. You'll learn to build validations that can:
- Systematically verify model data against project standards
- Process native application properties and parameters
- Create targeted validation rules for specific platforms
- Generate clear feedback that references native elements
- Enable teams to maintain high-quality BIM deliverables at source
By automating these checks at the source, teams can:
- Validate data before any export-related loss occurs
- Work with complete property sets from the authoring tool
- Create platform-specific validation rules
- Maintain data fidelity throughout the checking process
- Fix issues directly in the native environment
- Reduce the complexity of the QAQC workflow
Starting from the basic template in main.py
, learn fundamental Speckle Automate concepts:
- Access native application data
- Navigate object hierarchies
- Interact with model elements
- Handle basic error cases
Build the foundation for systematic QAQC:
- Filter native application objects
- Process multiple elements efficiently
- Provide visual feedback in the Speckle viewer
- Handle platform-specific properties
- Configure validation scope
Create a robust checking system:
- Validate native parameters and properties
- Filter by application-specific categories
- Create reusable platform-aware rules
- Implement tiered issue reporting
- Organize results for easy review
Transform into a flexible, maintainable QAQC solution:
- Define standards in accessible spreadsheets
- Support complex native property validation
- Enable non-technical standards management
- Generate detailed validation reports
- Handle variations in property names
- Navigate to latest.speckle.systems/functions
- Click the "New Function" button in the top right
- Follow the wizard steps:
- Authorize GitHub (first time only)
- Choose the Python template
- Define your function:
- Add an optional avatar/logo
- Choose a descriptive name
- Add a description (supports Markdown)
- Identify supported source applications
- Add relevant tags
The wizard will:
- Create a GitHub repository with template code
- Set up GitHub Actions for deployment
- Configure necessary secrets (
SPECKLE_FUNCTION_ID
andSPECKLE_FUNCTION_TOKEN
) - Provide immediate access to start coding
Once your function is created, you can either:
- Start from the template code in
main.py
- Replace it with code from this workshop's exercises
- Work through the exercises incrementally to build your validation system
- Basic Python knowledge
- Poetry installed (
curl -sSL https://install.python-poetry.org | python3 -
) - A verified Speckle account
- Join our Community Forum
- Check exercise READMEs for detailed guidance
- Open GitHub issues for specific problems
Apache License 2.0 - See LICENSE file for details