PIComposer API
A comprehensive Dart workspace for building information modeling (BIM) and structured data management APIs. This workspace provides interfaces and implementations for working with IFC, STEP, and other industry-standard data formats.
📦 Workspace Packages
| Package | Description | Status |
|---|---|---|
base_types |
Core data types and utilities | ✅ Active |
schema_interface |
Schema definition contracts and interfaces | ✅ Active |
schema_ffi |
FFI implementations for schema operations | ✅ Active |
store_interface |
Data storage and persistence interfaces | ✅ Active |
store_ffi |
FFI implementations for data storage | ✅ Active |
picomposer_procedures |
Procedural operations and templates | ✅ Active |
🚀 Quick Start
Prerequisites
- Dart SDK >=3.6.0 <4.0.0
Installation
# Clone the repository
git clone <repository-url>
cd picomposer_api
# Get dependencies for all packages
dart pub get
Development
# Run tests across all packages
dart test
# Generate documentation
dart doc
🏗️ Architecture Overview
PIComposer API Workspace
├── Base Types (Core utilities)
├── Schema Interface (Contracts)
│ └── Schema FFI (Implementation)
└── Store Interface (Data layer contracts)
└── Store FFI (Data layer implementation)
📋 Supported Standards
- IFC 2x3/IFC4: Building Information Modeling
- STEP (ISO 10303): Various application protocols
- AP203: Mechanical design
- AP210: Electronic packaging
- AP214: Automotive design
- AP238: Manufacturing (STEP-NC)
- AP242: Managed 3D engineering
- CIS/2: Structural steel framework
🔧 Key Features
- Multi-format Support: IFC, STEP, JSON interoperability
- Visual Programming: Template-based procedural operations
- Spatial Modeling: BIM-specific spatial hierarchy management
- Data Persistence: Database-backed storage with backup/restore
- Cross-platform: Dart-based for multi-platform deployment
📚 Documentation
- Store Interface Documentation - Comprehensive data management interfaces
- API Documentation - Generated API documentation
🤝 Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests:
dart test - Submit a pull request
📄 License
See individual package directories for licensing information.