The Validation routines inspect all of the Input data ( i.e. Vertical, Room and Element data ) for a Contract and check that the entries are valid. They also do some initial calculations in readiness for the Calculation of the Bill. Reports are produced detailing queries, errors and also providing some useful information.
There are two types of Report with these routines.
The Error report only includes those messages which describe errors. These must be corrected before proceeding to the Calculation routine.
The Full report includes the error messages and any relevant "information only" messages which the system produces.
The Room Data Validation procedure is the most complex of the Validation routines.
The process works methodically through the walls of each Room, starting with Wall 1. It looks at the thickness of Wall 1 and its Wall Type (i.e. whether it is internal or external) and the thickness and type of Wall 2. This information together with the included angle is used to calculate the adjustments to the lengths of the two walls at their point of intersection. This process is repeated for all wall junctions in the room, resulting in a complete table of outside lengths ol for the room. The area bounded by these outside lengths is then calculated as the gross area. The plan area of all wall Shell Elements is then calculated and deducted from the gross area to give the net area. The mean length ml of the wall is calculated as the average of the inside and outside lengths il and ol.
It will be seen that in order to successfully check the Room Data, the Wall thickness and type of the Wall Shell Elements MUST have been entered correctly. IF EITHER OF THESE VALUES ARE EDITED ON ANY ELEMENT WORKSHEET, THE ROOM DATA MUST BE RE-CHECKED.
Other data on the Element worksheet, on the other hand, does not affect the Room checks and therefore changes to these fields need not be followed by a re-validation of the Room Data.
If any of the Data mentioned above is invalid or not available an error message will be produced. All error messages include the location code of the room being processed at the time of the error.
All of these messages are preceded by the location code for the room in which the error occurred.
Unit ______ Level ______ Area ______ Room ______
The messages that may occur are :
1. Element ______ does not exist
The wall shell element specified against a wall length has not been created. The process cannot obtain the necessary information to calculate the centre line of the walls and the areas of the rooms.
2. Angles do not resolve.
The wall angles as input do not reconcile to (2n-4)*90 degrees where n is the number of sides of the room. Note that when a straight wall is divided into two, e.g. if the decoration changes, then it becomes two walls with an included angle of 180 degrees.
3. Room is not complete: Error ___.__%
The last wall does not finish at the same position as the first wall starts.
If the room is not complete within the tolerances set in the program, Calculix will continue to calculate the area of the room as best it can. It will display the information it has used and indicate the amount of the errors. This is so that when working on large-scale drawings with irregular shapes, a sensible value can be accepted even if it is outside the range of accuracy. If the reported error is acceptable no further action is required and the message can be disregarded.
When this error occurs all of the room data is printed out in order to assist with error checking.
NOTE A similar message to this may occur when the room data is written away after input but it is not quite the same. In this case the Start and Finish points which are being checked are those AFTER the adjustments have been made ( i.e. if the room sizes were input as internal dimensions then this check is based on the outside face of the walls and vice versa ). It is therefore possible to get this message in the Validation routine even though it didn't occur when the data was written away.
4. Wall thickness not specified for wall type ______
The W field for a wall shell element has been left NULL. The value can be 0 (zero) but the effective thickness of the wall must be entered.
5. Illegal wall type
The wall type (entered in the H field of a wall shell element) should be either i, x or c in column 1 and i or x in column 2. Any other entry will produce this message.
6. Warning: wall assumed external
The wall type field (H) has been left NULL in column 1. The processor assumes that the wall is external, i.e. wall type x.
7. Warning: wall assumed measured internally
The wall type field (H) has been left NULL in column 2. The processor assumes that the input length for this wall was measured internally.
8. Unit ___ has no vertical data
The vertical data has not been input for the building unit. If the formulae do not use the vertical data then this will not create any errors.
10. Level __ in Unit ___ has no vertical data
The specified level code has not been entered in the vertical data. If the vertical data is not used in formulae then this will not lead to any errors.
In addition to the error reports there is a message for information only. This message are only included in the FULL report.
This shows the value of the gross area, floor area, perimeter and the net area for each room of the building for reconciliation purposes. If this message does not appear for any room then "Calculix" has not been able to calculate the areas. In such a case other messages will also appear explaining the problem so there is no danger of a room being missed out.
Summaries giving the total gross area, total floor area and the total net area are also given for each AREA, LEVEL and UNIT of the contract.
This is a special facility which checks every room that has been edited since it was last validated. This includes all new rooms which haven't been validated at all. This routine could be used all the time as it effectively ensures that every room is properly checked without re-checking rooms that have already been done.
The Vertical Data is validated on input for a coherent set of data. This Vertical Data check therefore ensures that the input has not been corrupted during file handling within the computer. The routine also calculates the external references of storey height, floor height, floor finish thickness and ceiling height for every floor in preparation for use in the Bill Calculation process.
The Calculation routines CANNOT be run unless some Vertical Data has been created. This is irrespective of whether the height references are actually used.
The following messages are possible as a result of checking the Vertical Data.
In fact similar checks are carried out when that the Data is input, and it is theoretically impossible that any of these messages could occur. They could, however, crop up if the Data is corrupted. The messages are self-explanatory and need no further explanation here.
1. Duplicate floor code __ in Unit ___
2. Incomplete floor __ in Unit ___
3. Vertical data inconsistent between floors __ and __ in Unit___.
4. Vertical heights inconsistent for floor __ in Unit ___
5. Miscellaneous datum 1 missing from __
6. Missing datum __ on floor __
7. Missing datum for miscellaneous floor __
8. Bad timesing factor for floor __ in Unit ___
9. Cannot calculate storey height for floor __ in Unit__.
10. Bad quantity in floor __ in Unit ___
Additionally the report lists the vertical external references (sh, fh ff and ch) which it has calculated from the input. This is for information only and is only included in the FULL report.
The Element Validation process involves extensive checking and pre-processing of the Formulae of the Element items.
In order to check the Element data the routine must first of all analyse the Formula into its component parts. This basically involves identifying the operators and the data. If it cannot make sense of the Formula it will indicate where the problem is.
It will then look up all the internal references and convert these into actual numbers. If any of these internal references are invalid or incomplete an error message will be produced stating the Element, the Formula number and the nature of the error condition.
If there are no errors so far and the Formula contains NO external references then the Formula can now be evaluated. The resulting value will be stored for use in the Calculation routines. If the Formula includes an external reference then the process can go no further but the Formula is marked as "OK".
If the check is unsuccessful, then the Formula is marked with an error label and subsequent processing in the Calculate Bill routine will produce the message "Warning - validation should be run".
When a whole Element has been checked a marker is set indicating that it is ready for Calculation. If the same Element is subsequently edited the marker is un-set until it is re-processed by the Validation routine. If this is not done, then the Element will be checked during the Calculation routine. Any errors in the Element will be printed out in the Calculate Bill Report and the Element will be re-checked every time it is found in the Bill process.
When An Element has been checked a subsequent print-out of the Element will include the quantity produced by each formula. Formulae containing external references are not fully evaluated at the Validation stage and these are therefore referred to as "External".
THE PROCESSING OF A FORMULA IS ABANDONED AS SOON AS AN ERROR IS ENCOUNTERED. Correcting all reported errors will not therefore necessarily produce error-free data since some formulae may have contained more than one error.
These messages all start with a heading of the appropriate Element code and Formula line number, followed by a listing of the complete Formula. An arrow ( ^ ) points to the approximate position in the Formula at which the processing was halted, and is followed by one of the following messages.
1. Element ___ Formula ___ (L+2*7l)
^length L undefined.
(Similar messages occur for undefined internal reference fields, i.e. L,W,H,A,B,C,l,w,h,99l,99w,99h)
The formula contains an internal reference which has been left blank. In the case of 99l, 99w and 99h the message only says "Dimension undefined".
2. Element ___ Formula ___ 7l*rt-8
^ can't find square root of negative number.
The processor cannot determine a value for the square root of a negative number. The Formula must be corrected.
3. Element ___ Formula _____ 16q;R(A-H+6l)1,2
^ test for under) ' , ' expected
test for over)
test for range)
test for equals)
test for adder)
Unders, Overs and Ranges use commas to separate their individual fields. If the requisite number of commas is not found this message will appear with the arrow pointing to the area where a comma would be expected.
Note that no comma is required (or allowed) after the U R or O. The function is a fixed length and the processor knows that what follows is the first "argument" of the expression.
4. Element ___ Formula ___ 2+Bz
^ unknown operator or rubbish in formula.
This message appears if the program is unable to analyse the formula into a coherent set of instructions. The arrow will point to the position at which the processor was unable to interpret the input data.
5. Element ___ Formula ___ tan90*ol
^ cannot find 'tan' of 90 degrees.
The tangent of 90, 270 etc. is infinity and this message indicates that the formula would result in a nonsense value.
6. Element ___ Formula ___ 2+int((A-H)/0.450
^ Closing ')' expected ''
The processor analyses brackets in matched pairs. If the second half is missing, or if the second half is a non-matching bracket, this message will appear. The processor cannot, of course, anticipate opening brackets and no such similar message occurs for opening brackets. If an unmatched closing bracket is found an "unknown operator or rubbish in formula" message will occur.
7. Element ___ Formula ____ 8q
^ circular reference in formula _ to formula _
This message occurs if a formula refers to the value of another formula which itself refers back to the current formula.
Both formulae have circular references but the message will only be printed once. The first reference will be accepted as valid and the second reference will be the one producing the message.
8. Element ___ Formula ___ 18q
^ formula ___ does not exist
This message occurs if the formula refers to a formula on another line which has been left blank.
9. Cannot do NULL ____ etc.
This is a series of messages in which the processor is being asked to do mathematics on a number which has the value NULL. The result would be meaningless and so this message is produced. The relevant part of the formula is printed out in the message.
10. Cannot divide by zero ' ______ / 0 '
The formula involves dividing a number by zero which would give result of infinity. The relevant part of the formula is printed out in the message.
This facility checks only those Elements that have been edited since they were last checked. This includes all new Elements that haven't yet been checked at all.
Send mail to
with questions or comments about this web site.