Search This Blog

Wednesday, February 10, 2021

Contents of a DXF file for automatic floor/room/zone creation of LENIXML files.

 The geometry of a floor in a LENI calculation can be defined in a DXF file. Normally there is one DXF file for every floor.

Some layers have been defined as special layers:

  • LENI_ROOM : Any polylines (not lines) on this layer will be considered to be a room.
  • LENI_ZONE : Any polylines (not lines) on this layer will be considered to be a zone.
  • LENI_VERT_WINDOW : Any 2 vertex (single segment) polylines on this layer will be considered a window.
  • LENI_ROOF_LIGHT: Any polylines (not lines) on this layer will be considered a rooflight area.
  • LENI_ATRIUM: Any polylines on this layer will be considered as atriums in this floor.


These rules must be followed:

  1. Room polylines cannot be self intersecting.
  2. Room polylines cannot intersect with each other or zones.
  3. Room polylines must be closed.
  4. Zone polylines have to be completely inside rooms.
  5. Zone polylines cannot intersect with each other.
  6. Zone polylines must be closed.
  7. Window polylines must be within (a maximum of) 20cm (0.2m)  from room walls.
  8. All polylines on these special layers must be at the top level of the DXF file, i.e. they cannot be inside blocks.
  9. The DXF file must have a scale of 1.0 = 1 Meter
  10. North is positive Y.

Here is an example:

Two Rooms and Four Zones

Windows are single segment POLYLINEs:


 

For floors which are more than 100 meters wide or long here are some suggestions for the widths of the polylines to make them more visible:


Tuesday, February 2, 2021

Text values for fields in the LENICALC program and LENI XML files

 Here are the strings that can appear in given "non numeric" or "type" fields in a LENIXML project file.

Control technique

Control techniques are part of a zone. Example:

<Zone zonename="ZONE_F16_300" controltechnique="Manual" ocs="1" zonelux="200" zoneluxreal="500" fa="0.250" fo="1">


Allowed types:

"Manual",
"Automatic Switched On/Off",
"Automatic Switched On/Off In Stages",
"Automatic Daylight Responsive Off",
"Automatic Dimmed Stand-by Losses Switch On",
"Automatic Dimmed No Stand-by Losses Switch On",
"Automatic Dimmed Stand-by Losses No Switch On",
"Automatic Dimmed No Stand-by Losses No Switch On",

 

Shading of a room

Example:

    <Shading type="No Shading" />

Allowed types:

"No Shading",
"Glare Protection",
"Auto Glare Protection",
"Light Guides",


Product type flags.

Example, inside a product in the Products list:


<Products>
    <LumTypeData refid="5678">
        <TypeFlags>4</TypeFlags>

A product can have any combination of these three things
m_ikLuminaireFlag = 1;
m_ikControlFlag = 2;
m_ikEmergencyFlag = 4;
 
{L"Luminaire",                   CLumTypeData::m_ikLuminaireFlag},
{L"Control",                     CLumTypeData::m_ikControlFlag},
{L"Emergency",                   CLumTypeData::m_ikEmergencyFlag},
{L"Luminaire+Emergency",         CLumTypeData::m_ikLuminaireFlag | CLumTypeData::m_ikEmergencyFlag},
{L"Luminaire+Control",           CLumTypeData::m_ikLuminaireFlag | CLumTypeData::m_ikControlFlag},
{L"Control+Emergency",           CLumTypeData::m_ikControlFlag   | CLumTypeData::m_ikEmergencyFlag},
{L"Luminaire+Control+Emergency", CLumTypeData::m_ikLuminaireFlag | CLumTypeData::m_ikControlFlag | CLumTypeData::m_ikEmergencyFlag},

See also TypeFlags in the section below for another example.

Product control system

The product control system is an integer inside the luminaire/product branch.

    <LumTypeData refid="123ABC">
        <Desc>ACME LUX 123ABC description</Desc>
        <TypeFlags>1</TypeFlags>
        <ProdConSys>1</ProdConSys>
        <MaxPow>100.0000000</MaxPow>
        <StandbyPow>0.0100000</StandbyPow>
        <ChargePow>0.0100000</ChargePow>
    </LumTypeData>

It will have a value from 0 to 2:

