specklesystems / speckle-sharp

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

Enhancement: Updating ceilings received into Revit #3010

Open dtnaughton opened 8 months ago

dtnaughton commented 8 months ago

Submitting this is an enhancement as opposed to a bug, as the current intent of behaviour seems deliberate.

Prerequisites

What package are you referring to?

2.16, ConverterRevit

Is your feature request related to a problem? Please describe.

The current update functionality works by deleting the existing ceiling and creating a new one. Deleting the ceiling will also delete any lighting fixtures that are hosted on this ceiling. Therefore, the updating functionality of Revit Instances does not function as intended, because the objects sitting in the streamstate cache are no longer present in the model, so the conversion method creates them as new. The new creation of the lighting fixtures causes a change of internal Revit ids and any parameters that we assigned within the model.

Describe the solution you'd like

We want receiving ceiling with hosted lighting fixtures (family instances) to support updating functionality to enable persistence of internal revit ids of lighting fixtures and parameters.

Was there a particular reason that ceilings are deleted and recreated if they are existing, rather than trying to update existing?

Additional context

Related issues or community discussions

We can share a model confidentially (as it contains some internal info r.e. families etc) to recreate this issue. Please let me know how is best to provide this.

The general steps to recreate the condition mentioned is to:

teocomi commented 8 months ago

Thanks for the report @dtnaughton - I'm not sure the Revit API allows updating ceilings profiles. We can look into it, but if that's not possible, I'm afraid it will not be possible to keep the IDs of hosted elements constant...