Contents - Index - Previous - Next

**Object Parameters**

Each item of this long list shows the Type-Name and the Type-Description, and then the sub list of Parameter-Names and Parameter-Descriptions.

Note also that each object of a particular scene has also an additional parameter "Name". Its value is a string with the "own" object name, which you can edit and use as a short comment to distinguish objects in the tree view of the scene structure. See the chapter "Advanced Options" for more details.

*Be aware and check before you buy a product:*

*1) 2D Primitives, 3D Primitives, Decoration, and Simple Buildings are available in all products of the Shadow Analyzer Collection.*

*2) Specific "solar" array-objects Static PV-Modules are available in Shadow Calculator and Shadow Analyzer.*

*3) Specific "solar" array-objects Trackers (with or without PVM) are available in Shadow Analyzer only!*

*Note: All "solar" array-objects are available in Shadow Visualizer, but for the visualization and project presentation only, without the shadow and power calculations!*

**2D Primitives**

**2D_3** -- Triangle on XY-plane of its own CS: base-side '0-1' lays on X-axis if ORG = 0

**ORG -- **XY-origin is: 0 -- mid of base-side '0-1', 1 -- center of bounding XY-rectangle, 2 -- perimeter point

**SYM **-- symmetry = (+/-)1: the figure is located 'above'/'below' the base-side '0-1'

**dX **-- X-dimension ( > 0 ) of base-side '0-1' with vertices '0' = { -dX/2, 0 }, '1' = { +dX/2, 0 } if ORG = 0

**x2 **-- x-position of vertex '2' relatively the mid of the base-side '0-1'

**d2 **-- distance of vertex '2' from base-side '0-1'

**pp **-- perimeter-point position between vertices '0', '1', '2', and '3'='0' ('CCW'/'CW' depending on SYM)

**2D_4** -- Quad (convex) on XY-plane of its own CS: base-side '0-1' lays on X-axis if ORG = 0

**ORG** -- XY-origin is: 0 -- mid of base-side '0-1', 1 -- center of bounding XY-rectangle, 2 -- perimeter point

**SYM** -- symmetry = (+/-)1: the figure is located 'above'/'below' the base-side '0-1'

**dX** -- X-dimension ( > 0 ) of base-side '0-1' with vertices '0' = { -dX/2, 0 }, '1' = { +dX/2, 0 } if ORG = 0

**x2** -- x-position of vertex '2' relatively the mid of the base-side '0-1'

**d2** -- distance of vertex '2' from base-side '0-1'

**x3** -- x-position of vertex '3' relatively the mid of the base-side '0-1'

**d3** -- distance of vertex '3' from base-side '0-1'

**pp** -- perimeter-point position between vertices '0', '1', '2', '3', and '4'='0' ('CCW'/'CW' depending on SYM)

**2D_5** -- Polygon (convex) on XY-plane of its own CS: base-side '0-1' lays on X-axis if ORG = 0

**ORG** -- XY-origin is: 0 -- mid of base-side '0-1', 1 -- center of bounding XY-rectangle, 2 -- perimeter point

**SYM** -- symmetry = (+/-)1: the figure is located 'above'/'below' the base-side '0-1'

**dX** -- X-dimension ( > 0 ) of base-side '0-1' with vertices '0' = { -dX/2, 0 }, '1' = { +dX/2, 0 } if ORG = 0

**x2** -- x-position of vertex '2' relatively the mid of the base-side '0-1'

**d2** -- distance of vertex '2' from base-side '0-1'

**x3** -- x-position of vertex '3' relatively the mid of the base-side '0-1'

**d3** -- distance of vertex '3' from base-side '0-1'

**x4** -- x-position of vertex '4' relatively the mid of the base-side '0-1'

**d4** -- distance of vertex '4' from base-side '0-1'

**pp** -- perimeter point position between vertices '0', '1', '2', '3', '4', and '5'='0' ('CCW'/'CW' depending on SYM)

**2D_Circ** -- Circular polygon on the XY-plane of its own CS

**n** -- number of vertices in range [3, 36]