"Daylight", 0,
"Occupancy", 1,
"Constant Illuminance Sensor", 2


Occupancy control system (ocs) of a zone

Example:

<Zone zonename="ZONE_01_(ROOM_000)" controltechnique="Manual" ocs="4" zonelux="500" zoneluxreal="500" fa="0.000" fo="1">
 

ocs can be set to one of the following integer values:

"1. Manual On/Off Switch",
"2. Manual On/Off switch + additional automatic sweeping extinction signal, and Auto on/Dimmed",
"3. Auto on/Auto off and Manual on/ Dimmed",
"4. Manual on/Auto Off"),


Choices of lux in a zone

Example (the zone list is the list of zones in a room):

<ZoneList>
    <Zone zonename="ZONE_ABC" controltechnique="Manual" ocs="1" zonelux="500" zoneluxreal="500" fa="0.250" fo="1">

 Allowed values for zonelux are:

{ 20.0, 30.0, 50.0, 75.0, 100.0, 150.0, 200.0, 300.0, 500.0, 750.0, 1000.0, 1500.0, 2000.0, 5000.0 };
 


Rooflight orientation strings and ids

In the XML the orientation is an integer corresponding to one of these strings:

"Horizontal", CLENIRoofLight::ekRLHorizontal,
"South", CLENIRoofLight::ekRLSouth,
"South East/West", CLENIRoofLight::ekRLSouthEastWest,
"East West", CLENIRoofLight::ekRLEastWest,
"North East/West", CLENIRoofLight::ekRLNorthEastWest,
"North", CLENIRoofLight::ekRLNorth

  •  ekRLHorizontal = 0,
  •  ekRLSouth = 1,
  •  ekRLSouthEastWest = 2,
  •  ekRLEastWest=3,
  •  ekRLNorthEastWest=4,
  •  ekRLNorth=5,

For an example see orient= "4" in the following section


Roof light types

Example (a roof light is inside the roof light list of a room)

<RoofLightList>
    <RoofLight id="1" type="ShedRoofLight" orient="4">

Allowed values:


"ShedRoofLight",
"FlatRoofLight",


Building types, and room types and absence factors.

Each building type has its list of room types. Every LENI1XML project has a single building type, for example

<DominantBuildingType>Educational buildings</DominantBuildingType>
 

The rooms in the building are not restricted to what occurs in any particular building type.


<BuildingType type="Residential buildings" fa="0.00" td="1820" tn="1680">
    <RoomType type="Living room" fa="0.30"/>
    <RoomType type="Bedroom" fa="0.40"/>
    <RoomType type="Room for children or retired persons" fa="0.30"/>
    <RoomType type="Dining room" fa="0.70"/>
    <RoomType type="Kitchen" fa="0.60"/>
    <RoomType type="Bathroom" fa="0.80"/>
    <RoomType type="Toilet" fa="0.90"/>
    <RoomType type="Entrance hall" fa="0.80"/>
    <RoomType type="Corridor, stairs" fa="0.70"/>
    <RoomType type="Storeroom" fa="0.90"/>
    <RoomType type="Cellar" fa="0.95"/>
    <RoomType type="Laundry" fa="0.98"/>
    <RoomType type="Larder" fa="0.98"/>
    <RoomType type="Workroom" fa="0.60"/>
    <RoomType type="Home workshop" fa="0.80"/>
    <RoomType type="Garage" fa="0.95"/>
</BuildingType>
<BuildingType type="Offices" fa="0.20" td="2250" tn="250">
    <RoomType type="Cellular office 1 person." fa="0.40"/>
    <RoomType type="Cellular office 2-6 persons." fa="0.30"/>
    <RoomType type="Open plan office > 6 persons sensing/30m2" fa="0.00"/>
    <RoomType type="Open plan office > 6 persons sensing/10m2" fa="0.20"/>
    <RoomType type="Corridor (dimmed)" fa="0.40"/>
    <RoomType type="Entrance hall" fa="0.00"/>
    <RoomType type="Showroom/Expo" fa="0.60"/>
    <RoomType type="Bathroom" fa="0.90"/>
    <RoomType type="Rest room" fa="0.50"/>
    <RoomType type="Storage room/Cloakroom" fa="0.90"/>
    <RoomType type="Technical plant room" fa="0.98"/>
    <RoomType type="Copying/Server room" fa="0.50"/>
    <RoomType type="Conference room" fa="0.50"/>
    <RoomType type="Archives" fa="0.98"/>
