From 86d49e830a9a28e7f1208c08d0277731fdeb292d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A5l=20N=C3=B8dseth?= Date: Fri, 5 May 2023 09:53:53 +0200 Subject: [PATCH 1/7] fix surface units --- CadRevealComposer/CadRevealComposer.csproj | 2 + CadRevealComposer/CadRevealComposerRunner.cs | 31 ++++++ CadRevealComposer/SurfaceUnits/SurfaceUnit.cs | 18 ++++ .../SurfaceUnits/SurfaceUnitMetaDataWriter.cs | 99 +++++++++++++++++++ 4 files changed, 150 insertions(+) create mode 100644 CadRevealComposer/SurfaceUnits/SurfaceUnit.cs create mode 100644 CadRevealComposer/SurfaceUnits/SurfaceUnitMetaDataWriter.cs diff --git a/CadRevealComposer/CadRevealComposer.csproj b/CadRevealComposer/CadRevealComposer.csproj index 9545d873..89cd8cb3 100644 --- a/CadRevealComposer/CadRevealComposer.csproj +++ b/CadRevealComposer/CadRevealComposer.csproj @@ -8,10 +8,12 @@ + + diff --git a/CadRevealComposer/CadRevealComposerRunner.cs b/CadRevealComposer/CadRevealComposerRunner.cs index 9a405319..2350b997 100644 --- a/CadRevealComposer/CadRevealComposerRunner.cs +++ b/CadRevealComposer/CadRevealComposerRunner.cs @@ -7,12 +7,15 @@ using Operations; using Operations.SectorSplitting; using Primitives; +using RvmSharp.Primitives; +using SurfaceUnits; using System; using System.Collections.Generic; using System.Collections.Immutable; using System.Diagnostics; using System.IO; using System.Linq; +using System.Text.RegularExpressions; using System.Threading; using System.Threading.Tasks; using Tessellation; @@ -51,6 +54,34 @@ IReadOnlyList modelFormatProviders if (cadRevealNodes.Count > 0) { + // Adding Surface Unit Volume Attributes for Sleipner T + var regex = new Regex(@"^\/\d+[A-Z]\d+$"); + foreach (CadRevealNode cadRevealNode in cadRevealNodes) + { + if (cadRevealNode.Parent?.Name.Contains("/A00-AREA") == true) + { + + if (regex.IsMatch(cadRevealNode.Name)) + { + cadRevealNode.Attributes.Add("SurfaceUnitVolume", "true"); + cadRevealNode.Attributes.Add(cadRevealNode.Name.TrimStart('/'), "true"); + } + } + + } + + // Add Surface Unit Metadata + List fileNames = new() { "SLT_surface_units.csv" }; + + fileNames.ForEach(fileName => + { + var filePath = Path.Combine(inputFolderPath.FullName, fileName); + if (File.Exists(filePath)) + { + SurfaceUnitMetaDataWriter.AddMetaData(cadRevealNodes, filePath); + } + }); + // collect all nodes for later sector division of the entire scene nodesToProcess.AddRange(cadRevealNodes); diff --git a/CadRevealComposer/SurfaceUnits/SurfaceUnit.cs b/CadRevealComposer/SurfaceUnits/SurfaceUnit.cs new file mode 100644 index 00000000..e79ba3ec --- /dev/null +++ b/CadRevealComposer/SurfaceUnits/SurfaceUnit.cs @@ -0,0 +1,18 @@ +namespace CadRevealComposer.SurfaceUnits; + +using CsvHelper.Configuration.Attributes; + +public class SurfaceUnit +{ + [Name("Surface Unit 1")] public string SurfaceUnit1 { get; set; } = null!; + [Name("Surface Unit 2")] public string SurfaceUnit2 { get; set; } = null!; + [Name("Surface Unit 3")] public string SurfaceUnit3 { get; set; } = null!; + [Name("Surface Unit 4"), Optional] public string SurfaceUnit4 { get; set; } = null!; + [Name("Surface Unit 5"), Optional] public string SurfaceUnit5 { get; set; } = null!; + [Name("Surface Unit 6"), Optional] public string SurfaceUnit6 { get; set; } = null!; + [Name("Surface Unit 7"), Optional] public string SurfaceUnit7 { get; set; } = null!; + [Name("Surface Unit 8"), Optional] public string SurfaceUnit8 { get; set; } = null!; + [Name("Surface Unit 9"), Optional] public string SurfaceUnit9 { get; set; } = null!; + [Name("Surface Unit 10"), Optional] public string SurfaceUnit10 { get; set; } = null!; + [Name("E3D Reference")] public string E3DReference { get; set; } = null!; +} diff --git a/CadRevealComposer/SurfaceUnits/SurfaceUnitMetaDataWriter.cs b/CadRevealComposer/SurfaceUnits/SurfaceUnitMetaDataWriter.cs new file mode 100644 index 00000000..d33c3506 --- /dev/null +++ b/CadRevealComposer/SurfaceUnits/SurfaceUnitMetaDataWriter.cs @@ -0,0 +1,99 @@ +namespace CadRevealComposer.SurfaceUnits; + +using Utils; +using CsvHelper; +using CsvHelper.Configuration; +using RvmSharp.Primitives; +using System; +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using System.Linq; + +public static class SurfaceUnitMetaDataWriter +{ + public static void AddMetaData(IEnumerable allNodes, string filePath) + { + var rvmNodes = allNodes + .Where(n => n.Attributes.ContainsKey("RefNo")).ToDictionary((k) => k.Attributes["RefNo"], (v) => v); + + + var config = new CsvConfiguration(CultureInfo.InvariantCulture) { Delimiter = ";", }; + using var reader = new StreamReader(filePath); + using var csv = new CsvReader(reader, config); + var records = csv.GetRecords().ToList(); + + Console.WriteLine("Found " + rvmNodes.Count + " nodes with RefNo attribute."); + Console.WriteLine("Found " + records.Count + " records in file."); + int count = 0; + + Console.WriteLine("Adding Surface Unit Metadata to nodes from file " + filePath); + foreach (var record in records) + { + try + { + var node = rvmNodes.TryGetValue(record.E3DReference, out var nodeValue) ? nodeValue : null; + if (node == null) + { + continue; + } + + node.Attributes.Add("SurfaceUnit", record.SurfaceUnit1); + node.Attributes.Add($"SU-{record.SurfaceUnit1}", "true"); + + if (!String.IsNullOrEmpty(record.SurfaceUnit2)) + { + node.Attributes.Add($"SU-{record.SurfaceUnit2}", "true"); + } + + if (!String.IsNullOrEmpty(record.SurfaceUnit3)) + { + node.Attributes.Add($"SU-{record.SurfaceUnit3}", "true"); + } + + if (!String.IsNullOrEmpty(record.SurfaceUnit4)) + { + node.Attributes.Add($"SU-{record.SurfaceUnit4}", "true"); + } + + if (!String.IsNullOrEmpty(record.SurfaceUnit5)) + { + node.Attributes.Add($"SU-{record.SurfaceUnit5}", "true"); + } + + if (!String.IsNullOrEmpty(record.SurfaceUnit6)) + { + node.Attributes.Add($"SU-{record.SurfaceUnit6}", "true"); + } + + if (!String.IsNullOrEmpty(record.SurfaceUnit7)) + { + node.Attributes.Add($"SU-{record.SurfaceUnit7}", "true"); + } + + if (!String.IsNullOrEmpty(record.SurfaceUnit8)) + { + node.Attributes.Add($"SU-{record.SurfaceUnit8}", "true"); + } + + if (!String.IsNullOrEmpty(record.SurfaceUnit9)) + { + node.Attributes.Add($"SU-{record.SurfaceUnit9}", "true"); + } + + if (!String.IsNullOrEmpty(record.SurfaceUnit10)) + { + node.Attributes.Add($"SU-{record.SurfaceUnit10}", "true"); + } + + count++; + } + catch (Exception e) + { + Console.WriteLine("Error adding metadata to node " + record.E3DReference + ": " + e.Message); + } + } + + Console.WriteLine("Added Surface Unit Metadata to {0} nodes.", count); + } +} \ No newline at end of file From 91b123dfcb94e0d13b8042e93c8168a39079b48a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A5l=20N=C3=B8dseth?= Date: Fri, 5 May 2023 10:05:05 +0200 Subject: [PATCH 2/7] formatting --- CadRevealComposer/CadRevealComposerRunner.cs | 1 - CadRevealComposer/SurfaceUnits/SurfaceUnit.cs | 33 ++++++++++++------- .../SurfaceUnits/SurfaceUnitMetaDataWriter.cs | 2 +- 3 files changed, 23 insertions(+), 13 deletions(-) diff --git a/CadRevealComposer/CadRevealComposerRunner.cs b/CadRevealComposer/CadRevealComposerRunner.cs index 2350b997..050291e4 100644 --- a/CadRevealComposer/CadRevealComposerRunner.cs +++ b/CadRevealComposer/CadRevealComposerRunner.cs @@ -60,7 +60,6 @@ IReadOnlyList modelFormatProviders { if (cadRevealNode.Parent?.Name.Contains("/A00-AREA") == true) { - if (regex.IsMatch(cadRevealNode.Name)) { cadRevealNode.Attributes.Add("SurfaceUnitVolume", "true"); diff --git a/CadRevealComposer/SurfaceUnits/SurfaceUnit.cs b/CadRevealComposer/SurfaceUnits/SurfaceUnit.cs index e79ba3ec..d8414a0d 100644 --- a/CadRevealComposer/SurfaceUnits/SurfaceUnit.cs +++ b/CadRevealComposer/SurfaceUnits/SurfaceUnit.cs @@ -4,15 +4,26 @@ namespace CadRevealComposer.SurfaceUnits; public class SurfaceUnit { - [Name("Surface Unit 1")] public string SurfaceUnit1 { get; set; } = null!; - [Name("Surface Unit 2")] public string SurfaceUnit2 { get; set; } = null!; - [Name("Surface Unit 3")] public string SurfaceUnit3 { get; set; } = null!; - [Name("Surface Unit 4"), Optional] public string SurfaceUnit4 { get; set; } = null!; - [Name("Surface Unit 5"), Optional] public string SurfaceUnit5 { get; set; } = null!; - [Name("Surface Unit 6"), Optional] public string SurfaceUnit6 { get; set; } = null!; - [Name("Surface Unit 7"), Optional] public string SurfaceUnit7 { get; set; } = null!; - [Name("Surface Unit 8"), Optional] public string SurfaceUnit8 { get; set; } = null!; - [Name("Surface Unit 9"), Optional] public string SurfaceUnit9 { get; set; } = null!; - [Name("Surface Unit 10"), Optional] public string SurfaceUnit10 { get; set; } = null!; - [Name("E3D Reference")] public string E3DReference { get; set; } = null!; + [Name("Surface Unit 1")] + public string SurfaceUnit1 { get; set; } = null!; + [Name("Surface Unit 2")] + public string SurfaceUnit2 { get; set; } = null!; + [Name("Surface Unit 3")] + public string SurfaceUnit3 { get; set; } = null!; + [Name("Surface Unit 4"), Optional] + public string SurfaceUnit4 { get; set; } = null!; + [Name("Surface Unit 5"), Optional] + public string SurfaceUnit5 { get; set; } = null!; + [Name("Surface Unit 6"), Optional] + public string SurfaceUnit6 { get; set; } = null!; + [Name("Surface Unit 7"), Optional] + public string SurfaceUnit7 { get; set; } = null!; + [Name("Surface Unit 8"), Optional] + public string SurfaceUnit8 { get; set; } = null!; + [Name("Surface Unit 9"), Optional] + public string SurfaceUnit9 { get; set; } = null!; + [Name("Surface Unit 10"), Optional] + public string SurfaceUnit10 { get; set; } = null!; + [Name("E3D Reference")] + public string E3DReference { get; set; } = null!; } diff --git a/CadRevealComposer/SurfaceUnits/SurfaceUnitMetaDataWriter.cs b/CadRevealComposer/SurfaceUnits/SurfaceUnitMetaDataWriter.cs index d33c3506..bb012979 100644 --- a/CadRevealComposer/SurfaceUnits/SurfaceUnitMetaDataWriter.cs +++ b/CadRevealComposer/SurfaceUnits/SurfaceUnitMetaDataWriter.cs @@ -96,4 +96,4 @@ public static void AddMetaData(IEnumerable allNodes, string fileP Console.WriteLine("Added Surface Unit Metadata to {0} nodes.", count); } -} \ No newline at end of file +} From 45e922801a1de2092082c102a21cba1949dabb70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A5l=20N=C3=B8dseth?= Date: Fri, 5 May 2023 13:54:57 +0200 Subject: [PATCH 3/7] Reformat with csharpier --- CadRevealComposer/CadRevealComposerRunner.cs | 3 +- CadRevealComposer/SurfaceUnits/SurfaceUnit.cs | 32 ++++++++++++------- .../SurfaceUnits/SurfaceUnitMetaDataWriter.cs | 4 +-- 3 files changed, 24 insertions(+), 15 deletions(-) diff --git a/CadRevealComposer/CadRevealComposerRunner.cs b/CadRevealComposer/CadRevealComposerRunner.cs index 050291e4..d0475684 100644 --- a/CadRevealComposer/CadRevealComposerRunner.cs +++ b/CadRevealComposer/CadRevealComposerRunner.cs @@ -66,7 +66,6 @@ IReadOnlyList modelFormatProviders cadRevealNode.Attributes.Add(cadRevealNode.Name.TrimStart('/'), "true"); } } - } // Add Surface Unit Metadata @@ -80,7 +79,7 @@ IReadOnlyList modelFormatProviders SurfaceUnitMetaDataWriter.AddMetaData(cadRevealNodes, filePath); } }); - + // collect all nodes for later sector division of the entire scene nodesToProcess.AddRange(cadRevealNodes); diff --git a/CadRevealComposer/SurfaceUnits/SurfaceUnit.cs b/CadRevealComposer/SurfaceUnits/SurfaceUnit.cs index d8414a0d..0c0088cd 100644 --- a/CadRevealComposer/SurfaceUnits/SurfaceUnit.cs +++ b/CadRevealComposer/SurfaceUnits/SurfaceUnit.cs @@ -4,26 +4,36 @@ namespace CadRevealComposer.SurfaceUnits; public class SurfaceUnit { - [Name("Surface Unit 1")] + [Name("Surface Unit 1")] public string SurfaceUnit1 { get; set; } = null!; - [Name("Surface Unit 2")] + + [Name("Surface Unit 2")] public string SurfaceUnit2 { get; set; } = null!; - [Name("Surface Unit 3")] + + [Name("Surface Unit 3")] public string SurfaceUnit3 { get; set; } = null!; - [Name("Surface Unit 4"), Optional] + + [Name("Surface Unit 4"), Optional] public string SurfaceUnit4 { get; set; } = null!; - [Name("Surface Unit 5"), Optional] + + [Name("Surface Unit 5"), Optional] public string SurfaceUnit5 { get; set; } = null!; - [Name("Surface Unit 6"), Optional] + + [Name("Surface Unit 6"), Optional] public string SurfaceUnit6 { get; set; } = null!; - [Name("Surface Unit 7"), Optional] + + [Name("Surface Unit 7"), Optional] public string SurfaceUnit7 { get; set; } = null!; - [Name("Surface Unit 8"), Optional] + + [Name("Surface Unit 8"), Optional] public string SurfaceUnit8 { get; set; } = null!; - [Name("Surface Unit 9"), Optional] + + [Name("Surface Unit 9"), Optional] public string SurfaceUnit9 { get; set; } = null!; - [Name("Surface Unit 10"), Optional] + + [Name("Surface Unit 10"), Optional] public string SurfaceUnit10 { get; set; } = null!; - [Name("E3D Reference")] + + [Name("E3D Reference")] public string E3DReference { get; set; } = null!; } diff --git a/CadRevealComposer/SurfaceUnits/SurfaceUnitMetaDataWriter.cs b/CadRevealComposer/SurfaceUnits/SurfaceUnitMetaDataWriter.cs index bb012979..b1a259e3 100644 --- a/CadRevealComposer/SurfaceUnits/SurfaceUnitMetaDataWriter.cs +++ b/CadRevealComposer/SurfaceUnits/SurfaceUnitMetaDataWriter.cs @@ -15,8 +15,8 @@ public static class SurfaceUnitMetaDataWriter public static void AddMetaData(IEnumerable allNodes, string filePath) { var rvmNodes = allNodes - .Where(n => n.Attributes.ContainsKey("RefNo")).ToDictionary((k) => k.Attributes["RefNo"], (v) => v); - + .Where(n => n.Attributes.ContainsKey("RefNo")) + .ToDictionary((k) => k.Attributes["RefNo"], (v) => v); var config = new CsvConfiguration(CultureInfo.InvariantCulture) { Delimiter = ";", }; using var reader = new StreamReader(filePath); From 133f533333d0d1c11cf4f1f94bc4a8b34f5f12c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Kj=C3=B8pstad=20Kofoed?= Date: Wed, 31 Jan 2024 15:09:58 +0100 Subject: [PATCH 4/7] Remove duplicate code --- CadRevealComposer/CadRevealComposerRunner.cs | 61 +++++++++----------- 1 file changed, 27 insertions(+), 34 deletions(-) diff --git a/CadRevealComposer/CadRevealComposerRunner.cs b/CadRevealComposer/CadRevealComposerRunner.cs index c5f68401..36332875 100644 --- a/CadRevealComposer/CadRevealComposerRunner.cs +++ b/CadRevealComposer/CadRevealComposerRunner.cs @@ -87,47 +87,40 @@ IReadOnlyList modelFormatProviders // collect all nodes for later sector division of the entire scene nodesToExport.AddRange(cadRevealNodes); // Adding Surface Unit Volume Attributes for Sleipner T - var regex = new Regex(@"^\/\d+[A-Z]\d+$"); - foreach (CadRevealNode cadRevealNode in cadRevealNodes) + var regex = new Regex(@"^\/\d+[A-Z]\d+$"); + foreach (CadRevealNode cadRevealNode in cadRevealNodes) + { + if (cadRevealNode.Parent?.Name.Contains("/A00-AREA") == true) { - if (cadRevealNode.Parent?.Name.Contains("/A00-AREA") == true) + if (regex.IsMatch(cadRevealNode.Name)) { - if (regex.IsMatch(cadRevealNode.Name)) - { - cadRevealNode.Attributes.Add("SurfaceUnitVolume", "true"); - cadRevealNode.Attributes.Add(cadRevealNode.Name.TrimStart('/'), "true"); - } + cadRevealNode.Attributes.Add("SurfaceUnitVolume", "true"); + cadRevealNode.Attributes.Add(cadRevealNode.Name.TrimStart('/'), "true"); } } + } - // Add Surface Unit Metadata - List fileNames = new() { "SLT_surface_units.csv" }; + // Add Surface Unit Metadata + List fileNames = new() { "SLT_surface_units.csv" }; - fileNames.ForEach(fileName => + fileNames.ForEach(fileName => + { + var filePath = Path.Combine(inputFolderPath.FullName, fileName); + if (File.Exists(filePath)) { - var filePath = Path.Combine(inputFolderPath.FullName, fileName); - if (File.Exists(filePath)) - { - SurfaceUnitMetaDataWriter.AddMetaData(cadRevealNodes, filePath); - } - }); - - // collect all nodes for later sector division of the entire scene - nodesToExport.AddRange(cadRevealNodes); - - var inputGeometries = cadRevealNodes - .AsParallel() - .AsOrdered() - .SelectMany(x => x.Geometries) - .ToArray(); - - var geometriesIncludingMeshes = modelFormatProvider.ProcessGeometries( - inputGeometries, - composerParameters, - modelParameters, - instanceIdGenerator - ); - geometriesToProcess.AddRange(geometriesIncludingMeshes); + SurfaceUnitMetaDataWriter.AddMetaData(cadRevealNodes, filePath); + } + }); + + var inputGeometries = cadRevealNodes.AsParallel().AsOrdered().SelectMany(x => x.Geometries).ToArray(); + + var geometriesIncludingMeshes = modelFormatProvider.ProcessGeometries( + inputGeometries, + composerParameters, + modelParameters, + instanceIdGenerator + ); + geometriesToProcess.AddRange(geometriesIncludingMeshes); } // If there is no metadata for this model, the json will be empty From afcef1f67250a68027059a1e1e3396ef4130ab6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A5l=20N=C3=B8dseth?= Date: Mon, 11 Mar 2024 09:27:08 +0100 Subject: [PATCH 5/7] change csv name --- CadRevealComposer/CadRevealComposerRunner.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CadRevealComposer/CadRevealComposerRunner.cs b/CadRevealComposer/CadRevealComposerRunner.cs index 36332875..5ef60f87 100644 --- a/CadRevealComposer/CadRevealComposerRunner.cs +++ b/CadRevealComposer/CadRevealComposerRunner.cs @@ -101,7 +101,7 @@ IReadOnlyList modelFormatProviders } // Add Surface Unit Metadata - List fileNames = new() { "SLT_surface_units.csv" }; + List fileNames = new() { "surface_units.csv" }; fileNames.ForEach(fileName => { From 021b15e5e17f4035f8a39be053273a765bdbfacb Mon Sep 17 00:00:00 2001 From: Nils Henrik Hals <3185998+Strepto@users.noreply.github.com> Date: Wed, 22 May 2024 11:03:46 +0200 Subject: [PATCH 6/7] Add support for multiple surface unit files --- CadRevealComposer/CadRevealComposerRunner.cs | 15 +++++++-------- .../SurfaceUnits/SurfaceUnitMetaDataWriter.cs | 2 +- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/CadRevealComposer/CadRevealComposerRunner.cs b/CadRevealComposer/CadRevealComposerRunner.cs index 5ef60f87..454b2f9f 100644 --- a/CadRevealComposer/CadRevealComposerRunner.cs +++ b/CadRevealComposer/CadRevealComposerRunner.cs @@ -45,6 +45,7 @@ IReadOnlyList modelFormatProviders ); return; } + Console.WriteLine( "Did not find a Primitive Cache file for the current input folder. Processing as normal, and saving a new cache for next run." ); @@ -101,15 +102,12 @@ IReadOnlyList modelFormatProviders } // Add Surface Unit Metadata - List fileNames = new() { "surface_units.csv" }; - - fileNames.ForEach(fileName => + var files = Directory + .GetFiles(inputFolderPath.FullName, "surface_units*.csv", SearchOption.TopDirectoryOnly) + .ToList(); + files.ForEach(file => { - var filePath = Path.Combine(inputFolderPath.FullName, fileName); - if (File.Exists(filePath)) - { - SurfaceUnitMetaDataWriter.AddMetaData(cadRevealNodes, filePath); - } + SurfaceUnitMetaDataWriter.AddMetaData(cadRevealNodes, file); }); var inputGeometries = cadRevealNodes.AsParallel().AsOrdered().SelectMany(x => x.Geometries).ToArray(); @@ -149,6 +147,7 @@ IReadOnlyList modelFormatProviders var devCache = new DevPrimitiveCacheFolder(composerParameters.DevPrimitiveCacheFolder); devCache.WriteToPrimitiveCache(geometriesToProcessArray, inputFolderPath); } + ProcessPrimitives(geometriesToProcessArray, outputDirectory, modelParameters, composerParameters); if (!exportHierarchyDatabaseTask.IsCompleted) diff --git a/CadRevealComposer/SurfaceUnits/SurfaceUnitMetaDataWriter.cs b/CadRevealComposer/SurfaceUnits/SurfaceUnitMetaDataWriter.cs index 2168d756..38f52b0c 100644 --- a/CadRevealComposer/SurfaceUnits/SurfaceUnitMetaDataWriter.cs +++ b/CadRevealComposer/SurfaceUnits/SurfaceUnitMetaDataWriter.cs @@ -12,6 +12,7 @@ public static class SurfaceUnitMetaDataWriter { public static void AddMetaData(IEnumerable allNodes, string filePath) { + Console.WriteLine("Adding Surface Unit Metadata to nodes from file " + filePath); var rvmNodes = allNodes .Where(n => n.Attributes.ContainsKey("RefNo")) .ToDictionary((k) => k.Attributes["RefNo"], (v) => v); @@ -25,7 +26,6 @@ public static void AddMetaData(IEnumerable allNodes, string fileP Console.WriteLine("Found " + records.Count + " records in file."); int count = 0; - Console.WriteLine("Adding Surface Unit Metadata to nodes from file " + filePath); foreach (var record in records) { try From 1f512094c0f6a17c13589ee34471c814194cd788 Mon Sep 17 00:00:00 2001 From: Nils Henrik Hals <3185998+Strepto@users.noreply.github.com> Date: Wed, 22 May 2024 11:20:29 +0200 Subject: [PATCH 7/7] Add log block --- CadRevealComposer/CadRevealComposerRunner.cs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/CadRevealComposer/CadRevealComposerRunner.cs b/CadRevealComposer/CadRevealComposerRunner.cs index 454b2f9f..68172b3c 100644 --- a/CadRevealComposer/CadRevealComposerRunner.cs +++ b/CadRevealComposer/CadRevealComposerRunner.cs @@ -105,10 +105,16 @@ IReadOnlyList modelFormatProviders var files = Directory .GetFiles(inputFolderPath.FullName, "surface_units*.csv", SearchOption.TopDirectoryOnly) .ToList(); - files.ForEach(file => + if (files.Count > 0) { - SurfaceUnitMetaDataWriter.AddMetaData(cadRevealNodes, file); - }); + using (new TeamCityLogBlock("Surface Unit Metadata")) + { + foreach (var file in files) + { + SurfaceUnitMetaDataWriter.AddMetaData(cadRevealNodes, file); + } + } + } var inputGeometries = cadRevealNodes.AsParallel().AsOrdered().SelectMany(x => x.Geometries).ToArray();