Skip to content

Commit

Permalink
remove unnecessary parameters in the StandardLayoutOnAllLevels function
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaSloboda committed Aug 25, 2023
1 parent d500959 commit aab7269
Show file tree
Hide file tree
Showing 6 changed files with 17 additions and 217 deletions.
19 changes: 9 additions & 10 deletions LayoutFunctions/LayoutFunctionCommon/LayoutStrategies.cs
Original file line number Diff line number Diff line change
Expand Up @@ -146,9 +146,7 @@ public static void StandardLayoutOnAllLevels<TLevelElements, TLevelVolume, TSpac
Func<LayoutInstantiated, int> countSeats = null,
Func<TOverride, Vector3> getCentroid = null,
TSpaceSettingsOverrideValueType defaultValue = default,
List<ElementProxy<TSpaceBoundary>> proxies = default /*,
Func<IEnumerable<TLevelElements>, Dictionary<Guid, ISpaceSettingsOverride<TSpaceSettingsOverrideValueType>>> getOverridesBySpaceBoundaryId = null,
Func<Dictionary<Guid, ISpaceSettingsOverride<TSpaceSettingsOverrideValueType>>, TSpaceBoundary, IEnumerable<TSpaceBoundary>, TSpaceSettingsOverrideValueType> getSpaceSettingsValue = null*/
List<ElementProxy<TSpaceBoundary>> proxies = default
)
where TLevelElements : Element, ILevelElements
where TSpaceBoundary : Element, ISpaceBoundary
Expand All @@ -175,8 +173,11 @@ public static void StandardLayoutOnAllLevels<TLevelElements, TLevelVolume, TSpac
FlippedConfigurations.Init(configs);

var allSpaceBoundaries = spacePlanningZones.AllElementsAssignableFromType<TSpaceBoundary>().Where(z => z.Name == programTypeName).ToList();
var overridesBySpaceBoundaryId = OverrideUtilities.GetOverridesBySpaceBoundaryId<TOverride, ISpaceBoundary, ILevelElements>(overrides?.SpaceSettings, getCentroid, levels);
// var overridesBySpaceBoundaryId = getOverridesBySpaceBoundaryId != null ? getOverridesBySpaceBoundaryId(levels) : new Dictionary<Guid, ISpaceSettingsOverride<TSpaceSettingsOverrideValueType>>();
var overridesBySpaceBoundaryId =
getCentroid != null ?
OverrideUtilities.GetOverridesBySpaceBoundaryId<TOverride, ISpaceBoundary, ILevelElements>(overrides?.SpaceSettings, getCentroid, levels) :
new Dictionary<Guid, IOverride>();

foreach (var lvl in levels)
{
var corridors = lvl.Elements.Where(e => e is Floor).OfType<Floor>();
Expand All @@ -193,13 +194,12 @@ public static void StandardLayoutOnAllLevels<TLevelElements, TLevelVolume, TSpac
var wallCandidateLines = new List<(Line line, string type)>();
foreach (var room in roomBoundaries)
{
// var spaceSettingsValue = getSpaceSettingsValue != null ? getSpaceSettingsValue(overridesBySpaceBoundaryId, room, allSpaceBoundaries) : default;
var spaceSettingsValue = defaultValue != null && proxies != null ? OverrideUtilities.MatchApplicableOverride(
overridesBySpaceBoundaryId,
OverrideUtilities.GetSpaceBoundaryProxy(room, roomBoundaries.Proxies(OverrideUtilities.SpaceBoundaryOverrideDependencyName)),
defaultValue,
proxies).Value : default;
ProcessRoom(room, outputModel, countSeats, configs, spaceSettingsValue, corridorSegments, levelVolume, wallCandidateLines);
ProcessRoom<TLevelVolume, TSpaceBoundary, TSpaceSettingsOverrideValueType>(room, outputModel, countSeats, configs, spaceSettingsValue, corridorSegments, levelVolume, wallCandidateLines);
}

double height = levelVolume?.Height ?? 3;
Expand All @@ -217,13 +217,12 @@ public static void StandardLayoutOnAllLevels<TLevelElements, TLevelVolume, TSpac
}
foreach (var room in allSpaceBoundaries)
{
// var spaceSettingsValue = getSpaceSettingsValue != null ? getSpaceSettingsValue(overridesBySpaceBoundaryId, room, allSpaceBoundaries) : default;
var spaceSettingsValue = defaultValue != null && proxies != null ? OverrideUtilities.MatchApplicableOverride(
overridesBySpaceBoundaryId,
OverrideUtilities.GetSpaceBoundaryProxy(room, allSpaceBoundaries.Proxies(OverrideUtilities.SpaceBoundaryOverrideDependencyName)),
defaultValue,
proxies).Value : default;
ProcessRoom<TLevelVolume, TSpaceBoundary, ISpaceSettingsOverrideValue>(room, outputModel, countSeats, configs, spaceSettingsValue);
ProcessRoom<TLevelVolume, TSpaceBoundary, TSpaceSettingsOverrideValueType>(room, outputModel, countSeats, configs, spaceSettingsValue);
}
OverrideUtilities.InstancePositionOverrides(overrides, outputModel);
}
Expand All @@ -248,7 +247,7 @@ private static void ProcessRoom<TLevelVolume, TSpaceBoundary, TSpaceSettingsOver
var success = false;
var spaceBoundary = room.Boundary;
var wallCandidateOptions = WallGeneration.FindWallCandidateOptions(room, levelVolume?.Profile, corridorSegments);
var selectedConfigs = spaceSettingsValue is ISpaceSettingsOverrideFlipValue spaceSettingsFlipValue ?
var selectedConfigs = spaceSettingsValue != null && spaceSettingsValue is ISpaceSettingsOverrideFlipValue spaceSettingsFlipValue ?
FlippedConfigurations.GetConfigs(spaceSettingsFlipValue.PrimaryAxisFlipLayout, spaceSettingsFlipValue.SecondaryAxisFlipLayout) :
configs;