</BuildingType>
<BuildingType type="Educational buildings" fa="0.20" td="1800" tn="200">
    <RoomType type="Classroom" fa="0.25"/>
    <RoomType type="Room for group activities" fa="0.30"/>
    <RoomType type="Corridor (dimmed)" fa="0.60"/>
    <RoomType type="Junior common room" fa="0.50"/>
    <RoomType type="Lecture hall" fa="0.40"/>
    <RoomType type="Staff room" fa="0.40"/>
    <RoomType type="Gymnasium/Sports hall" fa="0.30"/>
    <RoomType type="Dining hall" fa="0.20"/>
    <RoomType type="Teachers' staff common room" fa="0.40"/>
    <RoomType type="Copying/storage room" fa="0.40"/>
    <RoomType type="Kitchen" fa="0.20"/>
    <RoomType type="Library" fa="0.40"/>
</BuildingType>
<BuildingType type="Hospitals" fa="0.00" td="3000" tn="2000">
    <RoomType type="Wards/Bedroom" fa="0.00"/>
    <RoomType type="Examination/Treatment" fa="0.40"/>
    <RoomType type="Pre-Operation" fa="0.40"/>
    <RoomType type="Recovery ward" fa="0.00"/>
    <RoomType type="Operating theatre" fa="0.00"/>
    <RoomType type="Corridors" fa="0.00"/>
    <RoomType type="Culvert/conduct/(dimmed)" fa="0.70"/>
    <RoomType type="Waiting area" fa="0.00"/>
    <RoomType type="Entrance hall" fa="0.00"/>
    <RoomType type="Day room" fa="0.20"/>
    <RoomType type="Laboratory" fa="0.20"/>
</BuildingType>
<BuildingType type="Manufacturing factory" fa="0.00" td="2500" tn="1500">
    <RoomType type="Assembly hall" fa="0.00"/>
    <RoomType type="Smaller assembly room" fa="0.20"/>
    <RoomType type="Storage rack area" fa="0.40"/>
    <RoomType type="Open storage area" fa="0.20"/>
    <RoomType type="Painting room" fa="0.20"/>
</BuildingType>
<BuildingType type="Hotels" fa="0.00" td="3000" tn="2000">
    <RoomType type="Entrance hall/Lobby" fa="0.00"/>
    <RoomType type="Corridor (dimmed)" fa="0.40"/>
    <RoomType type="Hotel room" fa="0.60"/>
    <RoomType type="Dining hall/cafeteria" fa="0.00"/>
    <RoomType type="Kitchen" fa="0.00"/>
    <RoomType type="Conference room" fa="0.40"/>
    <RoomType type="Kitchen/storage" fa="0.50"/>
</BuildingType>
<BuildingType type="Restaurants" fa="0.00" td="1250" tn="1250">
    <RoomType type="Entrance hall/Lobby" fa="0.00"/>
    <RoomType type="Corridor (dimmed)" fa="0.40"/>
    <RoomType type="Hotel room" fa="0.60"/>
    <RoomType type="Dining hall/cafeteria" fa="0.00"/>
    <RoomType type="Kitchen" fa="0.00"/>
    <RoomType type="Conference room" fa="0.40"/>
    <RoomType type="Kitchen/storage" fa="0.50"/>
</BuildingType>
<BuildingType type="Wholesale and retail service" fa="0.00" td="3000" tn="2000">
    <RoomType type="Sales area" fa="0.00"/>
    <RoomType type="Store room" fa="0.20"/>
    <RoomType type="Store room, cold stores" fa="0.60"/>
</BuildingType>
<BuildingType type="Other" fa="0.00" td="1000" tn="1000">
    <RoomType type="Waiting areas" fa="0.00"/>
    <RoomType type="Stairs (dimmed)" fa="0.00"/>
    <RoomType type="Theatrical stage and auditorium" fa="0.00"/>
    <RoomType type="Congress hall/Exhibition hall" fa="0.00"/>
    <RoomType type="museum/ Exhibition hall" fa="0.00"/>
    <RoomType type="Library/Reading area" fa="0.00"/>
    <RoomType type="Library /Archive" fa="0.00"/>
    <RoomType type="Sports hall" fa="0.00"/>
    <RoomType type="Car parks office - Private" fa="0.00"/>
    <RoomType type="Car parks - Public" fa="0.00"/>