**r** -- outer radius ( > 0 )

**2D_Ell** -- Elliptical polygon on the XY-plane of its own CS

**n** -- number of vertices in range [3, 36]

**rx** -- outer x-radius ( > 0 )

**ry** -- outer y-radius ( > 0 )

**2D_Grid** -- Rectangular centered Grid above the XY-plane of its own CS

**nx** -- number of cells in own X-direction in range [1, 100]

**ny** -- number of cells in own Y-direction in range [1, 100]

**dX** -- X-dimension of rectangle cell ( 0 < dX <= 100 )

**dY** -- Y-dimension of rectangle cell ( 0 < dY <= 100 )

**hZ** -- the grid plane height above the XY-plane in range [0, 100]

**2D_Rect** -- Rectangle (centered) with 4 'counterclockwise' vertices '0', '1', '2', '3' on XY-plane of its own CS

**dX** -- X-dimension of rectangle ( > 0 )

**dY** -- Y-dimension of rectangle ( > 0 )

**move_X** -- move Rectangle along X-axis by move_X*dX in own CS

**move_Y** -- move Rectangle along Y-axis by move_Y*dY in own CS

**2D_Sec** -- Circular sector on the XY-plane of its own CS (CCW from X-axis)

**n** -- number of chords in range [1, 18]

**r** -- outer radius ( > 0 )

**A** -- central angle in degrees in range 0° < A <= 180°

*Constraint:** you cannot simultaneously set n =1 and A = 180°*

**2D_Seg** -- Circular segment on the XY-plane of its own CS

**n** -- number of outer chords in range [2, 36]

**r** -- outer radius ( > 0 )

**A** -- central angle in degrees in range 0° < A < 360°

**3D Primitives**

**3D_Box** -- the Box is centered on the XY-plane of its own CS

**mapT** -- map zones to share textures: 0 -- do not share; 1 -- 1[1] 2[2,3,4,5] 3[6]; 2 -- 1 for all

**dX** -- X dimension ( > 0 )

**dY** -- Y dimension ( > 0 )

**dZ** -- Z dimension ( > 0 )

**3D_Cone** -- the Cone is built on a circular polygon that is centered on the XY-plane of its own CS

**n** -- number of vertices of bottom circular polygon in range [3, 36]

**r** -- outer radius of bottom circle ( > 0 )

**h** -- cone height ( > 0 )

**3D_Cyl** -- Cylinder is built on a circular polygon that is centered on the XY-plane of its own CS

**n** -- number of vertices of top/bottom circular polygon in range [3, 36]

**rt** -- outer radius of top circle ( > 0 )

**rb** -- outer radius of bottom circle ( > 0 )

**h** -- cylinder height ( > 0 )

**3D_Cyl_nH** -- Cylinder is built on a circular polygon that is centered on the XY-plane of its own CS. Refined reflection appearance.

**n** -- number of vertices of top/bottom circular polygon in range [3, 36]

**nh** -- number of h-sections (to refine reflection appearance) in range [1, 10]

**rt** -- outer radius of top circle ( > 0 )

**rb** -- outer radius of bottom circle ( > 0 )

**h** -- cylinder height ( > 0 )

**3D_CylE** -- Cylinder is built on an elliptical polygon that is centered on the XY-plane of its own CS

**n** -- number of vertices of top/bottom elliptical polygon in range [3, 36]

**rxt** -- outer x-radius of top ellipse ( > 0 )

**ryt** -- outer y-radius of top ellipse ( > 0 )

**xt** -- x-shift of top ellipse

**yt** -- y-shift of top ellipse

**rxb** -- outer x-radius of bottom ellipse ( > 0 )

**ryb** -- outer y-radius of bottom ellipse ( > 0 )

**h** -- cylinder height ( > 0 )

**3D_CylSg** -- Cylindrical segment is built on a circular segment that is centered on the XY-plane of its own CS

**n** -- number of outer chords of top/bottom segments in range [2, 36]

**rt** -- outer radius of top segment ( > 0 )

