Floor plan conversion API
The floor plan conversion API allows you to convert 2D floor plan images into interactive 3D models. If your prefer to not set up your own server you can order models via: https://spaces.archilogic.com/order
In both cases the Explore
license allows for 3 free conversions per month the Professional
license for 10. For further details take a look at the pricing info.
Conversion Request
io3d.floorPlan.convertToBasic3dModel()
allows you to send a request to our conversion API from a custom node server.
The result is not instant but can usually take up to one business day. This is why you need to provide a callback url from your node server to receive the callback when the conversion is finished.
io3d.floorPlan.convertToBasic3dModel({
// floor plan url
floorPlan: floorPlan,
// address ( optional ) - allows us to create a better light simulation
address: address,
// callback url to reveive that callback when the conversion status changes
callback: configs.url
}).then(conversionId => {
console.log('Floor plan conversion has been accepted. Conversion ID is: ' + conversionId)
}).catch(error => {
console.error('Error in calling 3d.io API.', error)
})
Callback Notification
On conversion status update the 3dio server will send a message to the callback url:
{
"jsonrpc": "2.0",
"method": "Floorplan.onConversionStatusUpdate",
"params": {
"conversionId": "910f5115-d1ef-4bbc-8f67-b062b4a54905"
}
}
Status Request
Once you receive the callback you can request a conversion status:
io3d.floorPlan
.getConversionStatus({ conversionId: "910f5115-d1ef-4bbc-8f67-b062b4a54905" })
.then(console.log)
In case of success you get the sceneId which you can send to your customer as a url or use it to further process the scene.
{
"status": "COMPLETED",
"sceneId": "44ec1f6f-e0d1-4837-9a2f-4c66424eee81",
"conversionId": "910f5115-d1ef-4bbc-8f67-b062b4a54905"
}
In case of an error the status message will look like this:
{
"status": "REJECTED",
"conversionId": "910f5115-d1ef-4bbc-8f67-b062b4a54905"
}
You can also request a conversion status before receiving a callback in which case the status message will look like:
{
"status": "IN_PROGRESS",
"conversionId": "910f5115-d1ef-4bbc-8f67-b062b4a54905"
}
Reference implementation
https://github.com/archilogic-com/3dio-floor-plan-app
This project showcases a reference implementation to let users order 3D models from floor plans through a custom UI and sending email notifications on conversion updates.
Setup used:
- node server running on heroku
- 3dio library to send order floor plan conversions and handle updates
- firebase to store user details and conversion ids
- sendgrid to let users order 3D models from floor plans through a custom UI and sending notifications on conversion updates.
A deployed app is running here:
https://io3d-floor-plan-app.herokuapp.com/