diff --git a/LayoutFunctions/ClassroomLayout/dependencies/ClassroomLayout.Dependencies.csproj b/LayoutFunctions/ClassroomLayout/dependencies/ClassroomLayout.Dependencies.csproj
index e832a2d9..7a9eee34 100644
--- a/LayoutFunctions/ClassroomLayout/dependencies/ClassroomLayout.Dependencies.csproj
+++ b/LayoutFunctions/ClassroomLayout/dependencies/ClassroomLayout.Dependencies.csproj
@@ -4,8 +4,8 @@
net6.0
-
-
+
+
diff --git a/LayoutFunctions/ClassroomLayout/dependencies/ClassroomLayoutInputs.g.cs b/LayoutFunctions/ClassroomLayout/dependencies/ClassroomLayoutInputs.g.cs
index 2fe90d7e..ce7f6cc7 100644
--- a/LayoutFunctions/ClassroomLayout/dependencies/ClassroomLayoutInputs.g.cs
+++ b/LayoutFunctions/ClassroomLayout/dependencies/ClassroomLayoutInputs.g.cs
@@ -24,13 +24,13 @@ namespace ClassroomLayout
[System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "10.1.21.0 (Newtonsoft.Json v13.0.0.0)")]
- public class ClassroomLayoutInputs : S3Args
+ public class ClassroomLayoutInputs : ArgsBase
{
[Newtonsoft.Json.JsonConstructor]
- public ClassroomLayoutInputs(bool @createWalls, Overrides @overrides, string bucketName, string uploadsBucket, Dictionary modelInputKeys, string gltfKey, string elementsKey, string ifcKey):
- base(bucketName, uploadsBucket, modelInputKeys, gltfKey, elementsKey, ifcKey)
+ public ClassroomLayoutInputs(bool @createWalls, Overrides @overrides, Dictionary modelInputKeys, string gltfKey, string elementsKey, string ifcKey):
+ base(modelInputKeys, gltfKey, elementsKey, ifcKey)
{
var validator = Validator.Instance.GetFirstValidatorForType();
if(validator != null)
diff --git a/LayoutFunctions/ClassroomLayout/dependencies/ClassroomLayoutOutputs.g.cs b/LayoutFunctions/ClassroomLayout/dependencies/ClassroomLayoutOutputs.g.cs
index 769bfc65..e4e80b2a 100644
--- a/LayoutFunctions/ClassroomLayout/dependencies/ClassroomLayoutOutputs.g.cs
+++ b/LayoutFunctions/ClassroomLayout/dependencies/ClassroomLayoutOutputs.g.cs
@@ -20,9 +20,7 @@ public class ClassroomLayoutOutputs: SystemResults
/// Total count of seats
///
[JsonProperty("Total count of desk seats")]
- public double TotalCountOfDeskSeats {get; set;}
-
-
+ public double TotalCountOfDeskSeats { get; set; }
///
/// Construct a ClassroomLayoutOutputs with default inputs.
@@ -30,16 +28,14 @@ public class ClassroomLayoutOutputs: SystemResults
///
public ClassroomLayoutOutputs() : base()
{
-
}
-
///
/// Construct a ClassroomLayoutOutputs specifying all inputs.
///
///
[JsonConstructor]
- public ClassroomLayoutOutputs(double totalCountOfDeskSeats): base()
+ public ClassroomLayoutOutputs(double totalCountOfDeskSeats) : base()
{
this.TotalCountOfDeskSeats = totalCountOfDeskSeats;
diff --git a/LayoutFunctions/ClassroomLayout/src/Function.g.cs b/LayoutFunctions/ClassroomLayout/src/Function.g.cs
index bdc2c2cf..4de301e1 100644
--- a/LayoutFunctions/ClassroomLayout/src/Function.g.cs
+++ b/LayoutFunctions/ClassroomLayout/src/Function.g.cs
@@ -2,7 +2,6 @@
// Edits to this code will be overwritten the next time you run 'hypar init'.
// DO NOT EDIT THIS FILE.
-using Amazon;
using Amazon.Lambda.Core;
using Hypar.Functions.Execution;
using Hypar.Functions.Execution.AWS;
@@ -19,9 +18,9 @@ public class Function
{
// Cache the model store for use by subsequent
// executions of this lambda.
- private IModelStore store;
+ private UrlModelStore store;
- public async Task Handler(ClassroomLayoutInputs args, ILambdaContext context)
+ public async Task Handler(ClassroomLayoutInputs args)
{
// Preload dependencies (if they exist),
// so that they are available during model deserialization.
@@ -61,15 +60,8 @@ public async Task Handler(ClassroomLayoutInputs args, IL
Console.WriteLine($"Time to load assemblies: {sw.Elapsed.TotalSeconds})");
if(this.store == null)
- {
- if (args.SignedResourceUrls == null)
- {
- this.store = new S3ModelStore(RegionEndpoint.GetBySystemName("us-west-1"));
- }
- else
- {
- this.store = new UrlModelStore();
- }
+ {
+ this.store = new UrlModelStore();
}
diff --git a/LayoutFunctions/CustomLayout/dependencies/CirculationSegment.g.cs b/LayoutFunctions/CustomLayout/dependencies/CirculationSegment.g.cs
index de3dcd58..8ebae248 100644
--- a/LayoutFunctions/CustomLayout/dependencies/CirculationSegment.g.cs
+++ b/LayoutFunctions/CustomLayout/dependencies/CirculationSegment.g.cs
@@ -33,6 +33,7 @@ public CirculationSegment(ThickenedPolyline @geometry, Profile @profile, double
this.Geometry = @geometry;
}
+
// Empty constructor
public CirculationSegment()
: base()
diff --git a/LayoutFunctions/CustomLayout/dependencies/CustomSpaceType.Dependencies.csproj b/LayoutFunctions/CustomLayout/dependencies/CustomSpaceType.Dependencies.csproj
index 3cfbbf73..2efd2423 100644
--- a/LayoutFunctions/CustomLayout/dependencies/CustomSpaceType.Dependencies.csproj
+++ b/LayoutFunctions/CustomLayout/dependencies/CustomSpaceType.Dependencies.csproj
@@ -9,9 +9,9 @@
-
-
-
+
+
+
\ No newline at end of file
diff --git a/LayoutFunctions/CustomLayout/dependencies/CustomSpaceTypeInputs.g.cs b/LayoutFunctions/CustomLayout/dependencies/CustomSpaceTypeInputs.g.cs
index 553067b4..8afc4ee2 100644
--- a/LayoutFunctions/CustomLayout/dependencies/CustomSpaceTypeInputs.g.cs
+++ b/LayoutFunctions/CustomLayout/dependencies/CustomSpaceTypeInputs.g.cs
@@ -24,13 +24,13 @@ namespace CustomSpaceType
[System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "10.1.21.0 (Newtonsoft.Json v13.0.0.0)")]
- public class CustomSpaceTypeInputs : S3Args
+ public class CustomSpaceTypeInputs : ArgsBase
{
[Newtonsoft.Json.JsonConstructor]
- public CustomSpaceTypeInputs(IList @layouts, Overrides @overrides, string bucketName, string uploadsBucket, Dictionary modelInputKeys, string gltfKey, string elementsKey, string ifcKey):
- base(bucketName, uploadsBucket, modelInputKeys, gltfKey, elementsKey, ifcKey)
+ public CustomSpaceTypeInputs(IList @layouts, Overrides @overrides, Dictionary modelInputKeys, string gltfKey, string elementsKey, string ifcKey):
+ base(modelInputKeys, gltfKey, elementsKey, ifcKey)
{
var validator = Validator.Instance.GetFirstValidatorForType();
if(validator != null)
diff --git a/LayoutFunctions/CustomLayout/dependencies/CustomSpaceTypeOutputs.g.cs b/LayoutFunctions/CustomLayout/dependencies/CustomSpaceTypeOutputs.g.cs
index fd3d20b3..03da04a4 100644
--- a/LayoutFunctions/CustomLayout/dependencies/CustomSpaceTypeOutputs.g.cs
+++ b/LayoutFunctions/CustomLayout/dependencies/CustomSpaceTypeOutputs.g.cs
@@ -17,16 +17,13 @@ namespace CustomSpaceType
public class CustomSpaceTypeOutputs: SystemResults
{
-
///
/// Construct a CustomSpaceTypeOutputs with default inputs.
/// This should be used for testing only.
///
public CustomSpaceTypeOutputs() : base()
{
-
}
-
}
}
\ No newline at end of file
diff --git a/LayoutFunctions/CustomLayout/dependencies/LevelElements.g.cs b/LayoutFunctions/CustomLayout/dependencies/LevelElements.g.cs
index dd221b85..3b715315 100644
--- a/LayoutFunctions/CustomLayout/dependencies/LevelElements.g.cs
+++ b/LayoutFunctions/CustomLayout/dependencies/LevelElements.g.cs
@@ -34,6 +34,7 @@ public LevelElements(IList @elements, System.Guid @level, System.Guid @
this.Level = @level;
}
+
// Empty constructor
public LevelElements()
: base()
diff --git a/LayoutFunctions/CustomLayout/dependencies/LevelVolume.g.cs b/LayoutFunctions/CustomLayout/dependencies/LevelVolume.g.cs
index d3164fe8..be2fb359 100644
--- a/LayoutFunctions/CustomLayout/dependencies/LevelVolume.g.cs
+++ b/LayoutFunctions/CustomLayout/dependencies/LevelVolume.g.cs
@@ -27,7 +27,7 @@ namespace Elements
public partial class LevelVolume : GeometricElement
{
[JsonConstructor]
- public LevelVolume(Profile @profile, double @height, double @area, string @buildingName, System.Guid? @level, System.Guid? @mass, System.Guid? @planView, Transform @transform = null, Material @material = null, Representation @representation = null, bool @isElementDefinition = false, System.Guid @id = default, string @name = null)
+ public LevelVolume(Profile @profile, double @height, double @area, string @buildingName, System.Guid? @level, System.Guid? @mass, System.Guid? @planView, IList @profiles, Transform @transform = null, Material @material = null, Representation @representation = null, bool @isElementDefinition = false, System.Guid @id = default, string @name = null)
: base(transform, material, representation, isElementDefinition, id, name)
{
this.Profile = @profile;
@@ -37,8 +37,10 @@ public LevelVolume(Profile @profile, double @height, double @area, string @build
this.Level = @level;
this.Mass = @mass;
this.PlanView = @planView;
+ this.Profiles = @profiles;
}
+
// Empty constructor
public LevelVolume()
: base()
@@ -73,6 +75,10 @@ public LevelVolume()
[JsonProperty("Plan View", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
public System.Guid? PlanView { get; set; }
+ /// Multiple profiles used for a collection of volumes
+ [JsonProperty("Profiles", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
+ public IList Profiles { get; set; }
+
}
}
\ No newline at end of file
diff --git a/LayoutFunctions/CustomLayout/dependencies/SpaceBoundary.g.cs b/LayoutFunctions/CustomLayout/dependencies/SpaceBoundary.g.cs
index 38a59481..8ce5974d 100644
--- a/LayoutFunctions/CustomLayout/dependencies/SpaceBoundary.g.cs
+++ b/LayoutFunctions/CustomLayout/dependencies/SpaceBoundary.g.cs
@@ -27,7 +27,7 @@ namespace Elements
public partial class SpaceBoundary : GeometricElement
{
[JsonConstructor]
- public SpaceBoundary(Profile @boundary, IList @cells, double @area, double? @length, double? @depth, double @height, string @programGroup, string @programType, System.Guid? @level, System.Guid? @levelLayout, string @hyparSpaceType, Transform @transform = null, Material @material = null, Representation @representation = null, bool @isElementDefinition = false, System.Guid @id = default, string @name = null)
+ public SpaceBoundary(Profile @boundary, IList @cells, double @area, double? @length, double? @depth, double @height, string @programGroup, string @programType, System.Guid? @programRequirement, System.Guid? @level, System.Guid? @levelLayout, string @hyparSpaceType, string @defaultWallType, Transform @transform = null, Material @material = null, Representation @representation = null, bool @isElementDefinition = false, System.Guid @id = default, string @name = null)
: base(transform, material, representation, isElementDefinition, id, name)
{
this.Boundary = @boundary;
@@ -38,11 +38,14 @@ public SpaceBoundary(Profile @boundary, IList @cells, double @area, dou
this.Height = @height;
this.ProgramGroup = @programGroup;
this.ProgramType = @programType;
+ this.ProgramRequirement = @programRequirement;
this.Level = @level;
this.LevelLayout = @levelLayout;
this.HyparSpaceType = @hyparSpaceType;
+ this.DefaultWallType = @defaultWallType;
}
+
// Empty constructor
public SpaceBoundary()
: base()
@@ -78,9 +81,12 @@ public SpaceBoundary()
public string ProgramGroup { get; set; }
/// The name of the program type assigned to this space (like "Open Office" or "Meeting Room")
- [JsonProperty("Program Type", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
+ [JsonProperty("Program Type", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
public string ProgramType { get; set; }
+ [JsonProperty("Program Requirement", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
+ public System.Guid? ProgramRequirement { get; set; }
+
[JsonProperty("Level", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
public System.Guid? Level { get; set; }
@@ -92,6 +98,10 @@ public SpaceBoundary()
[JsonProperty("Hypar Space Type", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
public string HyparSpaceType { get; set; }
+ /// What wall type should generally be created for this space type? This may get overridden later on for a specific wall.
+ [JsonProperty("Default Wall Type", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
+ public string DefaultWallType { get; set; }
+
}
}
\ No newline at end of file
diff --git a/LayoutFunctions/CustomLayout/dependencies/ThickenedPolyline.g.cs b/LayoutFunctions/CustomLayout/dependencies/ThickenedPolyline.g.cs
deleted file mode 100644
index 01d3fec4..00000000
--- a/LayoutFunctions/CustomLayout/dependencies/ThickenedPolyline.g.cs
+++ /dev/null
@@ -1,63 +0,0 @@
-//----------------------
-//
-// Generated using the NJsonSchema v10.1.21.0 (Newtonsoft.Json v13.0.0.0) (http://NJsonSchema.org)
-//
-//----------------------
-using Elements;
-using Elements.GeoJSON;
-using Elements.Geometry;
-using Elements.Geometry.Solids;
-using Elements.Spatial;
-using Elements.Validators;
-using Elements.Serialization.JSON;
-using Newtonsoft.Json;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using Line = Elements.Geometry.Line;
-using Polygon = Elements.Geometry.Polygon;
-
-namespace Elements
-{
- #pragma warning disable // Disable all warnings
-
- /// A polyline that has been thickened into a polygon.
- [JsonConverter(typeof(Elements.Serialization.JSON.JsonInheritanceConverter), "discriminator")]
- [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "10.1.21.0 (Newtonsoft.Json v13.0.0.0)")]
- public partial class ThickenedPolyline
- {
- [JsonConstructor]
- public ThickenedPolyline(Polyline @polyline, double? @width, bool? @flip, double @leftWidth, double @rightWidth)
- {
- this.Polyline = @polyline;
- this.Width = @width;
- this.Flip = @flip;
- this.LeftWidth = @leftWidth;
- this.RightWidth = @rightWidth;
- }
-
- // Empty constructor
- public ThickenedPolyline()
- {
- }
-
- [JsonProperty("polyline", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
- public Polyline Polyline { get; set; }
-
- [JsonProperty("width", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
- public double? Width { get; set; }
-
- [JsonProperty("flip", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
- public bool? Flip { get; set; }
-
- /// The amount to thicken the polyline on its "left" side, imagining that the polyline is extending away from you. That is, if the polyline starts at (0,0,0) and follows the +Z axis, the left side extends into the -X quadrant.
- [JsonProperty("leftWidth", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
- public double LeftWidth { get; set; }
-
- /// The amount to thicken the polyline on its "right" side, imagining that the polyline is extending away from you. That is, if the polyline starts at (0,0,0) and follows the +Z axis, the right side extends into the +X quadrant.
- [JsonProperty("rightWidth", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
- public double RightWidth { get; set; }
-
-
- }
-}
\ No newline at end of file
diff --git a/LayoutFunctions/CustomLayout/src/Function.g.cs b/LayoutFunctions/CustomLayout/src/Function.g.cs
index 2f3b19cc..39f67cb3 100644
--- a/LayoutFunctions/CustomLayout/src/Function.g.cs
+++ b/LayoutFunctions/CustomLayout/src/Function.g.cs
@@ -2,7 +2,6 @@
// Edits to this code will be overwritten the next time you run 'hypar init'.
// DO NOT EDIT THIS FILE.
-using Amazon;
using Amazon.Lambda.Core;
using Hypar.Functions.Execution;
using Hypar.Functions.Execution.AWS;
@@ -19,9 +18,9 @@ public class Function
{
// Cache the model store for use by subsequent
// executions of this lambda.
- private IModelStore store;
+ private UrlModelStore store;
- public async Task Handler(CustomSpaceTypeInputs args, ILambdaContext context)
+ public async Task Handler(CustomSpaceTypeInputs args)
{
// Preload dependencies (if they exist),
// so that they are available during model deserialization.
@@ -61,9 +60,10 @@ public async Task Handler(CustomSpaceTypeInputs args, IL
Console.WriteLine($"Time to load assemblies: {sw.Elapsed.TotalSeconds})");
if(this.store == null)
- {
- this.store = new S3ModelStore(RegionEndpoint.GetBySystemName("us-west-1"));
+ {
+ this.store = new UrlModelStore();
}
+
var l = new InvocationWrapper (store, CustomSpaceType.Execute);
var output = await l.InvokeAsync(args);
diff --git a/LayoutFunctions/Doors/dependencies/Doors.Dependencies.csproj b/LayoutFunctions/Doors/dependencies/Doors.Dependencies.csproj
index 7921c7cf..2278995c 100644
--- a/LayoutFunctions/Doors/dependencies/Doors.Dependencies.csproj
+++ b/LayoutFunctions/Doors/dependencies/Doors.Dependencies.csproj
@@ -6,10 +6,10 @@
enable
false
-
+
-
-
+
+
diff --git a/LayoutFunctions/InteriorPartitions/dependencies/InteriorPartitions.Dependencies.csproj b/LayoutFunctions/InteriorPartitions/dependencies/InteriorPartitions.Dependencies.csproj
index 46ab0539..be59e5d1 100644
--- a/LayoutFunctions/InteriorPartitions/dependencies/InteriorPartitions.Dependencies.csproj
+++ b/LayoutFunctions/InteriorPartitions/dependencies/InteriorPartitions.Dependencies.csproj
@@ -7,7 +7,7 @@
-
-
+
+
\ No newline at end of file
diff --git a/LayoutFunctions/InteriorPartitions/dependencies/InteriorPartitionsInputs.g.cs b/LayoutFunctions/InteriorPartitions/dependencies/InteriorPartitionsInputs.g.cs
index b0054114..e7e23821 100644
--- a/LayoutFunctions/InteriorPartitions/dependencies/InteriorPartitionsInputs.g.cs
+++ b/LayoutFunctions/InteriorPartitions/dependencies/InteriorPartitionsInputs.g.cs
@@ -24,13 +24,13 @@ namespace InteriorPartitions
[System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "10.1.21.0 (Newtonsoft.Json v13.0.0.0)")]
- public class InteriorPartitionsInputs : S3Args
+ public class InteriorPartitionsInputs : ArgsBase
{
[Newtonsoft.Json.JsonConstructor]
- public InteriorPartitionsInputs(string bucketName, string uploadsBucket, Dictionary modelInputKeys, string gltfKey, string elementsKey, string ifcKey):
- base(bucketName, uploadsBucket, modelInputKeys, gltfKey, elementsKey, ifcKey)
+ public InteriorPartitionsInputs(Dictionary modelInputKeys, string gltfKey, string elementsKey, string ifcKey):
+ base(modelInputKeys, gltfKey, elementsKey, ifcKey)
{
var validator = Validator.Instance.GetFirstValidatorForType();
if(validator != null)
diff --git a/LayoutFunctions/InteriorPartitions/dependencies/InteriorPartitionsOutputs.g.cs b/LayoutFunctions/InteriorPartitions/dependencies/InteriorPartitionsOutputs.g.cs
index d161b0d8..4a1dad08 100644
--- a/LayoutFunctions/InteriorPartitions/dependencies/InteriorPartitionsOutputs.g.cs
+++ b/LayoutFunctions/InteriorPartitions/dependencies/InteriorPartitionsOutputs.g.cs
@@ -17,16 +17,13 @@ namespace InteriorPartitions
public class InteriorPartitionsOutputs: SystemResults
{
-
///
/// Construct a InteriorPartitionsOutputs with default inputs.
/// This should be used for testing only.
///
public InteriorPartitionsOutputs() : base()
{
-
}
-
}
}
\ No newline at end of file
diff --git a/LayoutFunctions/InteriorPartitions/hypar.json b/LayoutFunctions/InteriorPartitions/hypar.json
index 712bf92f..ade06792 100644
--- a/LayoutFunctions/InteriorPartitions/hypar.json
+++ b/LayoutFunctions/InteriorPartitions/hypar.json
@@ -5,6 +5,10 @@
"description": "Produce all interior partition elements.",
"language": "C#",
"model_output": "Interior Partitions",
+ "input_schema": {
+ "type": "object",
+ "properties": {}
+ },
"model_dependencies": [
{
"autohide": false,
diff --git a/LayoutFunctions/InteriorPartitions/server/InteriorPartitions.Server.csproj b/LayoutFunctions/InteriorPartitions/server/InteriorPartitions.Server.csproj
index 2ad25bcc..bc5b5bf0 100644
--- a/LayoutFunctions/InteriorPartitions/server/InteriorPartitions.Server.csproj
+++ b/LayoutFunctions/InteriorPartitions/server/InteriorPartitions.Server.csproj
@@ -1,11 +1,11 @@
-
-
+
+
-
-
+
+
diff --git a/LayoutFunctions/InteriorPartitions/server/Program.cs b/LayoutFunctions/InteriorPartitions/server/Program.cs
index 77107695..a52c2af2 100644
--- a/LayoutFunctions/InteriorPartitions/server/Program.cs
+++ b/LayoutFunctions/InteriorPartitions/server/Program.cs
@@ -19,7 +19,7 @@ await HyparServer.StartAsync(
var input = executionRequest.Args.ToObject();
var function = new InteriorPartitions.Function();
Directory.SetCurrentDirectory(Path.GetDirectoryName(typeof(InteriorPartitions.Function).Assembly.Location)!);
- return await function.Handler(input, null);
+ return await function.Handler(input);
});
}
}
diff --git a/LayoutFunctions/InteriorPartitions/src/Function.g.cs b/LayoutFunctions/InteriorPartitions/src/Function.g.cs
index 8e5ed46d..dcf09b0a 100644
--- a/LayoutFunctions/InteriorPartitions/src/Function.g.cs
+++ b/LayoutFunctions/InteriorPartitions/src/Function.g.cs
@@ -2,7 +2,6 @@
// Edits to this code will be overwritten the next time you run 'hypar init'.
// DO NOT EDIT THIS FILE.
-using Amazon;
using Amazon.Lambda.Core;
using Hypar.Functions.Execution;
using Hypar.Functions.Execution.AWS;
@@ -19,9 +18,9 @@ public class Function
{
// Cache the model store for use by subsequent
// executions of this lambda.
- private IModelStore store;
+ private UrlModelStore store;
- public async Task Handler(InteriorPartitionsInputs args, ILambdaContext context)
+ public async Task Handler(InteriorPartitionsInputs args)
{
// Preload dependencies (if they exist),
// so that they are available during model deserialization.
@@ -61,15 +60,8 @@ public async Task Handler(InteriorPartitionsInputs ar
Console.WriteLine($"Time to load assemblies: {sw.Elapsed.TotalSeconds})");
if(this.store == null)
- {
- if (args.SignedResourceUrls == null)
- {
- this.store = new S3ModelStore(RegionEndpoint.GetBySystemName("us-west-1"));
- }
- else
- {
- this.store = new UrlModelStore();
- }
+ {
+ this.store = new UrlModelStore();
}
diff --git a/LayoutFunctions/LayoutFunctionCommon/LayoutFunctionCommon.csproj b/LayoutFunctions/LayoutFunctionCommon/LayoutFunctionCommon.csproj
index dc3f4255..b3d15506 100644
--- a/LayoutFunctions/LayoutFunctionCommon/LayoutFunctionCommon.csproj
+++ b/LayoutFunctions/LayoutFunctionCommon/LayoutFunctionCommon.csproj
@@ -17,12 +17,9 @@
-
-
-
-
+
+
+
-
\ No newline at end of file
diff --git a/LayoutFunctions/LayoutFunctionCommon/LayoutFunctionCommon.sln b/LayoutFunctions/LayoutFunctionCommon/LayoutFunctionCommon.sln
new file mode 100644
index 00000000..b3f5e36d
--- /dev/null
+++ b/LayoutFunctions/LayoutFunctionCommon/LayoutFunctionCommon.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.5.002.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LayoutFunctionCommon", "LayoutFunctionCommon.csproj", "{A1BEC0CD-5616-4449-8FC1-34970FE25530}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {A1BEC0CD-5616-4449-8FC1-34970FE25530}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A1BEC0CD-5616-4449-8FC1-34970FE25530}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A1BEC0CD-5616-4449-8FC1-34970FE25530}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A1BEC0CD-5616-4449-8FC1-34970FE25530}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {549068C4-D22F-4B76-98AD-D28A5717D303}
+ EndGlobalSection
+EndGlobal
diff --git a/LayoutFunctions/LayoutFunctionCommon/LayoutStrategies.cs b/LayoutFunctions/LayoutFunctionCommon/LayoutStrategies.cs
index d365052e..1883daa3 100644
--- a/LayoutFunctions/LayoutFunctionCommon/LayoutStrategies.cs
+++ b/LayoutFunctions/LayoutFunctionCommon/LayoutStrategies.cs
@@ -40,7 +40,7 @@ public static LayoutInstantiated InstantiateLayoutByFit(SpaceConfiguration confi
}
var baseRectangle = Polygon.Rectangle(layoutInstantiated.Config.CellBoundary.Min, layoutInstantiated.Config.CellBoundary.Max);
- // This null url check is needed because a few configs got generated with instances that weren't contentelements.
+ // This null url check is needed because a few configs got generated with instances that weren't contentelements.
// We've fixed this API-side, but there might be a few configs circa 2023-09 that need this.
foreach (var contentItem in layoutInstantiated.Config.ContentItems.ToArray())
{
@@ -54,6 +54,7 @@ public static LayoutInstantiated InstantiateLayoutByFit(SpaceConfiguration confi
var componentDefinition = new ComponentDefinition(rules, layoutInstantiated.Config.Anchors());
layoutInstantiated.Instance = componentDefinition.Instantiate(ContentConfiguration.AnchorsFromRect(rectangle.TransformedPolygon(xform)));
+
return layoutInstantiated;
}
@@ -238,7 +239,7 @@ public static HashSet StandardLayoutOnAllLevels
/// Basically the same as StandardLayoutOnAllLevels, but without the actual furniture layout part — just the wall creation.
- ///
+ ///
public static void GenerateWallsForAllSpaces(
IEnumerable spaceBoundaries,
Dictionary inputModels,
@@ -353,6 +354,7 @@ private static bool ProcessRoom(
SetLevelVolume(layout.Instance, levelVolume?.Id);
wallCandidateLines.AddRange(WallCandidates);
+
outputModel.AddElement(layout.Instance);
if (countSeats != null)
diff --git a/SpaceConfigurationFromModel/dependencies/CirculationSegment.g.cs b/SpaceConfigurationFromModel/dependencies/CirculationSegment.g.cs
index de3dcd58..11c6596f 100644
--- a/SpaceConfigurationFromModel/dependencies/CirculationSegment.g.cs
+++ b/SpaceConfigurationFromModel/dependencies/CirculationSegment.g.cs
@@ -19,7 +19,7 @@
namespace Elements
{
- #pragma warning disable // Disable all warnings
+#pragma warning disable // Disable all warnings
/// Represents a section of a circulation network, such as a corridor.
[JsonConverter(typeof(Elements.Serialization.JSON.JsonInheritanceConverter), "discriminator")]
@@ -31,18 +31,18 @@ public CirculationSegment(ThickenedPolyline @geometry, Profile @profile, double
: base(profile, thickness, level, transform, material, representation, isElementDefinition, id, name)
{
this.Geometry = @geometry;
- }
-
+ }
+
// Empty constructor
public CirculationSegment()
: base()
{
}
-
+
/// The geometry of this circulation segment
[JsonProperty("Geometry", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
public ThickenedPolyline Geometry { get; set; }
-
-
+
+
}
}
\ No newline at end of file
diff --git a/SpaceConfigurationFromModel/dependencies/Floor.g.cs b/SpaceConfigurationFromModel/dependencies/Floor.g.cs
new file mode 100644
index 00000000..a35b1974
--- /dev/null
+++ b/SpaceConfigurationFromModel/dependencies/Floor.g.cs
@@ -0,0 +1,59 @@
+//----------------------
+//
+// Generated using the NJsonSchema v10.1.21.0 (Newtonsoft.Json v13.0.0.0) (http://NJsonSchema.org)
+//
+//----------------------
+using Elements;
+using Elements.GeoJSON;
+using Elements.Geometry;
+using Elements.Geometry.Solids;
+using Elements.Spatial;
+using Elements.Validators;
+using Elements.Serialization.JSON;
+using Newtonsoft.Json;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using Line = Elements.Geometry.Line;
+using Polygon = Elements.Geometry.Polygon;
+
+namespace Elements
+{
+ #pragma warning disable // Disable all warnings
+
+ /// Represents an abstract building floor
+ [JsonConverter(typeof(Elements.Serialization.JSON.JsonInheritanceConverter), "discriminator")]
+ [System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "10.1.21.0 (Newtonsoft.Json v13.0.0.0)")]
+ public partial class Floor : GeometricElement
+ {
+ [JsonConstructor]
+ public Floor(Profile @profile, double @thickness, System.Guid? @level, Transform @transform = null, Material @material = null, Representation @representation = null, bool @isElementDefinition = false, System.Guid @id = default, string @name = null)
+ : base(transform, material, representation, isElementDefinition, id, name)
+ {
+ this.Profile = @profile;
+ this.Thickness = @thickness;
+ this.Level = @level;
+ }
+
+
+ // Empty constructor
+ public Floor()
+ : base()
+ {
+ }
+
+ /// The untransformed profile of the floor.
+ [JsonProperty("Profile", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
+ public Profile Profile { get; set; }
+
+ /// The thickness of the floor.
+ [JsonProperty("Thickness", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
+ public double Thickness { get; set; }
+
+ /// The level this floor belongs to
+ [JsonProperty("Level", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
+ public System.Guid? Level { get; set; }
+
+
+ }
+}
\ No newline at end of file
diff --git a/SpaceConfigurationFromModel/dependencies/LevelElements.g.cs b/SpaceConfigurationFromModel/dependencies/LevelElements.g.cs
index dd221b85..3b715315 100644
--- a/SpaceConfigurationFromModel/dependencies/LevelElements.g.cs
+++ b/SpaceConfigurationFromModel/dependencies/LevelElements.g.cs
@@ -34,6 +34,7 @@ public LevelElements(IList @elements, System.Guid @level, System.Guid @
this.Level = @level;
}
+
// Empty constructor
public LevelElements()
: base()
diff --git a/SpaceConfigurationFromModel/dependencies/LevelVolume.g.cs b/SpaceConfigurationFromModel/dependencies/LevelVolume.g.cs
index d3164fe8..be2fb359 100644
--- a/SpaceConfigurationFromModel/dependencies/LevelVolume.g.cs
+++ b/SpaceConfigurationFromModel/dependencies/LevelVolume.g.cs
@@ -27,7 +27,7 @@ namespace Elements
public partial class LevelVolume : GeometricElement
{
[JsonConstructor]
- public LevelVolume(Profile @profile, double @height, double @area, string @buildingName, System.Guid? @level, System.Guid? @mass, System.Guid? @planView, Transform @transform = null, Material @material = null, Representation @representation = null, bool @isElementDefinition = false, System.Guid @id = default, string @name = null)
+ public LevelVolume(Profile @profile, double @height, double @area, string @buildingName, System.Guid? @level, System.Guid? @mass, System.Guid? @planView, IList @profiles, Transform @transform = null, Material @material = null, Representation @representation = null, bool @isElementDefinition = false, System.Guid @id = default, string @name = null)
: base(transform, material, representation, isElementDefinition, id, name)
{
this.Profile = @profile;
@@ -37,8 +37,10 @@ public LevelVolume(Profile @profile, double @height, double @area, string @build
this.Level = @level;
this.Mass = @mass;
this.PlanView = @planView;
+ this.Profiles = @profiles;
}
+
// Empty constructor
public LevelVolume()
: base()
@@ -73,6 +75,10 @@ public LevelVolume()
[JsonProperty("Plan View", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
public System.Guid? PlanView { get; set; }
+ /// Multiple profiles used for a collection of volumes
+ [JsonProperty("Profiles", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
+ public IList Profiles { get; set; }
+
}
}
\ No newline at end of file
diff --git a/SpaceConfigurationFromModel/dependencies/ServiceCore.g.cs b/SpaceConfigurationFromModel/dependencies/ServiceCore.g.cs
index 4e67c4b2..4f25de8f 100644
--- a/SpaceConfigurationFromModel/dependencies/ServiceCore.g.cs
+++ b/SpaceConfigurationFromModel/dependencies/ServiceCore.g.cs
@@ -36,6 +36,7 @@ public ServiceCore(Profile @profile, double @elevation, double @height, Vector3
this.Centroid = @centroid;
}
+
// Empty constructor
public ServiceCore()
: base()
diff --git a/SpaceConfigurationFromModel/dependencies/SpaceBoundary.g.cs b/SpaceConfigurationFromModel/dependencies/SpaceBoundary.g.cs
index 38a59481..8ce5974d 100644
--- a/SpaceConfigurationFromModel/dependencies/SpaceBoundary.g.cs
+++ b/SpaceConfigurationFromModel/dependencies/SpaceBoundary.g.cs
@@ -27,7 +27,7 @@ namespace Elements
public partial class SpaceBoundary : GeometricElement
{
[JsonConstructor]
- public SpaceBoundary(Profile @boundary, IList @cells, double @area, double? @length, double? @depth, double @height, string @programGroup, string @programType, System.Guid? @level, System.Guid? @levelLayout, string @hyparSpaceType, Transform @transform = null, Material @material = null, Representation @representation = null, bool @isElementDefinition = false, System.Guid @id = default, string @name = null)
+ public SpaceBoundary(Profile @boundary, IList @cells, double @area, double? @length, double? @depth, double @height, string @programGroup, string @programType, System.Guid? @programRequirement, System.Guid? @level, System.Guid? @levelLayout, string @hyparSpaceType, string @defaultWallType, Transform @transform = null, Material @material = null, Representation @representation = null, bool @isElementDefinition = false, System.Guid @id = default, string @name = null)
: base(transform, material, representation, isElementDefinition, id, name)
{
this.Boundary = @boundary;
@@ -38,11 +38,14 @@ public SpaceBoundary(Profile @boundary, IList @cells, double @area, dou
this.Height = @height;
this.ProgramGroup = @programGroup;
this.ProgramType = @programType;
+ this.ProgramRequirement = @programRequirement;
this.Level = @level;
this.LevelLayout = @levelLayout;
this.HyparSpaceType = @hyparSpaceType;
+ this.DefaultWallType = @defaultWallType;
}
+
// Empty constructor
public SpaceBoundary()
: base()
@@ -78,9 +81,12 @@ public SpaceBoundary()
public string ProgramGroup { get; set; }
/// The name of the program type assigned to this space (like "Open Office" or "Meeting Room")
- [JsonProperty("Program Type", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
+ [JsonProperty("Program Type", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
public string ProgramType { get; set; }
+ [JsonProperty("Program Requirement", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
+ public System.Guid? ProgramRequirement { get; set; }
+
[JsonProperty("Level", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
public System.Guid? Level { get; set; }
@@ -92,6 +98,10 @@ public SpaceBoundary()
[JsonProperty("Hypar Space Type", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
public string HyparSpaceType { get; set; }
+ /// What wall type should generally be created for this space type? This may get overridden later on for a specific wall.
+ [JsonProperty("Default Wall Type", Required = Newtonsoft.Json.Required.Default, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
+ public string DefaultWallType { get; set; }
+
}
}
\ No newline at end of file
diff --git a/SpaceConfigurationFromModel/dependencies/SpaceConfigurationFromModel.Dependencies.csproj b/SpaceConfigurationFromModel/dependencies/SpaceConfigurationFromModel.Dependencies.csproj
index 3d763458..eae284d8 100644
--- a/SpaceConfigurationFromModel/dependencies/SpaceConfigurationFromModel.Dependencies.csproj
+++ b/SpaceConfigurationFromModel/dependencies/SpaceConfigurationFromModel.Dependencies.csproj
@@ -7,9 +7,9 @@
-
-
-
+
+
+
diff --git a/SpaceConfigurationFromModel/dependencies/SpaceConfigurationFromModelInputs.g.cs b/SpaceConfigurationFromModel/dependencies/SpaceConfigurationFromModelInputs.g.cs
index d9d98faa..f4fc7b73 100644
--- a/SpaceConfigurationFromModel/dependencies/SpaceConfigurationFromModelInputs.g.cs
+++ b/SpaceConfigurationFromModel/dependencies/SpaceConfigurationFromModelInputs.g.cs
@@ -24,13 +24,13 @@ namespace SpaceConfigurationFromModel
[System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "10.1.21.0 (Newtonsoft.Json v13.0.0.0)")]
- public class SpaceConfigurationFromModelInputs : S3Args
+ public class SpaceConfigurationFromModelInputs : ArgsBase
{
[Newtonsoft.Json.JsonConstructor]
- public SpaceConfigurationFromModelInputs(string @program, InputData @modelFile, string bucketName, string uploadsBucket, Dictionary modelInputKeys, string gltfKey, string elementsKey, string ifcKey):
- base(bucketName, uploadsBucket, modelInputKeys, gltfKey, elementsKey, ifcKey)
+ public SpaceConfigurationFromModelInputs(string @program, InputData @modelFile, Dictionary modelInputKeys, string gltfKey, string elementsKey, string ifcKey):
+ base(modelInputKeys, gltfKey, elementsKey, ifcKey)
{
var validator = Validator.Instance.GetFirstValidatorForType();
if(validator != null)
diff --git a/SpaceConfigurationFromModel/dependencies/SpaceConfigurationFromModelOutputs.g.cs b/SpaceConfigurationFromModel/dependencies/SpaceConfigurationFromModelOutputs.g.cs
index adc9e1ee..a3c61655 100644
--- a/SpaceConfigurationFromModel/dependencies/SpaceConfigurationFromModelOutputs.g.cs
+++ b/SpaceConfigurationFromModel/dependencies/SpaceConfigurationFromModelOutputs.g.cs
@@ -17,16 +17,13 @@ namespace SpaceConfigurationFromModel
public class SpaceConfigurationFromModelOutputs: SystemResults
{
-
///
/// Construct a SpaceConfigurationFromModelOutputs with default inputs.
/// This should be used for testing only.
///
public SpaceConfigurationFromModelOutputs() : base()
{
-
}
-
}
}
\ No newline at end of file
diff --git a/SpaceConfigurationFromModel/dependencies/ThickenedPolyline.g.cs b/SpaceConfigurationFromModel/dependencies/ThickenedPolyline.g.cs
index 01d3fec4..cc1ed83c 100644
--- a/SpaceConfigurationFromModel/dependencies/ThickenedPolyline.g.cs
+++ b/SpaceConfigurationFromModel/dependencies/ThickenedPolyline.g.cs
@@ -36,6 +36,7 @@ public ThickenedPolyline(Polyline @polyline, double? @width, bool? @flip, double
this.RightWidth = @rightWidth;
}
+
// Empty constructor
public ThickenedPolyline()
{
diff --git a/SpaceConfigurationFromModel/src/Function.g.cs b/SpaceConfigurationFromModel/src/Function.g.cs
index 1ecde948..08e03fee 100644
--- a/SpaceConfigurationFromModel/src/Function.g.cs
+++ b/SpaceConfigurationFromModel/src/Function.g.cs
@@ -2,7 +2,6 @@
// Edits to this code will be overwritten the next time you run 'hypar init'.
// DO NOT EDIT THIS FILE.
-using Amazon;
using Amazon.Lambda.Core;
using Hypar.Functions.Execution;
using Hypar.Functions.Execution.AWS;
@@ -19,9 +18,9 @@ public class Function
{
// Cache the model store for use by subsequent
// executions of this lambda.
- private IModelStore store;
+ private UrlModelStore store;
- public async Task Handler(SpaceConfigurationFromModelInputs args, ILambdaContext context)
+ public async Task Handler(SpaceConfigurationFromModelInputs args)
{
// Preload dependencies (if they exist),
// so that they are available during model deserialization.
@@ -61,16 +60,10 @@ public async Task Handler(SpaceConfiguration
Console.WriteLine($"Time to load assemblies: {sw.Elapsed.TotalSeconds})");
if(this.store == null)
- {
- if (args.SignedResourceUrls == null)
- {
- this.store = new S3ModelStore(RegionEndpoint.GetBySystemName("us-west-1"));
- }
- else
- {
- this.store = new UrlModelStore();
- }
+ {
+ this.store = new UrlModelStore();
}
+
var l = new InvocationWrapper (store, SpaceConfigurationFromModel.Execute);
var output = await l.InvokeAsync(args);