**rb** -- outer radius of bottom segment ( > 0 )

**h** -- cylinder height ( > 0 )

**A** -- central angle of top/bottom segments in degrees in range 0° < A < 360°

**3D_Ell** -- Ellipsoid is centered in its own CS. The surface has 6 color zones along meridians.

**nm** -- number of chords along meridian in range [2, 18]

**ne** -- number of chords along equator in range [3, 36]

**mapT** -- map zones to share textures: 0 -- do not share; 1 -- 1[1,2] 2[3,4] 3[5,6]; 2 -- 1[1,2,3] 2[4,5,6]; 3 -- 1 for all

**rx** -- outer x-radius ( > 0 )

**ry** -- outer y-radius ( > 0 )

**rz** -- outer z-radius ( > 0 )

**3D_EllSg** -- Ellipsoidal segment is centered on the XY-plane of its own CS. The surface has 6 color zones along meridians.

**nm** -- number of chords along meridian in range [2, 18]

**ne** -- number of chords along equator in range [3, 36]

**mapT** -- map zones: 0 -- do not share; 1 -- 1[1,2] 2[3,4] 3[5,6] 4[7]; 2 -- 1[1,2,3] 2[4,5,6] 3[7]; 3 -- 1[1,2,3,4,5,6] 2[7]

**rx** -- outer x-radius ( > 0 )

**ry** -- outer y-radius ( > 0 )

**rz** -- outer z-radius ( > 0 )

**A** -- central angle (in vertical section, when rx = ry = rz) of segment in degrees in range 0° < A < 360°

**3D_Sph** -- Sphere is centered in its own CS. The surface has 6 color zones along meridians.

**nm** -- number of chords along meridian in range [2, 18]

**ne** -- number of chords along equator in range [3, 36]

**mapT** -- map zones to share textures: 0 -- do not share; 1 -- 1[1,2] 2[3,4] 3[5,6]; 2 -- 1[1,2,3] 2[4,5,6]; 3 -- 1 for all

**r** -- outer radius ( > 0 )

**3D_SphSg** -- Spherical segment is centered on the XY-plane of its own CS. The surface has 6 color zones along meridians.

**nm** -- number of chords along meridian in range [2, 18]

**ne** -- number of chords along equator in range [3, 36]

**mapT** -- map zones: 0 -- do not share; 1 -- 1[1,2] 2[3,4] 3[5,6] 4[7]; 2 -- 1[1,2,3] 2[4,5,6] 3[7]; 3 -- 1[1,2,3,4,5,6] 2[7]

**r** -- outer radius ( > 0 )

**A** -- central angle (in vertical section) of segment in degrees in range 0° < A < 360°

**Arrays**

An array-object is a rectangular 2D matrix of its elements. The type of elements is predefined by the array-object type.

With the combo box "PAR", you can select (and then edit) the array size (number of elements in the matrix) as well as the shape parameters of its elements.

With the "ATT" button, you can open a specific local menu to edit more complex array attributes that cannot be expressed by simple integer or real parameters. For example, you can exclude some elements of the matrix to cover a not-rectangular area by a single array-object, instead to fill the area by a few similar array objects.

For "solar" array-objects with PV-modules, you can use ATT-options to manage the configuration of PV-strings.

**Decoration** (for example, windows on walls of buildings, available in all products)

**A: D-Rects** -- Array (a rectangular matrix) of one-side decorative rectangles above the XY-plane of its own CS (initially not a shadower)

**nx** -- number of rectangles along the array's own X-axis in range [1, 100], the value is limited by the condition: nx * ny <= 1024

**ny** -- number of rectangles along the array's own Y-axis in range [1, 100], value is limited by the condition: nx * ny <= 1024

**dX** -- X-dimension of rectangle in range [0, 100]

**dY** -- Y-dimension of rectangle in range [0, 100]

**gX** -- X-gap between rectangles in range [0, 100]

**gY** -- Y-gap between rectangles in range [0, 100]

**Stg_H** -- stage height above the XY-plane of the array's own CS in range [0, 100]