</BuildingType>


Atrium type

Example:


<Atrium atriumname="ATRIO_01" trans="1" type="atrium" k1="1" k2="1" k3="1">

Allowed types:
"courtyard",
"atrium",

Wall and Window IDs in the LENICALC program and LENIXML files

 A room is simply a polygon. The first wall of the room is the line from the first coordinate in the polygon to the second coordinate in the polygon, and so on. The first wall has id "0",  the second wall id "1", and so on.

Windows belong to rooms, in fact windows belong to walls in a room. The window's id is formed by the wall id and the window id. The window id is simply an integer starting at "0" for the first window added to that wall. The second window added to the wall will have id "1", and so on. The window id does not define a geometrical order, only the historical order of when the window was added to the room.

Here is an example:

 


So the window XML says which wall it belongs to, as well as its height and width, and also how far along the wall it is. The x position of the window is measured from the start of the wall on the right when looking at the wall from inside the room:


The y position is the distance from the floor to the bottom of the window. 1 meter in the above example.






Friday, January 22, 2021

Atriums in the LENICALC program and LENIXML files

 The EN 15193-1 standard simplifies many things, and atriums are one of these. An atrium is usually sky lighted central area, maybe a tall lobby in a hotel...

Light is presumed to enter from the top of the atrium and then enter into windows which look into the atrium.

In the LENIXML file of a project containing an atrium it is defined as a polygon at the same level as a floor. The floor in which the atrium is drawn is considered to be the bottom of the atrium and the atrium rises up to the top of the building. So in the above example an atrium will be drawn on Floor2 and it's height (calculated by the program, not explicitly written in the XML) is the sum of the heights of Floor2 and Floor3.

Since it is part of a floor it appears in the <Floor> branch of the XML file:

<Floor floorname="FLOOR_002" hi="3.00" count="1">
    <PrintMe>false</PrintMe>
    <RoomList>
        <Room roomname="ROOM_000" type="[Educational buildings]Classroom(Fa=0.25)" mf="0.700" hta="0.800" td="1800" tn="200">
            <DcajSettings>
                <Type>Calculated</Type>
                <UserVal>0.0000000</UserVal>
            </DcajSettings>
            <Shading type="No Shading" />
            <PrintMe>false</PrintMe>
            <Polygon>
                <xy>0.0000000;0.0000000</xy>
                <xy>20.0000000;0.0000000</xy>
                <xy>20.0000000;10.0000000</xy>
                <xy>0.0000000;10.0000000</xy>
            </Polygon>
            <ZoneList />
            <WindowList />
            <RoofLightList />
        </Room>
    </RoomList>
    <AtriumList>
        <Atrium atriumname="ATRIO12" trans="1" type="atrium" k1="1" k2="1" k3="1">
            <Polygon>
                <xy>6.9221977;0.7087954</xy>
                <xy>17.0006673;0.5354024</xy>
                <xy>16.9139708;9.4868173</xy>
                <xy>7.1606131;9.4868173</xy>
            </Polygon>
        </Atrium>
    
</AtriumList>
</Floor>
 

In the XML file the type of the atrium can be "atrium" or "courtyard" . The energy calculation changes between these two options. In LENICALC the atrium properties dialog looks like this:


Note how both the well index and the atrium height are calculated, not editable. 

Windows which benefit from atriums have to be connected manually, for example in LENICALC:


In the XML file a Window element (Windows belong to rooms) has an optional AtriumName element which connects the window to the atrium:

