Skip to content
OFFICIAL SS DOCUMENTATION

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
API 1.8.0
MIT
source

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

Public signature
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


Public signature
export function accessibleCirculationRuleSet(string jurisdiction, string edition, string ruleIdentity, double maximumSlope, m minimumClearWidth)->AccessibleCirculationRuleSet

Parameters: jurisdiction: string, edition: string, ruleIdentity: string, maximumSlope: double, minimumClearWidth: m


Public signature
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


Public signature
export function accessibleRoute(m[] segmentLengths, m[] rises, m[] clearWidths, double maximumAllowedSlope, m minimumAllowedWidth)->RouteResult

Parameters: segmentLengths: m[], rises: m[], clearWidths: m[], maximumAllowedSlope: double, minimumAllowedWidth: m


Public signature
export function appendIfcEntity(IfcModel model, IfcEntity value)->IfcModel

Parameters: model: IfcModel, value: IfcEntity


Public signature
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


Public signature
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


Public signature
export function checkEgress(BuildingRuleSet rules, int occupants, int suppliedExits, m narrowestExitWidth, m travelDistance)->EgressResult

Parameters: rules: BuildingRuleSet, occupants: int, suppliedExits: int, narrowestExitWidth: m, travelDistance: m


Public signature
export function classifyIfcEntity(IfcEntity entity, IfcClassification classification)->IfcEntity

Parameters: entity: IfcEntity, classification: IfcClassification


Public signature
export function componentSchedule(Slab[] slabs, Roof[] roofs, Stair[] stairs, Ramp[] ramps, EnvelopeAssembly[] envelopes)->ComponentSchedule

Parameters: slabs: Slab[], roofs: Roof[], stairs: Stair[], ramps: Ramp[], envelopes: EnvelopeAssembly[]


Public signature
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


Public signature
export function connected(SpatialGraph graph, string firstRoomId, string secondRoomId)->bool

Parameters: graph: SpatialGraph, firstRoomId: string, secondRoomId: string


Public signature
export function connectedComponentCount(SpatialGraph graph)->int

Parameters: graph: SpatialGraph


Public signature
export function daylightFactor(double windowAreaSquareMetres, double roomAreaSquareMetres, double visibleTransmittance, double skyAngleFactor)->DaylightResult

Parameters: windowAreaSquareMetres: double, roomAreaSquareMetres: double, visibleTransmittance: double, skyAngleFactor: double


Public signature
export record DaylightResult(public double daylightFactorPercent, public double glazedRatio, public bool withinModelDomain)

Parameters: daylightFactorPercent: double, glazedRatio: double, withinModelDomain: bool


Public signature
export function designAlternative(string id, double floorAreaSquareMetres, double daylightFactorPercent, double annualEnergyProxy, double costProxy)->DesignAlternative

Parameters: id: string, floorAreaSquareMetres: double, daylightFactorPercent: double, annualEnergyProxy: double, costProxy: double


Public signature
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


Public signature
export function designRequirement(string id, double minimumFloorAreaSquareMetres, double minimumDaylightFactorPercent, double maximumAnnualEnergyProxy, double maximumCostProxy)->DesignRequirement

Parameters: id: string, minimumFloorAreaSquareMetres: double, minimumDaylightFactorPercent: double, maximumAnnualEnergyProxy: double, maximumCostProxy: double


Public signature
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


Public signature
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


Public signature
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


Public signature
export function engineeringCoupling(string alternativeId, double structuralLoadKiloNewtons, EnvelopeAssembly[] envelopes, double conditionedVolumeCubicMetres)->EngineeringCoupling

Parameters: alternativeId: string, structuralLoadKiloNewtons: double, envelopes: EnvelopeAssembly[], conditionedVolumeCubicMetres: double


Public signature
export record EngineeringCoupling(public string alternativeId, public double structuralLoadKiloNewtons, public double envelopeHeatLossWattsPerKelvin, public double conditionedVolumeCubicMetres)

Parameters: alternativeId: string, structuralLoadKiloNewtons: double, envelopeHeatLossWattsPerKelvin: double, conditionedVolumeCubicMetres: double


Public signature
export function envelopeArea(Wall[] walls)->double

Parameters: walls: Wall[]


Public signature
export function envelopeAssembly(string id, double areaSquareMetres, double thermalTransmittance, string construction)->EnvelopeAssembly

Parameters: id: string, areaSquareMetres: double, thermalTransmittance: double, construction: string


Public signature
export record EnvelopeAssembly(public string id, public double areaSquareMetres, public double thermalTransmittance, public string construction)

Parameters: id: string, areaSquareMetres: double, thermalTransmittance: double, construction: string


Public signature
export function grossFloorArea(Room[] rooms)->double

Parameters: rooms: Room[]


Public signature
export function ifcClassification(string system, string edition, string code, string name, string uri)->IfcClassification

Parameters: system: string, edition: string, code: string, name: string, uri: string


Public signature
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


Public signature
export function ifcEntity(string globalId, string entityType, string name, string containerGlobalId, IfcProperty[] properties)->IfcEntity