**move_X** -- move the entire array along X-axis by move_X steps (dX+gX) in own CS

**move_Y** -- move the entire array along Y-axis by move_Y steps (dY+gY) in own CS

**Static PV-Modules** (plane panel of PVM or a set of rows of inclined PVM, available in Shadow Calculator and Shadow Analyzer)

The "solar" windows of Shadow Calculator and Shadow Analyzer interpret objects of this type as solar collectors, and include them in the shadow and power calculations.

**A: PVM** -- Array (a rectangular matrix) of PV-Modules. The parameter iA is the inclination angle of modules in respect to the XY-plane of own CS. The array with iA = 0° is a plane panel of PVM. Increasing parameters iA and gY, you transform the initially plane array into a set of rows of inclined PVM.

**Mod_kW** -- power of one PV-module in kW

**Ext-ID** -- plug all modules into an external multi-object PV-string with ID in range [1, 512]; if '0' -- use internal PVS ID of 'ATT'

**nMx** -- number of modules in the array row (X-direction) in range [1, 64], constraint: total number of modules <= 1024

**nMy** -- number of modules in the array column (Y-direction) in range [1, 64], constraint: total number of modules <= 1024

**SYM** -- place not-excluded PV-modules symmetrically without voids in rows: '0'/'1' -- no/yes

**dX** -- X-dimension of a module in range [0, 100]

**dY** -- Y-dimension of a module (in the module plane) in range [0, 100]

**gX** -- X-gap between modules in range [0, 100]; periodical X-step from module to module = dX + gX

**gY** -- Y-gap between modules (at iA = 0) in range [0, 100]; periodical Y-step from module to module = dY + gY for all iA

**Stg_H** -- stage height, the height of the lower module's edge above XY-plane in range [0, 100]

**iA** -- inclination angle of modules in range [-90°, +90°]; Normal = Z at 0°, = -Y at +90°, = +Y at -90°

**move_X** -- move the entire array along X-axis by move_X steps (dX+gX) in own CS

**move_Y** -- move the entire array along Y-axis by move_Y steps (dY+gY) in own CS

**Refr_n** -- Refractive Index 'n' of the PV-module front cover, which mainly determines Fresnel Reflection, default = 1.55

Note: Y-gaps gY are defined for the initial "horizontal" (in respect to the XY-plane of own CS) state of modules at iA = 0°, and then the XY-positions of the module centers stay the same at any changed value of iA, so the periodical Y-steps from row to row also stay the same and equal to dY + gY.

**PV-Modules on Trackers** (__available in Shadow Analyzer only !____)__

The "solar" windows of Shadow Analyzer interpret objects of these types as solar collectors, and include them in the shadow and power calculations.

Actually, an object of this type is a 4D (or 2D x 2D) structure that consists of a 2D array of Trackers, where each Tracker supports a 2D array (a plane rectangular panel) of PV-Modules. So the ATT management of such an object has three exclude-options: 1) you can exclude an entire tracker together with all its PV-modules; 2) you can set a common pattern for the panel of PV-modules (with the same configuration of excluded modules in all panels); 3) you can exclude individual modules from the entire 4D structure of PV-modules.

**A: PVM-T1** -- Array (a rectangular matrix) of 1-axis-trackers, each of which supports a rectangular matrix (a plane panel) of PV-modules

**nTx** -- number of trackers in the array row (X-direction) in range [1, 64], constraint: total number of trackers <= 256

**nTy** -- number of trackers in the array column (Y-direction) in range [1, 64], constraint: total number of trackers <= 256

**step_X** -- periodical X-step within the trackers' matrix in range [0, 100]

**step_Y** -- periodical Y-step within the trackers' matrix in range [0, 100]

**move_X** -- move the entire array along X-axis by move_X periodical steps step_X in own CS

**move_Y** -- move the entire array along Y-axis by move_Y periodical steps step_Y in own CS

**Even** -- 'half-step' move of 'even' rows/columns in matrix: 0 -- no, (-/+)1 -- left/right, (-/+)2 -- bottom/top

