Applying calculations and conversions to your Products and Bundles enables you to:
Convert one unit to another
Examples:
You are capturing LF of pipe but want to charge by 10-foot sections
You are capturing CuFT of mulch but want to charge by # of bags
Calculation a different amount
Examples:
You are drawing a fence run as a line, but need to show # of Line Posts
You want to round up any intervals of 10 if it is greater than 5 but round down if less than 5
Sections Below
Some Common Calculations and Conversions
Where Calculations and Conversions can be applied
They can be applied at either a Product and/or Bundle level. Each has its purpose as is explained below.
Product Level Use Case
You don't ever need to Bundle the Product. It will be used on its own always
The calculation will never change regardless of whatever Bundle it is added to
Bundle Level Use Case
If the product will be used in Bundles but the need is different for different Bundles, then a single calculation made at the Product level will not work.
Apply at the Product Level
To see how to apply these at the Product level specifically, view the article - Product Level Quantity Modifiers
Apply at the Bundle Level
To see how to apply these at the Bundle level specifically, see the video below
Note: Calculations can be applied at both the Product and Bundle level simultaneously.
Some Common Calculations and Conversions
Chain Link Fabric - Convert LF to Rolls
Calculation | Where to Apple | Type (Per Item or Total) |
50,1,round up (for 50' roll) | Product | Total |
Line Posts - Ensuring automatic collection does not overcount
What happens to the line post count at an end post, corner post, or terminal post? ArcSite has the power to modify your line post count.
What you can do is take the length of each fence section, divide by 8, round up, and subtract 1. CEIL or ceiling is the command to round up or down.
This is one of the few areas we have identified that commonly can use a custom expression. Use the following command as a "custom expression" shown below.
Calculation | Where to Apply | Type (Simple, Advanced) |
ceil(INPUT/10)-1 (for 10' sections) | Bundle | Advanced |
Top Rail - 2 types - Convert to section length or number of 21' rails
A. Convert to Section Length
Calculation | Where to Apply | Type (Simple, Advanced) |
10,.5,round up (for 10' sections) | Bundle | Simple |
B. Convert to the number of 21' rails
Calculation | Where to Apply | Type (Simple, Advanced) |
21,1,round up | Bundle | Simple |
Round up or down based on where the number is in an interval
If you want to round up at a certain point between two ends of an interval and round down below. you can apply this calc to the bundle item or to the product item as needed.
The 10s in the below example are the lengths you would choose 100M, etc. and the 5 is the midpoint number for that where things either round down or up.
Use Cases
To account for partial sections.
Or for extra material where desired for smooth project installation.
Or for rounding down to account for material format/overage.
Calculation | Where to Apply | Type |
(INPUT % 10) > 5? ceil(INPUT / 10) :floor(INPUT/ 10) | Bundle or Product | Advanced or Total |
Nails or Screws by Boxes
For use on a linear Bundle, you can use the simple type of quantity modifier to divide the total by the number per box.
Calculation | Where to Apply | Type (Per Item or Total) |
300 ( where 300 in a box) | Product | Simple |
Nails or Screws by Fence Section
Example: Nails for pickets on a wood fence, let’s say 4 nails per picket and 18 pickets per 8 ft section.
Calculation | Where to Apply | Type (Per Item or Total) |
ceil((INPUT/8)*18*4) | Product | Total |
Tongue and Groove Boards
For the example where for an 8 ft section, you need 15.
Calculation | Where to Apply | Type (Simple, Advanced) |
ceil((INPUT/8)*15) | Bundle | Advanced |
U-Channel
For example, using an 8 ft section
Calculation | Where to Apply | Type (Simple, Advanced) |
ceil(INPUT/8)*2+2 | Bundle | Advanced |
Concrete
For example, when you need 2 bags of concrete per Chain Link Line Post
Calculation | Where to Apply | Type (Simple, Advanced) |
ceil(INPUT/10)-1*2 | Bundle | Advanced |
Dirt, Mulch, etc - Convert from CuFT to Bags, Yards, Truck Loads
Poly Injections - Formulas for calculating amounts
ArcSite can create any number of complex equations where the end user will be presented with a series of prompts to further define a surface drawing.
In the example below, the user defines a surface area, then is prompted to provide both the void depth and an expansion percentage, to determine the amount of gallons of material needed.
This calculation is done on the Product level and using the custom expression option to create.
Below the two custom attributes are added.
Applying Calculations in Bulk
To copy or apply quantity modifiers in bulk please see the video below.
Available Syntax List
The Basics
You may use any valid combination of arithmetic operators and numbers in the expression, such as:
3 * 2 + 5
10 / 4
Use INPUT
And normally you would need to use the keyword INPUT to represent the source input quantity in the expression. So for example, you have a tape product which you draw lines in drawing, but you need to takeoff it as number of rolls. Then you can write the expression like this: (assuming it’s 25’ long per roll)
INPUT / 25
Use Functions
Additionally, ArcSite allows use of functions to support more advanced calculations. So in the example of the tape product above, if you want to round up the number of rolls, you can write this:
ceil(INPUT / 25)
So if the input length is 30’, it would end up with 2 rolls instead of 1.2 rolls.
Here’s the list of supported functions:
Name | Function |
abs(x) | Calculate the absolute value of a number. |
ceil(x) | Round up the value. |
floor(x) | Round down the value. |
pow(x, y) | Calculates the power of x to y. |
round(x) | Round a value towards the nearest integer. |
sqrt(x) | Calculate the square root of a value. |
max(x, y) | Compute the maximum value of a list with values. |
min(x, y) | Compute the minimum value of a list with values. |
sin(x) | Calculate the sine of a value. |
cos(x) | Calculate the cosine of a value. |
tan(x) | Calculate the tangent of a value. |
Use Variables
Sometimes you may need to collect certain data in app to complete the calculation. To do that, you’ll need to define variables. You can place the variable name in the expression just like a regular number, and it’ll be replaced by the actual value once you entered it in app. So for example you have a product of area and you’ve defined a variable named Depth, you can write the expression like this to calculate the volume:
INPUT * Depth
Conditional Expression
If in some cases you only need to apply some value if certain conditions are met, you may write conditional expressions like this:
INPUT * (SomeVariable > 5 ? SomeVariable : 0)
This means, if SomeVariable has a value that is greater than 5, multiply INPUT with SomeVariable as the modified quantity, otherwise use 0.