Parameters: globalId: string, entityType: string, name: string, containerGlobalId: string, properties: IfcProperty[]


Public signature
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[]


Public signature
export function ifcEntityByGlobalId(IfcModel model, string globalId)->IfcEntity

Parameters: model: IfcModel, globalId: string


Public signature
export function ifcModel(string schema, string projectGlobalId, IfcEntity[] entities)->IfcModel

Parameters: schema: string, projectGlobalId: string, entities: IfcEntity[]


Public signature
export record IfcModel(public string schema, public string projectGlobalId, public IfcEntity[] entities)

Parameters: schema: string, projectGlobalId: string, entities: IfcEntity[]


Public signature
export record IfcModelView(public string name, public string[] entityTypes, public IfcEntity[] entities)

Parameters: name: string, entityTypes: string[], entities: IfcEntity[]


Public signature
export function ifcProperty(string name, string value, string unitSymbol)->IfcProperty

Parameters: name: string, value: string, unitSymbol: string


Public signature
export record IfcProperty(public string name, public string value, public string unitSymbol)

Parameters: name: string, value: string, unitSymbol: string


Public signature
export function ifcRoundTripDiff(IfcModel canonical, IfcModel roundTripped)->IfcRoundTripDifference

Parameters: canonical: IfcModel, roundTripped: IfcModel


Public signature
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


Public signature
export function ifcSpace(Room value, string globalId, string storeyGlobalId)->IfcEntity

Parameters: value: Room, globalId: string, storeyGlobalId: string


Public signature
export function ifcStep(IfcModel model)->string

Parameters: model: IfcModel


Public signature
export record IfcValidation(public bool valid, public int entityCount, public int propertyCount, public string diagnostic)

Parameters: valid: bool, entityCount: int, propertyCount: int, diagnostic: string


Public signature
export function ifcView(IfcModel model, string name, string[] entityTypes)->IfcModelView

Parameters: model: IfcModel, name: string, entityTypes: string[]


Public signature
export function ifcWall(Wall value, string globalId, string storeyGlobalId)->IfcEntity

Parameters: value: Wall, globalId: string, storeyGlobalId: string


Public signature
export function level(int index, string id, string name, m elevation, m floorToFloorHeight)->Level

Parameters: index: int, id: string, name: string, elevation: m, floorToFloorHeight: m


Public signature
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


Public signature
export record LevelSummary(public int level, public m elevation, public int roomCount, public double floorAreaSquareMetres)

Parameters: level: int, elevation: m, roomCount: int, floorAreaSquareMetres: double


Public signature
export function massing(Polygon2 footprint, m height, int levels)->Massing

Parameters: footprint: Polygon2, height: m, levels: int


Public signature
export record Massing(public Polygon2 footprint, public m height, public int levels)

Parameters: footprint: Polygon2, height: m, levels: int


Public signature
export function massingVolume(Massing value)->double

Parameters: value: Massing


Public signature
export function minimumBoundaryDistance(Polygon2 boundary, Point2 point)->m

Parameters: boundary: Polygon2, point: Point2


Public signature
export function opening(string id, string wallId, m width, m height, m sillHeight, string kind)->Opening

Parameters: id: string, wallId: string, width: m, height: m, sillHeight: m, kind: string


Public signature
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


Public signature
export function openingArea(Opening[] openings)->double

Parameters: openings: Opening[]


Public signature
export function optimizeOrientation(double[] candidates, double[] annualSolarProxy, double targetProxy)->OrientationAlternative

Parameters: candidates: double[], annualSolarProxy: double[], targetProxy: double


Public signature
export record OrientationAlternative(public double orientationRadians, public double annualProxyScore, public bool feasible)

Parameters: orientationRadians: double, annualProxyScore: double, feasible: bool


Public signature
export function parseIfcStep(string text)->IfcModel

Parameters: text: string


Public signature
export function parseIfcStepStandard(string text)->IfcModel

Parameters: text: string


Public signature
export function quantities(Room[] rooms, Wall[] walls, Opening[] openings, Massing value)->QuantitySchedule

Parameters: rooms: Room[], walls: Wall[], openings: Opening[], value: Massing


Public signature
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


Public signature
export function ramp(string id, string lowerLevelId, string upperLevelId, m width, m run, m rise)->Ramp

Parameters: id: string, lowerLevelId: string, upperLevelId: string, width: m, run: m, rise: m


Public signature
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


Public signature
export function recalculateSpaceQuantities(Room[] rooms, Wall[] walls, Opening[] openings, Massing value)->SpaceQuantityRevision

Parameters: rooms: Room[], walls: Wall[], openings: Opening[], value: Massing


Public signature
export function removeIfcEntity(IfcModel model, string globalId)->IfcModel

Parameters: model: IfcModel, globalId: string


Public signature
export function replaceIfcEntity(IfcModel model, IfcEntity replacement)->IfcModel

Parameters: model: IfcModel, replacement: IfcEntity


