Frequently Asked Questions:

Can I Calculate the Building Compactness Ratio ?

My local authority needs the 'Compactness Ratio' for my building, which is the ratio of room volume to floor area. Can I calculate this is Ecotect ?

The following script will solve your problem, allowing you to calculate the ratio of zone volume to floor area. It also demonstrates the generation of a simple HTML report showing values for each thermal zone in the model as well as summed overall values at the bottom.

-- ------------------------------------------------
-- BUILDING COMPACTNESS CALCULATION:
-- This is a simple script that cycles through all 
-- thermal zones in the current model and builds up 
-- a table of the ratio between volume and floor 
-- area to give a simple compactness ratio.
-- ------------------------------------------------

-- Get number of zones in the model.
zones = get("model.zones")

-- Initialise some variables.
sum_v = 0
sum_f = 0

-- Initialise the heading of a report table.
-- Using the '|' character as a column separator.
reportData = "ZONE NAME|VOLUME (V)|FLOOR AREA (A)|V/A(BCR)\n"

-- Cycle through model zones.
for z = 1, zones-1, 1 do

  -- Check for a thermal zone.
  if (get("zone.thermal", z)) then

    -- Get volume and floor area of zone.
    v = get("zone.volume", z)
    f = get("zone.floorarea", z)

    -- If both are greater than zero,
    if (v > 0.0) and (f > 0.0) then	

      -- output zone data as another table line.
      line = format("%s|%0.2f|%0.2f|%0.3f\n", 
        get("zone.name", z), v, f, f/v
        )

      -- Concatenate line to reportData text.
      reportData = reportData .. line

      -- Sum up volume and areas.
      sum_v = sum_v + v
      sum_f = sum_f + f

    end

  end

end

-- Add the totals line to the table.
line = format("OVERALL|%0.2f|%0.2f|%0.3f\n", 
  sum_v, sum_f, sum_f/sum_v
  )

reportData = reportData .. line

-- Create a HTML report - other report types 
-- include: 'text', 'box', 'html' and 'excel'.
reportOpen("html", "")

-- Adds a <H1> title line to the HTML page.
reportAddLine("Compactness Ratio Report", "h1");

-- Adds a normal <p> line to the HTML page.
reportAddLine("The BCR is given as the ratio of"
  .. " total volume over floor area for each"
  .. " thermal zone within the building model."
  )

-- Generates a table within the HTML page 
-- using 'reportData' which contains 4 columns, 
-- 1 header row and 1 footer row.
reportAddTable("Building Compactness Ratio (BCR)", 
  reportData, 4, 1, 1
  )

-- Close and display report.
reportClose()

You could easily modify this script to show floor area vs exposed surface area or basically any other set of building criteria.

Your rating: None Average: 4.3 (3 votes)