A web-based application for converting Revit models to IFC/JSON format, visualizing them in 3D, and exporting to Blender.
- File Upload: Drag-and-drop or browse for Revit files (.rvt, .rfa)
- Conversion: Transform Revit models to IFC format and JSON structure
- 3D Visualization: Interactive viewer for exploring the converted model
- Export Options: Download as JSON or export to Blender (.blend)
- User-Friendly Interface: Step-by-step workflow with progress indicators
- Modern web browser with WebGL support (Chrome, Firefox, Edge, Safari)
- For full functionality:
- Node.js (v14+) and npm for development and server components
- Server with Python and Revit API access for conversion operations
-
Clone the repository:
git clone https://github.com/yourusername/revit-to-ifc-converter.git cd revit-to-ifc-converter -
Install dependencies:
npm install -
Start the development server:
npm start -
Open your browser and navigate to:
http://localhost:3000
revit-to-ifc-converter/
├── index.html # Main application HTML
├── assets/
│ ├── css/
│ │ └── styles.css # Custom CSS styles
│ ├── js/
│ │ ├── main.js # Core application logic
│ │ ├── viewer.js # 3D viewer implementation
│ │ ├── converter.js # IFC conversion utilities
│ │ └── exporter.js # Export functionality
│ └── images/ # Application images and icons
├── lib/ # External libraries and dependencies
├── server/ # Server-side conversion components
│ ├── app.js # Express server setup
│ ├── routes/ # API endpoints
│ └── conversion/ # Conversion logic
├── examples/ # Example files and demos
├── package.json # Project dependencies
├── .gitignore # Git ignore configuration
└── README.md # Project documentation
- Open the application in your web browser.
- Upload a Revit model using drag-and-drop or the file browser.
- Click "Convert to IFC/JSON" to process the model.
- Once converted, explore the 3D model in the viewer.
- Download the model as JSON or export to Blender format.
- Custom Conversion Settings: Configure conversion parameters in the settings panel.
- Layer Management: Toggle visibility of different building elements.
- Measurement Tools: Measure distances and areas within the 3D model.
- Cross-Section View: Create section cuts to view the internal structure.
The conversion process involves several steps:
- Upload: The Revit file is uploaded to the server.
- Conversion: The server uses the Revit API to extract the model data.
- IFC Generation: The model is converted to IFC format.
- JSON Transformation: The IFC data is transformed into a JSON structure.
- Visualization: The JSON data is used to render the 3D model.
The application provides a JavaScript API for integration with other web applications:
// Initialize the converter
const converter = new RevitConverter({
container: '#viewer-container',
options: {
allowExport: true,
showGrid: true
}
});
// Load a model
converter.loadModel(fileObject);
// Export to JSON
converter.exportJSON();
// Export to Blender
converter.exportBlender();RESTful endpoints for model conversion:
POST /api/convert: Convert a Revit file to IFC/JSONGET /api/models/:id: Retrieve a converted modelGET /api/models: List all available models
npm run build
npm test
npm run dev
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
If you have any questions or need support, please open an issue on the GitHub repository or contact the maintainers directly.
