specklesystems / speckle-sharp

.NET SDK, Schema and Connectors: Revit, Rhino, Grasshopper, Dynamo, ETABS, AutoCAD, Civil3D & more.
https://speckle.systems
Apache License 2.0
364 stars 168 forks source link

Improve surface conversions handling across converters #425

Closed clairekuang closed 3 years ago

clairekuang commented 3 years ago

IDisplayMesh for Surfaces Currently Objects.Geometry.Surface is not inheriting from IDisplayMesh. This so far hasn't caused issues since the main source of surfaces are from Rhino/GH which sends them as breps. However, softwares like Autocad that send surfaces directly will not show in the viewer

Surface vs Brep Because Rhino surfaces are converted as Objects.Geometry.Brep, this could cause issues for interop with softwares that send surfaces as Objects.Geometry.Surface: eg a nurbsurface from Autocad sent to Rhino would be sent back as a brep, which is currently an unsupported conversion.

Knot convention clarification This is the same issue we had with Nurbscurves: Rhino uses a unique convention of degree - 1 (instead of degree +1 like most other apps) for curve knots. Surface u and v knots should be switched to the standard convention of degree + 1: this will require surface conversion updates across all converters

clairekuang commented 3 years ago

@didimitrie @teocomi @AlanRynne discussion on these issues welcome!

teocomi commented 3 years ago

Would it be possible to send Breps from Autocad instead of Surfaces? My understanding here is limited, but if a Brep is a collection of (trimmed and untrimmed) surfaces that should be possible and could make the workflow simpler > we just standardize on the Rhino approach.

But I'll let the resident experts on this have their say :)