I am now the proud owner of an Android tablet and happily thinking about things to do with it. The first idea that comes to mind is working through something similar to Adam's Revit model viewer for iOS that Jim Quanci showed at the AEC DevCamp.
Before getting into that, though, I should address some of the issues brought up by Senthil in his comment on the discussion on service-oriented architecture, asking for information about Revit cloud development, e.g. a step by step process for cloud beginners. Senthil also mentions the cloud computing Revit demo on the ADN cloud computing page, its add-in manifest, assembly DLL file location, how to deploy it, how to interact with Revit through web services, and developing a service application in general.
Here are a couple of starting points for addressing these issues:
- DevCamp cloud and mobile track
- The Apollonian gasket cloud service
- The AEC cloud demo
- Revit model viewer
DevCamp Cloud and Mobile Track
All of these topics are addressed in depth by Gopinath Taget's cloud and mobile presentation, both at Autodesk University last year and most recently at the AEC and Manufacturing DevCamps earlier this month, each of which boasted a separate track on cloud and mobile technologies. Gopi's four sessions at the AEC DevCamp covered:
- An Overview of Cloud Computing: Learn what cloud computing is all about, what kind of applications can be written for and run on the cloud, when it is suitable to use the cloud, when it is not. Learn about the popular commercial cloud service providers including Amazon Web Services (AWS), Microsoft Azure and Google App Engine and how to use them. Learn the similarities and differences between the cloud services they provide, the advantages of using one over the others and the coverage and sophistication of the APIs provided to use their cloud services. The class includes demonstrations and code review of sample cloud applications for Autodesk Revit, AutoCAD Civil 3D, AutoCAD and AutoCAD WS.
- State of the Art of Autodesk Cloud and Mobile Apps: Learn about current Autodesk cloud services, their capabilities and APIs. We will talk about and demonstrate AutoCAD WS, Autodesk 360, and Autodesk Photofly web services in depth. Demonstrations and instruction will be based on Microsoft Windows, Apple's iOS and Google's Android. The class will end on an exploration where these web services are going and - at a high level - where Autodesks web services are headed.
- Introduction to Mobile app development – Apple's iOS: Learn about programming on iOS devices. Learn where you need to go and what you need to do to start programming on iOS. Learn about the SDKs important for graphics intensive software development including WebGL and OpenGL ES and how to get started working with them. This class includes a detailed "start to finish" look at development of a simple iOS mobile App with a basic user interface.
- Introduction to Mobile app development – Google's Android: Learn about programming on Android devices. Learn where you need to go and what you need to do to start programming on Android. Learn about the SDKs that would be important to a CAD developer like WebGL and OpenGL ES and how to get started on them. This class will also demonstrate creating a simple Android mobile App with simple user interface from start to finish.
Gopi's presentations and samples are currently publicly available from Buzzsaw together with all the rest of the AEC and Manufacturing DevCamp 2012 material.
The Apollonian Gasket Cloud Service
Probably the greatest and deepest exploration of using cloud services over a wide variety of technologies and devices was created by Kean Walmsley. He explores making use of just about all imaginable combinations of cloud service providers and clients. The Apollonian gasket cloud & mobile series summary boasts the following impressive table of contents:
Creating the core desktop functionality
- Circle packing in AutoCAD: creating an Apollonian gasket using F# – Part 1
- Circle packing in AutoCAD: creating an Apollonian gasket using F# – Part 2
- Sphere packing in AutoCAD: creating an Apollonian packing using F# – Part 1
- Sphere packing in AutoCAD: creating an Apollonian packing using F# – Part 2
Moving it to the cloud
- Moving to the Cloud
- Exposing a RESTful web service for use inside AutoCAD using the ASP.NET Web API – Part 1
- Exposing a RESTful web service for use inside AutoCAD using the ASP.NET Web API – Part 2
- Architecting for the Cloud
- Consuming data from a RESTful web-service inside AutoCAD using .NET
- Hosting our ASP.NET Web API project on Windows Azure – Part 1
- Hosting our ASP.NET Web API project on Windows Azure – Part 2
- Using Windows Azure Caching with our ASP.NET Web API project
Using the web-service from various clients
This really is a huge wealth of material and should provide ample words of wisdom for any brave seeker venturing out on these now no longer unmapped paths.
AEC Cloud Demo
Returning to my own much more modest efforts in this realm so far based on the Revit API, Senthil mentions the AEC cloud demo on the ADN cloud computing page. That is an eleven minute recording of a very simple add-in running on Revit 2012, originally created for the DevDays conferences in the end of 2010.
I recently migrated the sample add-in to Revit 2013. Here is AecMatInfoClientRevit2013.zip containing its entire source code, Visual Studio solution and add-in manifest.
As explained in the recording, it simply defines two commands to read data from certain Revit element parameters and store them in a simple cloud-hosted database, and vice versa to read data from the database and populate it back into the Revit parameters again.
Revit Viewer via OBJ
As said, the next thing I would like to look at is a Revit model viewer.
Instead of using Adam's approach via a custom geometry file format, I thought I might make use of the Wavefront OBJ file format, which seems to be pretty standard and compact.
My current tentative outline looks like this:
- Describe Adam's Revit cloud and mobile demo (well, Adam is doing this himself):
- RVT add-in exporting triangulated geometry faces via custom ASCII file format, uploading to cloud
- Mobile device accessing cloud data, custom iOS viewer reading and displaying 3D view of custom format
- Implement a RVT add-in that exports OBJ file format instead
- Standard format, can be used ubiquitously
- Optimise that file format to significantly reduce file size and increase speed and efficiency
- View OBJ file format on mobile
- Using standard viewer
- Implement custom Android viewer
It will be interesting to see how I do during the next few days... especially for me :-)