Agent skill · data analytics · datadrivenconstruction
bim-validation-pipeline
Build automated BIM validation pipelines for IFC/Revit data. Continuous validation against IDS, LOD requirements, COBie, and project-specific BEP standards.
Why this skill is useful
Adds executable scripts for validating BIM models against specific project standards and requirements that are not commonly known.
What it needs
Requires ifcopenshell, python3 installed locally. About 6k tokens when loaded. Last updated 2026-02-14. 265 stars on the source repository.
What this skill does
BIM Validation Pipeline Overview Based on DDC methodology (Chapter 4.3), this skill provides automated BIM data validation pipelines. Validate BIM models against Information Delivery Specification (IDS), Level of Development (LOD) requirements, and project standards. Book Reference: "Автоматический ETL конвейер для валидации данных" / "Automated ETL Pipeline for Data Validation" "Автоматизированная валидация BIM-данных позволяет выявлять ошибки на ранних стадиях и обеспечивать соответствие требованиям BEP." — DDC Book, Chapter 4.3 Quick Start BIM Validation Framework Core Validator Class LOD Validation Level of Development Checker IDS Validation Information Delivery Specification Pipeline Automation Automated Validation Pipeline `python import os from datetime import datetime import json class BIMValidationPipeline: """Automated BIM validation pipeline""" def init(self, configpath=None): self.config = self.loadconfig(configpath) self.resultshistory = [] def loadconfig(self, path): if path and os.path.exists(path): with open(path) as f: return json.load(f) return { 'lodtarget': 'LOD300', 'requiredpsets': { 'IfcWall': ['PsetWallCommon'], 'IfcSlab': ['PsetSlabCommon'] }, 'namingpatterns': {}, 'failonerrors': True, 'warnthreshold': 50 } def run(self, ifcpath): """Run complete validation pipeline""" starttime = datetime.now() # Initialize validators validator = BIMValidator(ifcpath) lodvalidator = LODValidator( validator.model, self.config['lodtarget'] ) # Run validations bimreport = validator.validateall() lodreport = lodvalidator.validatemodel() # Compile results result = { 'file': ifcpath, 'timestamp': starttime.isoformat(), 'durationseconds': (datetime.now() - starttime).totalseconds(), 'bimvalidation': bimreport, 'lodvalidation': lodreport, 'passed': self.evaluatepass(bimreport, lodreport) } self.resultshistory.append(result) return result def evaluatepass(self, bimreport, lodreport): """Determine if validation passed""" if self.config['failonerrors'] and bimreport[ …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills datadrivenconstruction/bim-validation-pipeline