**Show** -- show plane as: 1 -- initial rectangle, 2 -- allowed trapezoid, 3 -- both, 4 -- their intersection

**dReX** -- X-dimension of 'initial rectangle' in range [0, 100] -- the desired width of the tracker plane (can be restricted by allowed trapezoid)

**dReY** -- Y-dimension of 'initial rectangle' in range [0, 100] -- the actual Y-distance between columns

**Stg_H** -- stage height, the height of the lower column in range [0, 100]

**Exc** -- excentric shift of the tracker's 'plane' from the axis (along the plane's Normal) in range [0, 100]

**iA** -- inclination angle of the axis in range [-89°, +89°]; Axis vector (from front to back column) = +Y at 0°, = +Z at +90°, = -Z at -90°

**oA** -- orientation angle of a tracker in XY-pane in range [-180°, +180°]; use it in addition to Euler angle E1"

**rot_L** -- axial rotation limit in range [0°, 180°]; the rotation span is (-/+) rot_L from its 'noon'-position when the plane Normal is 'vertical'

**Mod_kW** -- power of one PV-module in kW

**Ext-ID** -- plug all modules into an external multi-object PV-string with ID in range [1, 512]; if '0' -- use internal PVS ID of 'ATT'

**nMx** -- X-number of modules on each tracker in range [1, 64], constraint: total number of modules <= 1024

**nMy** -- Y-number of modules on each tracker in range [1, 64], constraint: total number of modules <= 1024

**SYM** -- place not-excluded PV-modules on a tracker symmetrically without voids in rows: '0'/'1' -- no/yes

**dX** -- X-dimension of a module (in the module plane) in range [0.1, 100]

**dY** -- Y-dimension of a module (in the module plane) in range [0.1, 100]

**gX** -- X-gap between modules on a tracker in range [0, 100]; inner X-step from module to module = dX + gX

**gY** -- Y-gap between modules on a tracker in range [0, 100]; inner Y-step from module to module = dY + gY

**Refr_n** -- Refractive Index 'n' of the PV-module front cover, which mainly determines Fresnel Reflection, default = 1.55

**A: PVM-T2** -- Array (a rectangular matrix) of 2-axes-trackers, each of which supports a rectangular matrix (a plane panel) of PV-modules

**nTx** -- number of trackers in the array row (X-direction) in range [1, 64], constraint: total number of modules <= 1024

**nTy** -- number of trackers in the array column (Y-direction) in range [1, 64], constraint: total number of modules <= 1024

**step_X** -- periodical X-step within the trackers' matrix in range [0, 100]

**step_Y** -- periodical Y-step within the trackers' matrix in range [0, 100]

**move_X** -- move the entire array along X-axis by move_X steps step_X in own CS

**move_Y** -- move the entire array along Y-axis by move_Y steps step_Y in own CS

**Even** -- 'half-step' move of the tracker 'even' rows/columns in matrix: 0 -- no, (-/+)1 -- left/right, (-/+)2 -- bottom/top

**Col_H** -- column height in range [0, 100]; columns are vertical even if the array's own XY-plane is not horizontal