<Room roomname="ROOM_000" type="[Educational buildings]Classroom(Fa=0.25)" mf="0.700" hta="0.800" td="1800" tn="200">
    <DcajSettings>
        <Type>Calculated</Type>
        <UserVal>0.0000000</UserVal>
    </DcajSettings>
    <Shading type="No Shading" />
    <PrintMe>false</PrintMe>
    <Polygon>
        <xy>0.0000000;0.0000000</xy>
        <xy>20.0000000;0.0000000</xy>
        <xy>20.0000000;10.0000000</xy>
        <xy>0.0000000;10.0000000</xy>
    </Polygon>
    <ZoneList />
    <WindowList>
        <Window wallid="1" windowid="0" wide="1.5" high="1.5" x="4.41" y="1.0"
                         td65="0.85" k1="0.95" k2="0.80" k3="0.85" hasgdf="0" gdftau="1.0000" gdfk1="1.0" gdfk2="1.0" gdfk3="1.0">
            <ShadingIndex frontangle="0.0000" sideangle="0.0000" overhangangle="51" />
            <AtriumName>ATRIO_01_FLOOR_002</AtriumName>
            <LumList />
        </Window>
    </WindowList>
    <RoofLightList />
</Room>








Monday, September 21, 2020

LENI Control Systems vs LENI Control Techniques

LENI is so complicated it can be easy to confuse control systems with control techniques.

Control Systems (in LENI terminology) are illustrated by this graph:

There are four of them and they are to do with how (intelligent sensor controlled) lighting reacts to the presence and absence of (forgetful) people. 

Fo, occupancy, is a measure of whether the room is occupied or not in a given time period. 

Fo = 1 if the lights are controlled centrally and the controller (human or automatic) does not know or care whether the rooms are occupied or not.

Fo < 1 if the room lights are switched on and off according to whether the room is in use or not. Again it could be a manual human control system (on off switch) or an automatic presence detecting system.

You'd think that...

Fa = 1 - Fo

...and that is true for Manual On/Auto Off, but not for any of the other three. I can only imagine that the curve for Manual On/Auto Off is the best one. A person enters the room, switches on the light, and even if s/he is forgetful, the automatic system will switch off the lights when the person leaves.

The manual on/off switch presumably takes into account the fact that lights can be left on by mistake when a persons leaves and the room becomes empty.

Here's my own personal idea about the graph:

So that was the Control Systems (Occupancy Control Systems would be a better name).

Then there are Control Techniques, there are eight of them, and specify how (intelligent sensor controlled) lighting reacts to the daylight supply of the room. To give them their full name they are Daylight-Responsive Control Techniques. They are summarized in this table:

 

This table needs some explanation. It is a look-up table, given three parameters you can lookup the output. The output is Fdc, used to calculate the Daylight Dependency Factor. 

The first input is type of control, which is basically the first four columns in the above table. There are eight of them (from I to VIII).

The second input is daylight availability, as a simple choice between three options, Low Medium and Strong.

The third input is lux required, maintained illuminance, as an option between 300lx, 500lx and 750lx.

 



Summarizing:

 


...and the output from the table lookup is used in the formula for Fd... 







Friday, January 31, 2020

AD and non AD areas in a LENI calculation

Since I've fallen into this trap myself I thought I'd warn you others out there about the difference between AD and AND zones in a LENI calculation.

In a zone an AD area is an Area illuminated by Daylight. In other words the horizontal rectangle attached to the vertical window which models the area illuminated by light coming through the window from outside.

So here is a simple room with two windows and their AD rectangles in pink:

LENI AD and AND areas


The size of the rectangles (based on the size of the window generating the area) is explained in the EN 15193-1 standard itself.

The AND (Area No Daylight) is everything in the room which is not in a window's AD area, so the dark green shown below:




Lighting Energy Numeric Indicator
The trap that I sometimes fall into is I put lighting products which respond to daylight in areas which do not receive daylight! 

Here's the same room in plan view, with lighting products in AD and AND areas:

The image above illustrates how the LENI standard evaluates the energy consumption of luminaires based not only on their intrinsic consumption, but also whether they are placed in an area affected by daylight or not.

Note that putting any luminaire in a window zone will, according to the standard, reduce its consumption somewhat.











Monday, January 27, 2020

LENICALC Windows program for the EN 15193-1 standard

 LeniCalc a program for calculating the LENI standard


LENICALC is a program which does all the EN-15193-1 calculations for you, as long as you have all the right data of course. Click on the LENICALC icon on the download page:


It is free and runs on any 64 bit Windows operating system from Windows 7 and upwards.

I strongly advise that you read and do the two tutorials in this online help file before you start creating your own LeniCalc project.

Note when you install the program you'll get the Windows help file with the same tutorials, but it may be that the online version gets updated more often.