0.0.6 • Published 2 years ago

@vyzn-tech/lib-acoustic-rating v0.0.6

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

lib-acoustic-rating

lib-acoustic-rating is a Javascript library which calculates acoustic rating requirements for IFC-data according to SIA 181.

Installation

Use the package manager npm to install lib-acoustic-rating.

npm install @vyzn-tech/lib-acoustic-rating

Usage

import CsvConverter from '@vyzn-tech/lib-acoustic-rating/dist/csv-converter'
import { AcousticRatingCalculator } from '@vyzn-tech/lib-acoustic-rating/dist/calculator'

const items = new CsvConverter().convertToComponents(csvString)

const calculator = new AcousticRatingCalculator(
  items, //                               required => see CSV
  externalAcousticRatings //              required => see External-Acoustic-Ratings
  // additionalNoiseSensitivityMap        optional => see Noise-Sensitivity-Map
  // additionalAirborneNoiseExposureMap   optional => see Airborne-Noise-Exposure-Map
  // additionalFootstepNoiseExposureMap   optional => see Footstep-Noise-Exposure-Map
  // additionalSpectrumAdjustmentTypeMap  optional => see Spectrum-Adjustment-Type-Map
)

console.log(calculator.calculate())

Expected Input

CSV

ColumnDescriptionSupported ValuesExampleComment
GUIDAn IfcGloballyUniqueId holds an encoded string identifier that is used to uniquely identify an IFC object.22 character length string "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_$"01$34_67$9_BsbEFbH$JK_MGUID(same as original IFC) or UniqueLabel (unique string)
EntityIn an IFC model, project information is represented as a series of IFC entities. Each IFC entity contains a fixed number of IFC attributes as well as any number of additional IFC properties. The IFC schema includes several hundred entities, of which the building element-type entities (such as IfcWall and IfcColumn) represent only 25.IfcWall IfcSlab IfcRoof IfcSpace IfcZone IfcBuildingIfcWallElementType Could be remapped in an interface to match the request
PredefinedTypeonly required for IfcSlab: The predefined type based on IFC.FLOOR BASESLAB ROOFFLOORSee Entity
ParentIdsThe ID of the parent element (IfcRelation/ IfcRelToGroup)A value from column “ID” of another row or null (empty cell)01$34_67$9_BsbEFbH$JK_MWill be the result of the link service
Nameonly required for IfcZone and IfcBuilding: Bezeichnung respektive Name, welcher sich von anderer Nutzungseinheit oder anderen Gebäude unterscheidetfrei (string), beispielsweise Nutzungseinheit_1, Nutzungseinheit_2,... Dach Fluchtweg_1, Bauprojekt, NachbargebäudeNutzungseinheit_1User input - ideally to be inputted on the platform / second option would be IFC input
AcousticRatingLevelReqonly required for IfcZoneMindestanforderungen, Erhöhte AnforderungenMindestanforderungenUser input
Statusonly required for IfcZone and IfcBuilding: Status of the element, predominately used in renovation or retrofitting projects. The status can be assigned to as "New" - element designed as new addition, "Existing" - element exists and remains, "Demolish" - element existed but is to be demolished, "Temporary" - element will exists only temporary (like a temporary support structure).new, existing , temporarynewConstructionType Missing option “temporary” should be added
IsExternalIndication whether the element is designed for use in the exterior (TRUE) or not (FALSE). If (TRUE) it is an external element and faces the outside of the buildingTRUE FALSETRUEPositionAgainst Could be remapped in an interface to match the request
OccupancyTypeOccupancy type for this object. It is defined according to the presiding national code.Werkstatt, Empfang, Warteraum, Großraumbüro, Kantine, Restaurant, Bad, WC, Verkauf, Labor, Korridor, Wohnen, Schlafen, Studio, Schulzimmer, Wohnküche, Büroraum, Hotelzimmer, Spitalzimmer, Ruheräume Therapieraum, Lesezimmer, StudierzimmerWohnkücheUser input - Since that is a national standard the options should be in german
CelestialDirectionHimmelsrichtung 8 optionsN, NE, E, SE, S, SW, W, NWSWOrientation Could be remapped in an interface to match the request
CenterOfGravityZGravitationsschwerpunkt des Raumvolumens m-99.99 to 99.993.43Should be produced by the REF model

Example

