From 4fc3d9e35e7642fef755ca32f7f5c466f45ed2b3 Mon Sep 17 00:00:00 2001 From: chuongmep <31106432+chuongmep@users.noreply.github.com> Date: Sun, 2 Jul 2023 10:42:51 +0800 Subject: [PATCH] add support wall opening --- .../Partial Classes/ConvertWall.cs | 18 ++++++++++++++++-- Objects/Objects/BuiltElements/Wall.cs | 4 ++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/Objects/Converters/ConverterRevit/ConverterRevitShared/Partial Classes/ConvertWall.cs b/Objects/Converters/ConverterRevit/ConverterRevitShared/Partial Classes/ConvertWall.cs index 756d947fa2..56545316b8 100644 --- a/Objects/Converters/ConverterRevit/ConverterRevitShared/Partial Classes/ConvertWall.cs +++ b/Objects/Converters/ConverterRevit/ConverterRevitShared/Partial Classes/ConvertWall.cs @@ -177,7 +177,7 @@ public Base WallToSpeckle(DB.Wall revitWall, out List<string> notes) speckleWall.topOffset = GetParamValue<double>(revitWall, BuiltInParameter.WALL_TOP_OFFSET); speckleWall.structural = GetParamValue<bool>(revitWall, BuiltInParameter.WALL_STRUCTURAL_SIGNIFICANT); speckleWall.flipped = revitWall.Flipped; - + speckleWall.openings = GetWallOpeningElements(revitWall); //CreateVoids(revitWall, speckleWall); if (revitWall.CurtainGrid == null) @@ -227,7 +227,21 @@ public Base WallToSpeckle(DB.Wall revitWall, out List<string> notes) if (hostedNotes.Any()) notes.AddRange(hostedNotes); return speckleWall; } - + private List<Base> GetWallOpeningElements(DB.Wall revitWall) + { + var openings = new List<Base>(); + IList<ElementId> wallOpenings = revitWall.GetDependentElements(new ElementClassFilter(typeof(Opening))); + foreach (var openingId in wallOpenings) + { + var opening = Doc.GetElement(openingId); + if (opening is Opening) + { + var openingSpeckle = OpeningToSpeckle((Opening)opening); + openings.Add(openingSpeckle); + } + } + return openings; + } private (List<Mesh>, List<Mesh>) GetCurtainWallDisplayMesh(DB.Wall wall) { var grid = wall.CurtainGrid; diff --git a/Objects/Objects/BuiltElements/Wall.cs b/Objects/Objects/BuiltElements/Wall.cs index c15ea576ac..a59827eab4 100644 --- a/Objects/Objects/BuiltElements/Wall.cs +++ b/Objects/Objects/BuiltElements/Wall.cs @@ -151,6 +151,10 @@ public RevitWall( public Level level { get; set; } public Level topLevel { get; set; } public Base parameters { get; set; } + + [DetachProperty] + public List<Base> openings { get; set; } + public string elementId { get; set; } }