From 8a0c9d0128c9deebc768bc996f44ca8dae560e5e Mon Sep 17 00:00:00 2001 From: Dimitrie Stefanescu Date: Wed, 6 Nov 2024 18:33:11 +0000 Subject: [PATCH] fix: adds built in category for setting ds cat on receive reliably note: this is not backwards compatible --- .../RevitRootToSpeckleConverter.cs | 2 ++ .../ToHost/Raw/LocalToGlobalToDirectShapeConverter.cs | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Converters/Revit/Speckle.Converters.RevitShared/RevitRootToSpeckleConverter.cs b/Converters/Revit/Speckle.Converters.RevitShared/RevitRootToSpeckleConverter.cs index cc112060f..4d74554b2 100644 --- a/Converters/Revit/Speckle.Converters.RevitShared/RevitRootToSpeckleConverter.cs +++ b/Converters/Revit/Speckle.Converters.RevitShared/RevitRootToSpeckleConverter.cs @@ -3,6 +3,7 @@ using Microsoft.Extensions.Logging; using Speckle.Converters.Common; using Speckle.Converters.Common.Objects; using Speckle.Converters.Common.Registration; +using Speckle.Converters.RevitShared.Extensions; using Speckle.Converters.RevitShared.Settings; using Speckle.Converters.RevitShared.ToSpeckle; using Speckle.Sdk; @@ -58,6 +59,7 @@ public class RevitRootToSpeckleConverter : IRootToSpeckleConverter if (target is not DB.DirectShape) { result["category"] = element.Category?.Name; + result["builtinCategory"] = element.Category?.GetBuiltInCategory().ToString(); } try diff --git a/Converters/Revit/Speckle.Converters.RevitShared/ToHost/Raw/LocalToGlobalToDirectShapeConverter.cs b/Converters/Revit/Speckle.Converters.RevitShared/ToHost/Raw/LocalToGlobalToDirectShapeConverter.cs index c33972225..840e9e999 100644 --- a/Converters/Revit/Speckle.Converters.RevitShared/ToHost/Raw/LocalToGlobalToDirectShapeConverter.cs +++ b/Converters/Revit/Speckle.Converters.RevitShared/ToHost/Raw/LocalToGlobalToDirectShapeConverter.cs @@ -29,11 +29,11 @@ public class LocalToGlobalToDirectShapeConverter public DB.DirectShape Convert((Base atomicObject, List matrix) target) { // 1- set ds category - var category = target.atomicObject["category"] as string; + var category = target.atomicObject["builtinCategory"] as string; var dsCategory = DB.BuiltInCategory.OST_GenericModel; if (category is not null) { - var res = Enum.TryParse($"OST_{category}", out DB.BuiltInCategory cat); + var res = Enum.TryParse(category, out DB.BuiltInCategory cat); if (res) { var c = DB.Category.GetCategory(_converterSettings.Current.Document, cat);