Expand Down
14 changes: 1 addition & 13 deletions LayoutFunctions/LoungeLayout/src/LoungeLayout.cs
Original file line number Diff line number Diff line change
Expand Up @@ -46,19 +46,7 @@ public static LoungeLayoutOutputs Execute(Dictionary<string, Model> inputModels,
Elements.Serialization.glTF.GltfExtensions.UseReferencedContentExtension = true;
var output = new LoungeLayoutOutputs();

Func<IEnumerable<LevelElements>, Dictionary<Guid, ISpaceSettingsOverride<SpaceSettingsValue>>> overridesBySpaceBoundaryId = (levels) => {
return OverrideUtilities.GetOverridesBySpaceBoundaryId<ISpaceSettingsOverride<SpaceSettingsValue>, SpaceBoundary, LevelElements>(input.Overrides?.SpaceSettings.Select(s => s as ISpaceSettingsOverride<SpaceSettingsValue>).ToList(), (ov) => (ov as SpaceSettingsOverride).Identity.ParentCentroid, levels);
};

Func<Dictionary<Guid, ISpaceSettingsOverride<SpaceSettingsValue>>, SpaceBoundary, IEnumerable<SpaceBoundary>, SpaceSettingsValue> spaceSettingsValue = (overridesId, room, roomBoundaries) => {
return OverrideUtilities.MatchApplicableOverride<SpaceBoundary, SpaceSettingsOverride, SpaceSettingsValue>(
overridesId.ToDictionary(id => id.Key, id => id.Value as SpaceSettingsOverride),
OverrideUtilities.GetSpaceBoundaryProxy(room, roomBoundaries.Proxies(OverrideUtilities.SpaceBoundaryOverrideDependencyName)),
new SpaceSettingsValue(false, false),
proxies).Value;
};

LayoutStrategies.StandardLayoutOnAllLevels<LevelElements, LevelVolume, SpaceBoundary, CirculationSegment, SpaceSettingsValue>("Lounge", inputModels, input.Overrides, output.Model, false, "./LoungeConfigurations.json", default, CountSeats, overridesBySpaceBoundaryId, spaceSettingsValue);
LayoutStrategies.StandardLayoutOnAllLevels<LevelElements, LevelVolume, SpaceBoundary, CirculationSegment, SpaceSettingsOverride, SpaceSettingsValue>("Lounge", inputModels, input.Overrides, output.Model, false, "./LoungeConfigurations.json", default, CountSeats, (ov) => ov.Identity.ParentCentroid, new SpaceSettingsValue(false, false), proxies);

output.Model.AddElements(proxies);
return output;
Expand Down
2 changes: 1 addition & 1 deletion LayoutFunctions/PantryLayout/src/PantryLayout.cs
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ public static PantryLayoutOutputs Execute(Dictionary<string, Model> inputModels,
Elements.Serialization.glTF.GltfExtensions.UseReferencedContentExtension = true;

var layoutGeneration = new PantryLayoutGeneration();
var result = layoutGeneration.StandardLayoutOnAllLevels("Pantry", inputModels, input.Overrides, (ov) => ov.Identity.ParentCentroid, new SpaceSettingsValue(false, false), false, "./PantryConfigurations.json");
var result = layoutGeneration.StandardLayoutOnAllLevels("Pantry", inputModels, input.Overrides, false, "./PantryConfigurations.json", default, (ov) => ov.Identity.ParentCentroid, new SpaceSettingsValue(false, false));
var output = new PantryLayoutOutputs
{
Model = result.OutputModel,
Expand Down
Loading

0 comments on commit aab7269

Please sign in to comment.