**Exc** -- excentric shift of the tracker plane from the rotation 'dead-point' (along the plane's Normal) in range [0, 100]

**El_min** -- minimal Elevation of Normal (tracking constraints at 'low Sun') in range [0°, 90°], default = 0°

**El_max** -- maximal Elevation of Normal (tracking constraints at 'high Sun') in range [0°, 90°], default = 90°

**Az_0** -- the 'noon' tracking azimuth (towards-noon-Sun), set to 180/0 for Northern/Southern Hemisphere, default = 180°

**Az_L** -- the azimuthal tracking limit (-/+ from Az_0) in range [0°, 180°], default = 180° results in no constraints

**Mod_kW** -- power of one PV-module in kW

**Ext-ID** -- plug all modules into an external multi-object PV-string with ID in range [1, 512]; if '0' -- use internal PVS ID of 'ATT'

**nMx** -- X-number of modules on each tracker in range [1, 64], constraint: total number of modules <= 1024

**nMy** -- Y-number of modules on each tracker in range [1, 64], constraint: total number of modules <= 1024

**SYM** -- place not-excluded PV-modules on a tracker symmetrically without voids in rows: '0'/'1' -- no/yes

**dX** -- X-dimension of a module (in the module plane) in range [0.1, 100]

**dY** -- Y-dimension of a module (in the module plane) in range [0.1, 100]

**gX** -- X-gap between modules on a tracker in range [0, 100]; inner X-step from module to module = dX + gX

**gY** -- Y-gap between modules on a tracker in range [0, 100]; inner Y-step from module to module = dY + gY

**Refr_n** -- Refractive Index 'n' of the PV-module front cover, which mainly determines Fresnel Reflection, default = 1.55

**Trackers without PVM** (implemented as wire-frame models, __available in Shadow Analyzer only !__)

An object of this type by itself is not a solar collector. However, if you attach a set of PV-modules to each tracker, then Shadow Analyzer will interpret such a compound object as a solar collector of your specific design, and will include it in the shadow and power calculations.

To manage PV-strings of such a compound object, you need to apply the ATT-editing individually to each set of PV-modules. To unite a few sets of PV-modules (perhaps situated on different trackers) into one PV-string, you can use the parameter Ext-ID.

**A: T1-Frame** -- Array (a rectangular matrix) of 1-axis-trackers without PV-modules

**nTx** -- number of trackers in the array row (X-direction) in range [1, 64], constraint: total number of trackers <= 256

**nTy** -- number of trackers in the array column (Y-direction) in range [1, 64], constraint: total number of trackers <= 256

**step_X** -- periodical X-step within the trackers' matrix in range [0, 100]

**step_Y** -- periodical Y-step within the trackers' matrix in range [0, 100]

**move_X** -- move the entire array along X-axis by move_X periodical steps step_X in own CS

**move_Y** -- move the entire array along Y-axis by move_Y periodical steps step_Y in own CS

**Even** -- 'half-step' move of 'even' rows/columns in matrix: 0 -- no, (-/+)1 -- left/right, (-/+)2 -- bottom/top

**Show** -- show plane as: 1 -- initial rectangle, 2 -- allowed trapezoid, 3 -- both, 4 -- their intersection

**dReX** -- X-dimension of 'initial rectangle' in range [0, 100] -- the desired width of the tracker plane (can be restricted by allowed trapezoid)

**dReY** -- Y-dimension of 'initial rectangle' in range [0, 100] -- the actual Y-distance between columns

**Stg_H** -- stage height, the height of the lower column in range [0, 100]

**Exc** -- excentric shift of the tracker's 'plane' from the axis (along the plane's Normal) in range [0, 100]

**iA** -- inclination angle of the axis in range [-89°, +89°]; Axis vector (from front to back column) = +Y at 0°, = +Z at +90°, = -Z at -90°

**oA** -- orientation angle of a tracker in XY-pane in range [-180°, +180°]; use it in addition to Euler angle E1"

**rot_L** -- axial rotation limit in range [0°, 180°]; the rotation span is (-/+) rot_L from its 'noon'-position when the plane Normal is 'vertical'

**A: T2-Frame** -- Array (a rectangular matrix) of 2-axes-trackers without PV-modules

**nTx** -- number of trackers in the array row (X-direction) in range [1, 64], constraint: total number of modules <= 1024

**nTy** -- number of trackers in the array column (Y-direction) in range [1, 64], constraint: total number of modules <= 1024

**step_X** -- periodical X-step within the trackers' matrix in range [0, 100]

**step_Y** -- periodical Y-step within the trackers' matrix in range [0, 100]

**move_X** -- move the entire array along X-axis by move_X steps step_X in own CS

**move_Y** -- move the entire array along Y-axis by move_Y steps step_Y in own CS

**Even** -- 'half-step' move of the tracker 'even' rows/columns in matrix: 0 -- no, (-/+)1 -- left/right, (-/+)2 -- bottom/top

**dX** -- X-dimension of a decorative rectangular boundary of the tracker plane in range [0, 100]

