specklesystems / speckle-sharp

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

bug(revit): Add proper support for Revit Groups #1631

Closed bimgeek closed 11 months ago

bimgeek commented 2 years ago

Description

Groups from Revit can be sent via the connector but can't be received back. And the way we handle Revit groups is problematic. Group elements are handled as a single element in the viewer. Group members and their properties cannot be accessed.

Related to this post on forum👪.

Steps to reproduce

Use the sample file or:

  1. Model 4 walls or place multiple elements in Revit.
  2. Select and group items you added.
  3. Select this group and send it to Speckleverse via the connector.
  4. Create a new project.
  5. Try to receive the commit you just sent.
  6. Speckle connector will not give any warning/error but neither will it create the group and its member elements.

Streams/Commits

https://latest.speckle.dev/streams/fb39fd2b41/commits/5887b61fb2

Files

RevitGroupTests.zip

Screenshots

opera_qNvuWPftC6

Possible Solution

A good solution (I think) would be to create a new "Groups" class in Objects.BuiltElements.Revit that extends the BlockInstance class in Objects.Other. It would need a property that contains a list of base objects that holds the converted Revit elements that make up the group in Revit so that when the group is received back into Revit, a new group can be created and then we can add each of the elements that make up that group.

Ravina-Deogadkar commented 2 years ago

Is this issue available, Can I take it?

teocomi commented 2 years ago

Hey @Ravina-Deogadkar , sure thing, I'll add you. In case you foresee making any modifications or addition to our Objects classes, please let's discuss it in advance as they can have consequences in other connectors and need to be carefully planned.

Cc @connorivy @clairekuang

bimgeek commented 11 months ago

Closing this ticket as we are moving to Jira to reduce noise. You can access it there.