public void DisplayDesignClusters(bool updateKeys = true, bool generate = true) { if (generate) { BatchDesign.GetDesignClusters(); } var modelGroup = new Model3DGroup(); List <List <Column> > designClusters = BatchDesign.GetDesignClustersCol(); for (int i = 0; i < designClusters.Count; i++) { MeshBuilder meshBuilder = new MeshBuilder(false, true); List <Column> columns = designClusters[i]; foreach (var c in columns) { Point3D center = new Point3D(c.Point1.X * 1e-3, c.Point1.Y * 1e-3, c.Point1.Z * 1e-3); double xlength = 0.2; double ylength = 0.2; double zlength = (c.Point2.Z - c.Point1.Z) * 1e-3; meshBuilder.AddBox(center, xlength, ylength, zlength); } var mesh = new GeometryModel3D(meshBuilder.ToMesh(), MaterialHelper.CreateMaterial(myColors[i].ChangeAlpha(150))); mesh.BackMaterial = mesh.Material; modelGroup.Children.Add(mesh); } ClusteredDesigns = modelGroup; if (updateKeys) { DisplayDesignClustersKeys(); } NumberOfColumns_Designs = designClusters.Sum(c => c.Count); }