Public signature
export function roof(string id, double areaSquareMetres, double slopeRadians, string assembly)->Roof

Parameters: id: string, areaSquareMetres: double, slopeRadians: double, assembly: string


Public signature
export record Roof(public string id, public double areaSquareMetres, public double slopeRadians, public string assembly)

Parameters: id: string, areaSquareMetres: double, slopeRadians: double, assembly: string


Public signature
export function room(string id, string name, Polygon2 footprint, int level, string occupancy)->Room

Parameters: id: string, name: string, footprint: Polygon2, level: int, occupancy: string


Public signature
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


Public signature
export function roomAdjacencies(Level[] levels, Room[] rooms, m tolerance)->RoomAdjacency[]

Parameters: levels: Level[], rooms: Room[], tolerance: m


Public signature
export record RoomAdjacency(public string firstRoomId, public string secondRoomId, public int level, public m sharedBoundaryLength)

Parameters: firstRoomId: string, secondRoomId: string, level: int, sharedBoundaryLength: m


Public signature
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


Public signature
export function ruleSet(string jurisdiction, string edition, string ruleIdentity, m maximumTravelDistance, m minimumExitWidth, int maximumOccupantsPerExit)->BuildingRuleSet

Parameters: jurisdiction: string, edition: string, ruleIdentity: string, maximumTravelDistance: m, minimumExitWidth: m, maximumOccupantsPerExit: int


Public signature
export function satisfiesSetback(Site value, Polygon2 footprint, m required)->bool

Parameters: value: Site, footprint: Polygon2, required: m


Public signature
export function selectDesign(DesignRequirement requirement, DesignAlternative[] alternatives)->DesignSelection

Parameters: requirement: DesignRequirement, alternatives: DesignAlternative[]


Public signature
export function shadowLength(m obstructionHeight, SolarPosition sun)->m

Parameters: obstructionHeight: m, sun: SolarPosition


Public signature
export function site(Polygon2 boundary, double northRadians, string jurisdiction, string coordinateReference)->Site

Parameters: boundary: Polygon2, northRadians: double, jurisdiction: string, coordinateReference: string


Public signature
export record Site(public Polygon2 boundary, public double northRadians, public string jurisdiction, public string coordinateReference)

Parameters: boundary: Polygon2, northRadians: double, jurisdiction: string, coordinateReference: string


Public signature
export function slab(string id, int level, double areaSquareMetres, m thickness, string assembly)->Slab

Parameters: id: string, level: int, areaSquareMetres: double, thickness: m, assembly: string


Public signature
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


Public signature
export function solarPosition(double latitudeRadians, int dayOfYear, double solarHour)->SolarPosition

Parameters: latitudeRadians: double, dayOfYear: int, solarHour: double


Public signature
export record SolarPosition(public double altitudeRadians, public double azimuthRadians, public bool aboveHorizon)

Parameters: altitudeRadians: double, azimuthRadians: double, aboveHorizon: bool


Public signature
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


Public signature
export function spatialGraph(Level[] levels, Room[] rooms, VerticalConnection[] connections, m tolerance)->SpatialGraph

Parameters: levels: Level[], rooms: Room[], connections: VerticalConnection[], tolerance: m


Public signature
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[]


Public signature
export function stair(string id, string lowerLevelId, string upperLevelId, m width, m rise, int riserCount)->Stair

Parameters: id: string, lowerLevelId: string, upperLevelId: string, width: m, rise: m, riserCount: int


Public signature
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


Public signature
export function summarizeLevels(Level[] levels, Room[] rooms)->LevelSummary[]

Parameters: levels: Level[], rooms: Room[]


Public signature
export function validateAccessibleCirculation(SpatialGraph graph, bool[] accessibleEdges, double[] slopes, m[] clearWidths, AccessibleCirculationRuleSet rules, string originRoomId, string destinationRoomId)->AccessibleCirculationResult

Parameters: graph: SpatialGraph, accessibleEdges: bool[], slopes: double[], clearWidths: m[], rules: AccessibleCirculationRuleSet, originRoomId: string, destinationRoomId: string


Public signature
export function validateBuildingTopology(Level[] levels, Room[] rooms, Wall[] walls, Opening[] openings, VerticalConnection[] connections, m tolerance)->BuildingTopologyValidation

Parameters: levels: Level[], rooms: Room[], walls: Wall[], openings: Opening[], connections: VerticalConnection[], tolerance: m


Public signature
export function validateIfc(IfcModel model)->IfcValidation

Parameters: model: IfcModel


Public signature
export function verticalConnection(string id, string lowerRoomId, string upperRoomId, string kind, bool accessible, m rise)->VerticalConnection

Parameters: id: string, lowerRoomId: string, upperRoomId: string, kind: string, accessible: bool, rise: m


Public signature
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


Public signature
export function wall(string id, Point2 start, Point2 end, m height, m thickness, string assembly)->Wall

Parameters: id: string, start: Point2, end: Point2, height: m, thickness: m, assembly: string


Public signature
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.