If the rule for attaching a recipe was the only mechanism for automated measurement, it could easily necessitate a huge list of recipes with slight variations to account for every situation. In practice, many recipes broadly share the same conditions but differ slightly in either the quantity calculation or target bill item.
This leads to the core of the ‘recipe’ concept, where many different ingredients can be combined in a single solution. Consider, for example, a recipe broadly accounting for the cost of brick masonry. With appropriately named materials, it would be easy to attach a recipe on the basis that the material name contains the word “brick”. Even if the cost or brick type is identified by properties, there are 2 potential problems:
-
The unit rate (cost) for each brick type may depend on data in the bill or an external database, in which case the quantity for each brick type will be allocated to a different item
-
There may be multiple brick skins, potentially of different types or thicknesses, in a single wall.
Once a ‘brick’ recipe has been created with a rule to attach to all relevant walls, all bill items can be attached with a rule and calculation for each governing when and how a quantity is measured. Referring to the illustration in section 4.2, note the following features of the Recipe Manager:
-
The list of bill items added to the recipe in panel 4;
-
The rule for taking a measurement against the selected bill item in panel 5, field a;
-
The quantity calculation for the selected bill item in panel 5, field b;
For brick types, the material names would ideally define the brick type (by supplier code or product name). If, for example, a specific brick material is named “Brick – Furness Handbridge Blend 215”, the rule could be:
wall.material includes “Brick – Furness Handbridge Blend 215”
…ensuring the quantity calculation take a measurement against the bill item when the wall includes that exact brick type. The quantity calculation could then also reference the volume of that specific material, dividing it by the unit volume of a single brick (mortar could be included in this case, but there are many alternatives):
wall.material(“Brick – Furness Handbridge Blend 215”).volume / 0.00125
If the quantity should be rounded up to to the nearest whole number, it could be:
roundUp(wall.material(“Brick – Furness Handbridge Blend 215”).volume / 0.00125, 1)
There is no rule for deciding when a new recipe is preferable to an optional measurement in an existing recipe. It’s technically possible to make just one recipe that is attached to all elements and allow optional measurements to allocate quantities, but that recipe and the rules for optional measurements would likely be complex and bloated. Conversely it’s also possible to have a different recipe for every quantity measurement, but the list would likely be impracticably long and the attachment rules would be complicated.
The best strategy is to target recipes to groups of bill items or elements that are broadly similar, and allow the optional measurements to take care of the detail.
Comments
0 comments
Please sign in to leave a comment.