**dY** -- Y-dimension of a decorative rectangular boundary of the tracker plane in range [0, 100]

**Col_H** -- column height in range [0, 100]; columns are vertical even if the array's own XY-plane is not horizontal

**Exc** -- excentric shift of the tracker plane from the rotation 'dead-point' (along the plane's Normal) in range [0, 100]

**El_min** -- minimal Elevation of Normal (tracking constraints at 'low Sun') in range [0°, 90°], default = 0°

**El_max** -- maximal Elevation of Normal (tracking constraints at 'high Sun') in range [0°, 90°], default = 90°

**Az_0** -- the 'noon' tracking azimuth (towards-noon-Sun), set to 180/0 for Northern/Southern Hemisphere, default = 180°

**Az_L** -- the azimuthal tracking limit (-/+ from Az_0) in range [0°, 180°], default = 180° results in no constraints

*Note: All "solar" array-objects are available in Shadow Visualizer, but for the visualization and project presentation only, without the shadow and power calculations!*

**Simple Buildings**

**Bld_41** -- Building (4 walls, 1 roof plane) is centered on the XY-plane of its own CS

**dX** -- X dimension ( > 0 )

**dY** -- Y dimension ( > 0 )

**hf** -- front wall height ( > 0 )

**hb** -- back wall height ( > 0 )

**ex** -- x-extension of the roof's side edges outside the side walls' planes ( >= 0 )

**ef** -- y-extension of the roof's front edge outside the front wall plane ( >= 0 )

**eb** -- y-extension of the roof's back edge outside the back wall plane ( >= 0 )

**Bld_42** -- Building (4 walls, 2 roof planes) is centered on the XY-plane of its own CS

**dX** -- X dimension ( > 0 ). Constraint: dX > 2*|xt|

**dY** -- Y dimension ( > 0 )

**hw** -- side walls' height ( > 0 )

**xt** -- x-position of the roof top line. Constraint: -dX/2 < xt < dX/2

**hr** -- roof height above the side walls' top edge ( >= 0 )

**ex** -- x-extension of the roof's side edges outside the side walls' planes ( >= 0 )

**ey** -- y-extension of the roof's front/back edges outside the front/back walls' planes ( >= 0 )

**Bld_43** -- Building (4 walls, 3 roof planes) is centered on the XY-plane of its own CS

**dX** -- X dimension ( > 0 )

**dY** -- Y dimension ( > 0 ). Constraint: ft <= dY

**hw** -- side walls' height ( > 0 )

**ft** -- y-distance between the front wall's plane and the roof's front top point ( > 0 ). Constrain: ft <= dY

**hr** -- roof height above the side walls' top edges ( >= 0 )

**ex** -- x-extension of the roof's side edges outside the side walls' planes ( >= 0 )

**eb** -- y-extension of the roof's back edge outside the back wall's plane ( >= 0 )

**Bld_44** -- Building (4 walls, 4 roof planes) is centered on the XY-plane of its own CS

**dX** -- X dimension ( > 0 )

**dY** -- Y dimension ( > 0 ). Constraint: dY >= 2*ft

**hw** - walls' height ( > 0 )

**ft** -- y-distance between the front/back wall's plane and the roof's front/back top point ( > 0 ). Constraint: ft <= dY/2

**hr** -- roof height above the walls' top edges ( >= 0 )

**ex** -- x-extension of the roof's side edges outside the side walls' planes ( >= 0 )

**BlF_Orl** -- Building fragment: Oriel (2 roof planes) is built on a polygon on the XY-plane of its own CS

**nw** -- number of walls in range [2, 5]

**rwp** -- outer radius of a polygon, on which walls are built ( > 0 )

**hw** -- walls' minimal height -- the height of the lowest vertical edge ( > 0 )

**hr** -- roof height above the walls' minimal height ( >= 0 )

**ex** -- x-extension of the roof's side edges outside the side walls' edges/planes ( >= 0 )

**ey** -- y-extension of the roof's front edge outside the walls' front edge/plane ( >= 0 )