SS.Architecture 1.8.0
Dimensioned building topology and recalculated quantities, accessible circulation, canonical IFC round-trip diff, spatial graphs, components, schedules, design selection, and bounded IFC4 STEP exchange
Language compatibility: >=1.0.0 <2.0.0
Runtime compatibility: >=1.0.0 <2.0.0
Dependencies: SS.Geometry >=1.0.0 <2.0.0
Public API
export record AccessibleCirculationResult(public bool connected, public bool compliant, public string originRoomId, public string destinationRoomId, public m pathLength, public double maximumSlope, public m minimumClearWidth, public int traversedEdges, public string ruleIdentity, public string diagnostic)Parameters: connected: bool, compliant: bool, originRoomId: string, destinationRoomId: string, pathLength: m, maximumSlope: double, minimumClearWidth: m, traversedEdges: int, ruleIdentity: string, diagnostic: string
export function accessibleCirculationRuleSet(string jurisdiction, string edition, string ruleIdentity, double maximumSlope, m minimumClearWidth)->AccessibleCirculationRuleSetParameters: jurisdiction: string, edition: string, ruleIdentity: string, maximumSlope: double, minimumClearWidth: m
export record AccessibleCirculationRuleSet(public string jurisdiction, public string edition, public string ruleIdentity, public double maximumSlope, public m minimumClearWidth)Parameters: jurisdiction: string, edition: string, ruleIdentity: string, maximumSlope: double, minimumClearWidth: m
Architecture.accessibleRoute
export function accessibleRoute(m[] segmentLengths, m[] rises, m[] clearWidths, double maximumAllowedSlope, m minimumAllowedWidth)->RouteResultParameters: segmentLengths: m[], rises: m[], clearWidths: m[], maximumAllowedSlope: double, minimumAllowedWidth: m
Architecture.appendIfcEntity
export function appendIfcEntity(IfcModel model, IfcEntity value)->IfcModelParameters: model: IfcModel, value: IfcEntity
export record BuildingRuleSet(public string jurisdiction, public string edition, public string ruleIdentity, public m maximumTravelDistance, public m minimumExitWidth, public int maximumOccupantsPerExit)Parameters: jurisdiction: string, edition: string, ruleIdentity: string, maximumTravelDistance: m, minimumExitWidth: m, maximumOccupantsPerExit: int
export record BuildingTopologyValidation(public bool valid, public int invalidRoomFaceCount, public int disconnectedComponentCount, public int unresolvedOpeningCount, public int incompatibleOpeningCount, public string diagnostic)Parameters: valid: bool, invalidRoomFaceCount: int, disconnectedComponentCount: int, unresolvedOpeningCount: int, incompatibleOpeningCount: int, diagnostic: string
Architecture.checkEgress
export function checkEgress(BuildingRuleSet rules, int occupants, int suppliedExits, m narrowestExitWidth, m travelDistance)->EgressResultParameters: rules: BuildingRuleSet, occupants: int, suppliedExits: int, narrowestExitWidth: m, travelDistance: m
Architecture.classifyIfcEntity
export function classifyIfcEntity(IfcEntity entity, IfcClassification classification)->IfcEntityParameters: entity: IfcEntity, classification: IfcClassification
Architecture.componentSchedule
export function componentSchedule(Slab[] slabs, Roof[] roofs, Stair[] stairs, Ramp[] ramps, EnvelopeAssembly[] envelopes)->ComponentScheduleParameters: slabs: Slab[], roofs: Roof[], stairs: Stair[], ramps: Ramp[], envelopes: EnvelopeAssembly[]
export record ComponentSchedule(public int slabCount, public int roofCount, public int stairCount, public int rampCount, public double slabVolumeCubicMetres, public double envelopeAreaSquareMetres)Parameters: slabCount: int, roofCount: int, stairCount: int, rampCount: int, slabVolumeCubicMetres: double, envelopeAreaSquareMetres: double
Architecture.connected
export function connected(SpatialGraph graph, string firstRoomId, string secondRoomId)->boolParameters: graph: SpatialGraph, firstRoomId: string, secondRoomId: string
export function connectedComponentCount(SpatialGraph graph)->intParameters: graph: SpatialGraph
Architecture.daylightFactor
export function daylightFactor(double windowAreaSquareMetres, double roomAreaSquareMetres, double visibleTransmittance, double skyAngleFactor)->DaylightResultParameters: windowAreaSquareMetres: double, roomAreaSquareMetres: double, visibleTransmittance: double, skyAngleFactor: double
export record DaylightResult(public double daylightFactorPercent, public double glazedRatio, public bool withinModelDomain)Parameters: daylightFactorPercent: double, glazedRatio: double, withinModelDomain: bool
Architecture.designAlternative
export function designAlternative(string id, double floorAreaSquareMetres, double daylightFactorPercent, double annualEnergyProxy, double costProxy)->DesignAlternativeParameters: id: string, floorAreaSquareMetres: double, daylightFactorPercent: double, annualEnergyProxy: double, costProxy: double
export record DesignAlternative(public string id, public double floorAreaSquareMetres, public double daylightFactorPercent, public double annualEnergyProxy, public double costProxy)Parameters: id: string, floorAreaSquareMetres: double, daylightFactorPercent: double, annualEnergyProxy: double, costProxy: double
Architecture.designRequirement
export function designRequirement(string id, double minimumFloorAreaSquareMetres, double minimumDaylightFactorPercent, double maximumAnnualEnergyProxy, double maximumCostProxy)->DesignRequirementParameters: id: string, minimumFloorAreaSquareMetres: double, minimumDaylightFactorPercent: double, maximumAnnualEnergyProxy: double, maximumCostProxy: double
export record DesignRequirement(public string id, public double minimumFloorAreaSquareMetres, public double minimumDaylightFactorPercent, public double maximumAnnualEnergyProxy, public double maximumCostProxy)Parameters: id: string, minimumFloorAreaSquareMetres: double, minimumDaylightFactorPercent: double, maximumAnnualEnergyProxy: double, maximumCostProxy: double
export record DesignSelection(public string alternativeId, public bool feasible, public double normalizedObjective, public string requirementId, public string diagnostic)Parameters: alternativeId: string, feasible: bool, normalizedObjective: double, requirementId: string, diagnostic: string
export record EgressResult(public int requiredExits, public int suppliedExits, public m travelDistance, public bool compliant, public string ruleIdentity, public string diagnostic)Parameters: requiredExits: int, suppliedExits: int, travelDistance: m, compliant: bool, ruleIdentity: string, diagnostic: string
Architecture.engineeringCoupling
export function engineeringCoupling(string alternativeId, double structuralLoadKiloNewtons, EnvelopeAssembly[] envelopes, double conditionedVolumeCubicMetres)->EngineeringCouplingParameters: alternativeId: string, structuralLoadKiloNewtons: double, envelopes: EnvelopeAssembly[], conditionedVolumeCubicMetres: double
export record EngineeringCoupling(public string alternativeId, public double structuralLoadKiloNewtons, public double envelopeHeatLossWattsPerKelvin, public double conditionedVolumeCubicMetres)Parameters: alternativeId: string, structuralLoadKiloNewtons: double, envelopeHeatLossWattsPerKelvin: double, conditionedVolumeCubicMetres: double
Architecture.envelopeArea
export function envelopeArea(Wall[] walls)->doubleParameters: walls: Wall[]
Architecture.envelopeAssembly
export function envelopeAssembly(string id, double areaSquareMetres, double thermalTransmittance, string construction)->EnvelopeAssemblyParameters: id: string, areaSquareMetres: double, thermalTransmittance: double, construction: string
export record EnvelopeAssembly(public string id, public double areaSquareMetres, public double thermalTransmittance, public string construction)Parameters: id: string, areaSquareMetres: double, thermalTransmittance: double, construction: string
Architecture.grossFloorArea
export function grossFloorArea(Room[] rooms)->doubleParameters: rooms: Room[]
Architecture.ifcClassification
export function ifcClassification(string system, string edition, string code, string name, string uri)->IfcClassificationParameters: system: string, edition: string, code: string, name: string, uri: string
export record IfcClassification(public string system, public string edition, public string code, public string name, public string uri)Parameters: system: string, edition: string, code: string, name: string, uri: string
Architecture.ifcEntity
export function ifcEntity(string globalId, string entityType, string name, string containerGlobalId, IfcProperty[] properties)->IfcEntityParameters: globalId: string, entityType: string, name: string, containerGlobalId: string, properties: IfcProperty[]
Architecture.IfcEntity
export record IfcEntity(public string globalId, public string entityType, public string name, public string containerGlobalId, public IfcProperty[] properties)Parameters: globalId: string, entityType: string, name: string, containerGlobalId: string, properties: IfcProperty[]
Architecture.ifcEntityByGlobalId
export function ifcEntityByGlobalId(IfcModel model, string globalId)->IfcEntityParameters: model: IfcModel, globalId: string
Architecture.ifcModel
export function ifcModel(string schema, string projectGlobalId, IfcEntity[] entities)->IfcModelParameters: schema: string, projectGlobalId: string, entities: IfcEntity[]
Architecture.IfcModel
export record IfcModel(public string schema, public string projectGlobalId, public IfcEntity[] entities)Parameters: schema: string, projectGlobalId: string, entities: IfcEntity[]
export record IfcModelView(public string name, public string[] entityTypes, public IfcEntity[] entities)Parameters: name: string, entityTypes: string[], entities: IfcEntity[]
Architecture.ifcProperty
export function ifcProperty(string name, string value, string unitSymbol)->IfcPropertyParameters: name: string, value: string, unitSymbol: string
Architecture.IfcProperty
export record IfcProperty(public string name, public string value, public string unitSymbol)Parameters: name: string, value: string, unitSymbol: string
Architecture.ifcRoundTripDiff
export function ifcRoundTripDiff(IfcModel canonical, IfcModel roundTripped)->IfcRoundTripDifferenceParameters: canonical: IfcModel, roundTripped: IfcModel
export record IfcRoundTripDifference(public bool equivalent, public string[] missingGlobalIds, public string[] addedGlobalIds, public string[] changedGlobalIds, public int canonicalEntityCount, public int roundTrippedEntityCount)Parameters: equivalent: bool, missingGlobalIds: string[], addedGlobalIds: string[], changedGlobalIds: string[], canonicalEntityCount: int, roundTrippedEntityCount: int
Architecture.ifcSpace
export function ifcSpace(Room value, string globalId, string storeyGlobalId)->IfcEntityParameters: value: Room, globalId: string, storeyGlobalId: string
Architecture.ifcStep
export function ifcStep(IfcModel model)->stringParameters: model: IfcModel
export record IfcValidation(public bool valid, public int entityCount, public int propertyCount, public string diagnostic)Parameters: valid: bool, entityCount: int, propertyCount: int, diagnostic: string
Architecture.ifcView
export function ifcView(IfcModel model, string name, string[] entityTypes)->IfcModelViewParameters: model: IfcModel, name: string, entityTypes: string[]
Architecture.ifcWall
export function ifcWall(Wall value, string globalId, string storeyGlobalId)->IfcEntityParameters: value: Wall, globalId: string, storeyGlobalId: string
Architecture.level
export function level(int index, string id, string name, m elevation, m floorToFloorHeight)->LevelParameters: index: int, id: string, name: string, elevation: m, floorToFloorHeight: m
Architecture.Level
export record Level(public int index, public string id, public string name, public m elevation, public m floorToFloorHeight)Parameters: index: int, id: string, name: string, elevation: m, floorToFloorHeight: m
export record LevelSummary(public int level, public m elevation, public int roomCount, public double floorAreaSquareMetres)Parameters: level: int, elevation: m, roomCount: int, floorAreaSquareMetres: double
Architecture.massing
export function massing(Polygon2 footprint, m height, int levels)->MassingParameters: footprint: Polygon2, height: m, levels: int
Architecture.Massing
export record Massing(public Polygon2 footprint, public m height, public int levels)Parameters: footprint: Polygon2, height: m, levels: int
Architecture.massingVolume
export function massingVolume(Massing value)->doubleParameters: value: Massing
export function minimumBoundaryDistance(Polygon2 boundary, Point2 point)->mParameters: boundary: Polygon2, point: Point2
Architecture.opening
export function opening(string id, string wallId, m width, m height, m sillHeight, string kind)->OpeningParameters: id: string, wallId: string, width: m, height: m, sillHeight: m, kind: string
Architecture.Opening
export record Opening(public string id, public string wallId, public m width, public m height, public m sillHeight, public string kind)Parameters: id: string, wallId: string, width: m, height: m, sillHeight: m, kind: string
Architecture.openingArea
export function openingArea(Opening[] openings)->doubleParameters: openings: Opening[]
Architecture.optimizeOrientation
export function optimizeOrientation(double[] candidates, double[] annualSolarProxy, double targetProxy)->OrientationAlternativeParameters: candidates: double[], annualSolarProxy: double[], targetProxy: double
export record OrientationAlternative(public double orientationRadians, public double annualProxyScore, public bool feasible)Parameters: orientationRadians: double, annualProxyScore: double, feasible: bool
Architecture.parseIfcStep
export function parseIfcStep(string text)->IfcModelParameters: text: string
export function parseIfcStepStandard(string text)->IfcModelParameters: text: string
Architecture.quantities
export function quantities(Room[] rooms, Wall[] walls, Opening[] openings, Massing value)->QuantityScheduleParameters: rooms: Room[], walls: Wall[], openings: Opening[], value: Massing
export record QuantitySchedule(public double floorAreaSquareMetres, public double envelopeAreaSquareMetres, public double volumeCubicMetres, public int roomCount, public int wallCount, public int openingCount)Parameters: floorAreaSquareMetres: double, envelopeAreaSquareMetres: double, volumeCubicMetres: double, roomCount: int, wallCount: int, openingCount: int
Architecture.ramp
export function ramp(string id, string lowerLevelId, string upperLevelId, m width, m run, m rise)->RampParameters: id: string, lowerLevelId: string, upperLevelId: string, width: m, run: m, rise: m
Architecture.Ramp
export record Ramp(public string id, public string lowerLevelId, public string upperLevelId, public m width, public m run, public m rise)Parameters: id: string, lowerLevelId: string, upperLevelId: string, width: m, run: m, rise: m
export function recalculateSpaceQuantities(Room[] rooms, Wall[] walls, Opening[] openings, Massing value)->SpaceQuantityRevisionParameters: rooms: Room[], walls: Wall[], openings: Opening[], value: Massing
Architecture.removeIfcEntity
export function removeIfcEntity(IfcModel model, string globalId)->IfcModelParameters: model: IfcModel, globalId: string
Architecture.replaceIfcEntity
export function replaceIfcEntity(IfcModel model, IfcEntity replacement)->IfcModelParameters: model: IfcModel, replacement: IfcEntity
Architecture.roof
export function roof(string id, double areaSquareMetres, double slopeRadians, string assembly)->RoofParameters: id: string, areaSquareMetres: double, slopeRadians: double, assembly: string
Architecture.Roof
export record Roof(public string id, public double areaSquareMetres, public double slopeRadians, public string assembly)Parameters: id: string, areaSquareMetres: double, slopeRadians: double, assembly: string
Architecture.room
export function room(string id, string name, Polygon2 footprint, int level, string occupancy)->RoomParameters: id: string, name: string, footprint: Polygon2, level: int, occupancy: string
Architecture.Room
export record Room(public string id, public string name, public Polygon2 footprint, public int level, public string occupancy)Parameters: id: string, name: string, footprint: Polygon2, level: int, occupancy: string
Architecture.roomAdjacencies
export function roomAdjacencies(Level[] levels, Room[] rooms, m tolerance)->RoomAdjacency[]Parameters: levels: Level[], rooms: Room[], tolerance: m
export record RoomAdjacency(public string firstRoomId, public string secondRoomId, public int level, public m sharedBoundaryLength)Parameters: firstRoomId: string, secondRoomId: string, level: int, sharedBoundaryLength: m
Architecture.RouteResult
export record RouteResult(public m length, public double maximumSlope, public m minimumClearWidth, public bool accessible, public string diagnostic)Parameters: length: m, maximumSlope: double, minimumClearWidth: m, accessible: bool, diagnostic: string
Architecture.ruleSet
export function ruleSet(string jurisdiction, string edition, string ruleIdentity, m maximumTravelDistance, m minimumExitWidth, int maximumOccupantsPerExit)->BuildingRuleSetParameters: jurisdiction: string, edition: string, ruleIdentity: string, maximumTravelDistance: m, minimumExitWidth: m, maximumOccupantsPerExit: int
Architecture.satisfiesSetback
export function satisfiesSetback(Site value, Polygon2 footprint, m required)->boolParameters: value: Site, footprint: Polygon2, required: m
Architecture.selectDesign
export function selectDesign(DesignRequirement requirement, DesignAlternative[] alternatives)->DesignSelectionParameters: requirement: DesignRequirement, alternatives: DesignAlternative[]
Architecture.shadowLength
export function shadowLength(m obstructionHeight, SolarPosition sun)->mParameters: obstructionHeight: m, sun: SolarPosition
Architecture.site
export function site(Polygon2 boundary, double northRadians, string jurisdiction, string coordinateReference)->SiteParameters: boundary: Polygon2, northRadians: double, jurisdiction: string, coordinateReference: string
Architecture.Site
export record Site(public Polygon2 boundary, public double northRadians, public string jurisdiction, public string coordinateReference)Parameters: boundary: Polygon2, northRadians: double, jurisdiction: string, coordinateReference: string
Architecture.slab
export function slab(string id, int level, double areaSquareMetres, m thickness, string assembly)->SlabParameters: id: string, level: int, areaSquareMetres: double, thickness: m, assembly: string
Architecture.Slab
export record Slab(public string id, public int level, public double areaSquareMetres, public m thickness, public string assembly)Parameters: id: string, level: int, areaSquareMetres: double, thickness: m, assembly: string
Architecture.solarPosition
export function solarPosition(double latitudeRadians, int dayOfYear, double solarHour)->SolarPositionParameters: latitudeRadians: double, dayOfYear: int, solarHour: double
export record SolarPosition(public double altitudeRadians, public double azimuthRadians, public bool aboveHorizon)Parameters: altitudeRadians: double, azimuthRadians: double, aboveHorizon: bool
export record SpaceQuantityRevision(public QuantitySchedule totals, public string[] roomIds, public double[] roomFloorAreasSquareMetres, public string areaUnit, public string lengthUnit, public string volumeUnit)Parameters: totals: QuantitySchedule, roomIds: string[], roomFloorAreasSquareMetres: double[], areaUnit: string, lengthUnit: string, volumeUnit: string
Architecture.spatialGraph
export function spatialGraph(Level[] levels, Room[] rooms, VerticalConnection[] connections, m tolerance)->SpatialGraphParameters: levels: Level[], rooms: Room[], connections: VerticalConnection[], tolerance: m
export record SpatialGraph(public string[] roomIds, public int[] firstRoomIndices, public int[] secondRoomIndices, public string[] relationshipKinds, public m[] relationshipLengths)Parameters: roomIds: string[], firstRoomIndices: int[], secondRoomIndices: int[], relationshipKinds: string[], relationshipLengths: m[]
Architecture.stair
export function stair(string id, string lowerLevelId, string upperLevelId, m width, m rise, int riserCount)->StairParameters: id: string, lowerLevelId: string, upperLevelId: string, width: m, rise: m, riserCount: int
Architecture.Stair
export record Stair(public string id, public string lowerLevelId, public string upperLevelId, public m width, public m rise, public int riserCount)Parameters: id: string, lowerLevelId: string, upperLevelId: string, width: m, rise: m, riserCount: int
Architecture.summarizeLevels
export function summarizeLevels(Level[] levels, Room[] rooms)->LevelSummary[]Parameters: levels: Level[], rooms: Room[]
export function validateAccessibleCirculation(SpatialGraph graph, bool[] accessibleEdges, double[] slopes, m[] clearWidths, AccessibleCirculationRuleSet rules, string originRoomId, string destinationRoomId)->AccessibleCirculationResultParameters: graph: SpatialGraph, accessibleEdges: bool[], slopes: double[], clearWidths: m[], rules: AccessibleCirculationRuleSet, originRoomId: string, destinationRoomId: string
export function validateBuildingTopology(Level[] levels, Room[] rooms, Wall[] walls, Opening[] openings, VerticalConnection[] connections, m tolerance)->BuildingTopologyValidationParameters: levels: Level[], rooms: Room[], walls: Wall[], openings: Opening[], connections: VerticalConnection[], tolerance: m
Architecture.validateIfc
export function validateIfc(IfcModel model)->IfcValidationParameters: model: IfcModel
Architecture.verticalConnection
export function verticalConnection(string id, string lowerRoomId, string upperRoomId, string kind, bool accessible, m rise)->VerticalConnectionParameters: id: string, lowerRoomId: string, upperRoomId: string, kind: string, accessible: bool, rise: m
export record VerticalConnection(public string id, public string lowerRoomId, public string upperRoomId, public string kind, public bool accessible, public m rise)Parameters: id: string, lowerRoomId: string, upperRoomId: string, kind: string, accessible: bool, rise: m
Architecture.wall
export function wall(string id, Point2 start, Point2 end, m height, m thickness, string assembly)->WallParameters: id: string, start: Point2, end: Point2, height: m, thickness: m, assembly: string
Architecture.Wall
export record Wall(public string id, public Point2 start, public Point2 end, public m height, public m thickness, public string assembly)Parameters: id: string, start: Point2, end: Point2, height: m, thickness: m, assembly: string
Documentation version
Language 1.0.0, compiler 1.0.0, runtime 1.0.0. This reference is generated from the official SS documentation so package and language details stay consistent with the release.