Context
Most of what is available in the industry today for interop implement a quick solution, by extracting the display mesh of a scene/model and only handling meshes from that point on. This is fine if the pipeline is a visualization pipeline, but for engineering, analysis, production, and construction pipelines it is more important to keep the geometry type as native as possible. This means the ability to keep it a NURBS or BREP geometry the entire time. Generating a mesh from that is simple. Generating surfaces and solids from meshes is much more difficult.
Problem
Currently, when sending a speckle stream from Revit to Rhino or Rhino to Revit, the geometry received are meshes. This is fine if all you need is context, but if you are creating a pipeline where one asset is modeled in Rhino but documented in Revit, the fidelity and accuracy of the asset needs to be as close to the source as possible. This often means a NURBs surface in Rhino becomes a Freeform Element in Revit.
Question
I’m new to Speckle so candidly I may be missing a desired workflow. Is there a workflow that can support this? If not, are there any plans to support more geometry types across more apps? It is not an easy task. USD is plagued by the same problem.
We do support NURBS geometry coming from Rhino. You can receive them as Breps in Revit. There are some limitations on Revit’s side for certain geometry types (eg its not possible to create a single closed spline in Revit) for certain environments (Project and Family environments have different limitations) and we are trying to work around them.
So you can create Family instances from your Rhino geometry via Grasshopper. Please give it a try and you are more than welcome to report any bugs here😉. That’s how we can make it more stable.
Revit
We don’t export Nurbs geometry from Revit at this stage. Our current priority is to support sending/receiving (possibly) all categories from Revit and make it as reliable as possible. After that, we can consider sending Nurbs geometry instead of meshes.
Following up on this post - it seems that there has been a lot of progress in Speckle in the past year and I’m curious if the brep export from Revit is on the near-term horizon?
May I formulate it in opposite: no one needs mesh geometry as basis format. It is inefficient to store, read and write. You can always get mesh from analytical representation, even with adaptive quality.
I see, that most of conversions from Revit to Speckle BRep is done, except the last one - solid.
I came here with the same idea - exporting BRep from Revit, but my approach is different - I export geometry primitives first to get rid of Revit as soon as possible. And as a second step - reconstruct the topology from geometry (surfaces and edges as 3d curves).
Revit sucks. Especially in geometry processing, it is fantastically slow and buggy (e.g. not all edges have their UV curves available o_O).
I highly recommend you to do the same for all geometry senders - export geometrical primitives as Speckle objects and write a single post-process to:
calculate meshes
calsulate BRep
I personally use OpenCascade. Can help, if you need.