GUIDEntityPredefinedTypeParentIdsNameAcousticRatingLevelReqStatusIsExternalOccupancyTypeCelestialDirectionCenterOfGravityZ
1IfcWall47TRUENE
2IfcWall51TRUENE
3IfcWall47,54TRUENE
4IfcWall48,54TRUEN
5IfcWall47,52FALSEN
6IfcWall46,47FALSEN
7IfcWall47,53FALSEN
8IfcWall47,55FALSEN
9IfcWall50,55FALSEN
10IfcWall46,55FALSEN
11IfcWall51,50FALSEN
12IfcWall51,49FALSEN
13IfcWall51,48FALSEN
14IfcWall53,49FALSEN
15IfcWall47,73FALSEN
16IfcWall55,73FALSEN
17IfcWall53,73FALSEN
18IfcWall64,51FALSEN
19IfcWall57,59TRUENE
20IfcSlabFLOOR56,62FALSE
21IfcSlabFLOOR58,62FALSE
22IfcSlabFLOOR59,62FALSE
23IfcSlabFLOOR60,62FALSE
24IfcSlabFLOOR55,62FALSE
25IfcSlabFLOOR56,63FALSE
26IfcSlabFLOOR56,46FALSE
27IfcSlab48,62FALSE
28IfcSlabFLOOR49,62FALSE
29IfcSlabFLOOR50,57FALSE
30IfcSlabROOF46,55TRUEN
31IfcSlabROOF46,52TRUEN
32IfcSlabFLOOR48,53FALSE
33IfcSlabFLOOR47,58FALSE
34IfcSlabFLOOR50,63FALSE
35IfcSlabFLOOR47,65FALSE
36IfcSlabFLOOR47,51FALSE
37IfcSlabFLOOR61,58FALSE
38IfcSlabFLOOR58,64FALSE
39IfcSlabFLOOR58,65FALSE
40IfcSlabFLOOR52,57TRUE
41IfcSlabROOF46,62TRUENE
42IfcDoor1TRUEN
43IfcSlabROOF46TRUEN
44IfcRoof47TRUEN
45IfcSpace70Wartungsarbeiten7
46IfcSpace66Terrasse6
47IfcSpace66Wohnen6.5
48IfcSpace66Wohnen6.5
49IfcSpace66Bad6.5
50IfcSpace66Schlafen6.5
51IfcSpace71Treppenhaus6.4
52IfcSpace67Wohnen3.5
53IfcSpace67Bad3.5
54IfcSpace67Terrasse3.5
55IfcSpace67Schlafen3.5
56IfcSpace68Tiefgarage-3
57IfcSpace69Einfahrt-3
58IfcSpace68Gewerbe-3
59IfcSpace68Keller-3
60IfcSpace68Technik-3
61IfcSpace68Waschraum-6
62IfcSpace69Tiefgarage-6
63IfcSpace69Gewerbe-6
64IfcSpace69Keller-6
65IfcSpace69Technik-6
66IfcZone72Nutzungseinheit_1Erhoehte Anforderungennew
67IfcZone72Nutzungseinheit_2Erhoehte Anforderungennew
68IfcZone72Nutzungseinheit_3Erhoehte Anforderungennew
69IfcZone72Nutzungseinheit_4Erhoehte Anforderungennew
70IfcZone72DachErhoehte Anforderungennew
71IfcZone72Fluchtweg_1Minimale Anforderungennew
72IfcBuildingBauprojektnew
73IfcBuildingNachbargebäudeexistingWohnen

External-Acoustic-Ratings

KeyDescriptionType
nNorthobject: External-Acoustic-Rating
neNorth-Eastobject: External-Acoustic-Rating
eEastobject: External-Acoustic-Rating
seSouth-Eastobject: External-Acoustic-Rating
sSouthobject: External-Acoustic-Rating
swSouth-Westobject: External-Acoustic-Rating
wWestobject: External-Acoustic-Rating
nwNorth-Westobject: External-Acoustic-Rating

External-Acoustic-Rating

KeyTypeValues
dayint-2,147,483,647 to 2,147,483,647
nightint-2,147,483,647 to 2,147,483,647
spectrumAdjustmentTypestring: SpectrumAdjustmentTypec, ctr

Example

{
  "n": {
    "day": 62,
    "night": 55,
    "spectrumAdjustmentType": "ctr"
  },
  "ne": {
    "day": 62,
    "night": 55,
    "spectrumAdjustmentType": "ctr"
  },
  "e": {
    "day": 0,
    "night": 0,
    "spectrumAdjustmentType": "c"
  },
  "se": {
    "day": 0,
    "night": 0,
    "spectrumAdjustmentType": "c"
  },
  "s": {
    "day": 0,
    "night": 0,
    "spectrumAdjustmentType": "c"
  },
  "sw": {
    "day": 0,
    "night": 0,
    "spectrumAdjustmentType": "c"
  },
  "w": {
    "day": 0,
    "night": 0,
    "spectrumAdjustmentType": "c"
  },
  "nw": {
    "day": 0,
    "night": 0,
    "spectrumAdjustmentType": "c"
  }
}

Noise-Sensitivity-Map

KeyTypeValues
string: OccupancyTypeintnull = None, 1 = Low, 2 = Medium, 3 = High

Example

{
    "Terrasse": null,
    "Werkstatt": 1,
    "Wohnzimmer": 2,
    "Studierzimmer": 3
}

Airborne-Noise-Exposure-Map

KeyTypeValues
string: OccupancyTypeint1 = Low, 2 = Moderate, 3 = High, 4 = Very High

Example

{
    "Terrasse": 4,
    "Werkstatt": 3,
    "Wohnzimmer": 2,
    "Studierzimmer": 1
}

Airborne-Noise-Exposure-Map

KeyTypeValues
string: OccupancyTypeint1 = Low, 2 = Moderate, 3 = High, 4 = Very High

Example

{
    "Terrasse": 4,
    "Werkstatt": 3,
    "Wohnzimmer": 2,
    "Studierzimmer": 1
}

Spectrum-Adjustment-Type-Map

KeyTypeValues
string: OccupancyTypestring: SpectrumAdjustmentTypec, ctr

Example

{
    "Terrasse":"c",
    "Werkstatt": "ctr"
}

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

MIT