For the first time, CAD users will be able to access Revit model files independently from Revit. This was the motivation to open up Revit with the new API from Open Design Alliance:
Competitors want to interoperate with Revit files in a standalone solution through an independent organization. The only API currently available is based on dot.Net and requires a seat of Revit. Reads, displays, and writes RVT and RFA files, and works on Windows, Mac, Linux, and mobile.
As of January, there will be new license options: binary or source-code; fees to be determined. Get updates through the new Revit page on teigha.com.
Native Support for RVT and RFA Files
(RFA files are used for large models, while RVT is the native format of models.)
- Reads 2011 through 2017 formats, and writes back to 2017 format; for saving, older files must be converted to 2017
- General TfObject interface for all classes, custom read interface for 1600 classes, with work continuing on more classes
- Renders (in the sense of displaying in 3D) Revit geometry; for 2D data ODA uses its own format
- Revit has over 3800 classes (some of which have no data, 2700 have data) but all must be read
- ODA's API does full and partial loads of RFA and RVT files; Teigha Kernel is used to parse the database
- Converts Revit's 2D and 3D primitives: line, arc, ellipse, hermite spine, NURB spine, and cylindrical helix; polycurve and polymesh; plane, cone surface, cylinder surface, revolved surface, ruled surface, hermite surface, and shared surface; b-reps.
- Many Revit entities need to handled differently from DWG, and so the ODA had to adapt its API in those cases
- 3D displays include wireframe, hidden-line, shaded; line weights, line styles, materials,
- Teigha BIM displays 3D models in orthogonal and shaded, and does multi-view sheets; see figure below
- Also handles connectors, dimensions, rectangular clipping, and so on.
The ODA has the following plans for immediately improving its Teigha BIM:
- Custom read interfaces for all interfaces
- Improvements to rendering (display), such as support for all elements
- Converting 2011+ files to the latest version of RVT
- Initial version for creating elements
Q: What do you mean by "custom" read interface?
A: We have our own interface.
Q: One of the complaints I have from third-party developers is that Autodesk has not provided API access to all aspects of Revit, and some of it is poorly documented. Do you have as many API calls as Autodesk, or is your implementation complete?
A: We are reading all data in the files.
Q: Will it read IFC [industry foundation classes, used as the interchange format between BIM programs] files?
A: We concentrate on RVT files, which is huge. IFCs will have to wait. [Update:] No IFCs are used for reading or writing.
Q: How does the file open speed compare with Revit?
A: We are slower, but for complex drawings is quite good. The difference is about 2x slower.
Q: When will the binaries be available?
A: All binaries are available to BIM SIG members, and all members in January.
Q: Do you expect 100% write compatibility with Revit?
A: It reads all geometry and other data, rendering is not 100%. The writing function is still be implemented, as is the ability to save in earlier releases. The RVT format is quite complex, and so there is no byte-by-byte write interface. But customers can write their model data.