Calculations
Tables
Minispreadsheets
Blockpad supports tables that act like minispreadsheets inside of a document. You can use normal Blockpad formulas in the table, and reference values back and forth between the table and report.
Insert a minispreadsheet table:
 While in a document, click the Insert Table button in the toolbar.
 Click OK.
You can use all of the Blockpad formula features inside of a table, including units, naming values, and creating functions.
To reference values in the table, you can use clicking like in a spreadsheet or any other referencing method. Notice the table name appears in front of the value. This is because a table is a frame that contains values.
You can change a table's name so that a useful name appears in the formula.
 Select the table by clicking on the label.
 Open the properties window.
 Under Object, click Name.
 Type in the new name.
 Press enter.
Referencing works both ways. You can reference document values from inside a table too.
Multiline cells
You can also have a word processor style table cell, called a multiline cell. Multiline cells act a lot like a document, so you can do all the same things, like format text, equations with math notation, and more.
Change a cell to multiline:
 Select the cell or cells.
 In the toolbar, change Value Cell to Multiline.
(To change a cell width, you can use the properties window or show rulers (View>Show Rulers) and drag the borders of the ruler.)
A multiline cell is considered to be a frame, like a table. You don't need to specify the name in front of references because capture values is set to no by default.
Word processor tables
In a report, you may often want all of the cells in a table to be multiline. Do this automatically by selecting word processing mode when you insert a table.
Insert a word processor style table:
 While in a document, click the Insert Table button in the toolbar.
 In the window that appears, change Mode to Word Processing Mode.
 Click OK.
Fields
Fields act like spreadsheet cells, but in a document. You can have formulas in them like a dynamic equation, but the formatting is more similar to a spreadsheet cell.
For example, fields will hide any formula inside by default, just like a spreadsheet cell.
Inline fields
Fields are a set width by default. While you can manually change the width in the properties window, the field will not adjust to the content inside.
However, you can change this behavior by changing the field type to "inline". When changed to inline, the field will fit the size of the text or value inside.
Dropdown lists
You can use fields to make a dropdown list so that people using the document can only choose from a preset list of options.
Create a dropdown list in a report:
 Insert a field using the field button in the toolbar or the insert button.
 Select the field and open the properties window.
 If desired, name the field by editing the Name property.
 This is the name that will be used in calculations.
 In the properties window, select the Value Definition property, near the bottom under Style.
 In the window that appears, select From Option List in the dropdown.
 Enter a formula that results in an array.
 The items in that array will be the the dropdown list options.
 You can type in an array directly, reference a named array, or reference a group of cells.
 Often it's best to create an array in the document, and then reference it in this window.
 Click OK.
You can also follow the steps above to create a dropdown list in a spreadsheet cell.
Builtin functions
In Blockpad, you can use functions inside of formulas/dynamic equations, just like in a spreadsheet. There are a lot of built in functions, but it's also easy to make your own custom functions, which is covered farther down.
Below is a basic intro to Blockpad builtin functions. For something more indepth, see the functions section of the deep dive.
Blockpad functions are made to match conventional spreadsheet functions. So Blockpad includes most basic math functions like Sum(), Sqrt(), Abs(), and Average().
However, unlike conventional spreadsheets, Blockpad functions are made to work with units intelligence.
Trig functions are a noteable example of this. You can give the inputs in degrees or radians, and the result will reflect that.
Blockpad also includes most other kinds of functions found in spreadsheets and more, including text functions, logic functions, lookup functions, calculus functions, and numerical solving functions.
Custom functions
Custom functions are simple and accessible in Blockpad  you can create them in a normal formula and use them throughout a document.
You can also save functions to a library and use them in different files or share them with colleagues.
Defining custom functions
To define a function, specify the function name, the function variables, and the calculation. Let's look at the sample below.
In the first dynamic equation, "hypotenuse" is the function name, "A" and "B" are the function variables, and Sqrt(A^2 + B^2) is the calculation. Now hypotenuse() is defined as a function, and you can use it in calculations. In the second equation, hypotenuse is used as a function and calculates the inputs 3 ft and 5 ft.
Create your own function
 Type in the function name.
 Type in open and closed parentheses.
 Inside of the parentheses, type in the function variables.
 Variables are separated by a comma.
 Variables are in the order that you will select them when using the function later.
 Type an equals sign.
 Type the function calculation like any other calculation, but use the function variables where you want them.
You can also think of making a function in terms of calculating a value.
First, write out the formula as if you were calculating a single value. Then, replace change the value or values in the formula to parameters by renaming them and putting them in parentheses after the name.
Using custom functions
Using a defined function is very similar to referencing a value: clicking, copy reference, or typing the name in all work. Then proceed like a normal builtin function, with parentheses and values for the function variables.
Named values in function definitions
You can use named values and spreadsheet cells in the document as part of a function definition, just make sure the names don't conflict with the parameter names.
In the example below, the density value is part of the function. If you change the density, then it changes the function and thus the output as well.
Layering custom functions
You can also use your own defined functions inside of a custom function.
This makes sense to do if a function you're writing starts to get too long. You can write part of it in one function, then use that function in the final one.
A few things to remember:
 Function names and function variable names follow the same rules as value names (can't start with a number, etc.).
 Function variable names are local to the function. So, you can use that same name for a value outside of the function, and it won't relate in any way to the function.
 Functions are stored in Blockpad very similarly to values (functions are actually considered to be "values"). So, referencing values and using a defined function are very similar.
Inline functions
There is another way to define a function, without giving it a name.
To do so, type the function variables in parentheses, an equals sign with a greater than sign, and then the calculation. To use this function, you can use copy reference or clicking and Blockpad will autogenerate a name. For single variable functions, the parentheses can be dropped.
You can define functions like this in a spreadsheet cell, and then reference the cell to use the function. Using a function like this can feel a little funny. It's not particularly recommended, but it's mentioned here for understanding.
You can also name functions while defining them like this. Just type the name and equals sign before the inline function, like you are naming a value.
Equation solving
Solver sections
Solver sections make solving systems of equations straight forward. Check out the video on solver sections or learn more in sections.
Insert a solver section:
 Select the solver button in the toolbar.
To use a solver section, type in dynamic equations that use new variables. You can reference already named values like normal. When there's enough information to solve for the variables, the answers appear at the bottom. You can reference these answers the same way you reference other values in a document.
That's enough to get started with calculations
Feel free to move on to spreadsheets, or continue to learn more calculation features.
Table of Contents

 Start a new document
 Dynamic equations
 Unit tracking
 Value names
 Reference unnamed values
 Text values
 Other value types
 Referencing a value
 Value name rules
 Names used multiple times
 Renaming and autoupdated references
 Built in values
 Visual editor
 Math layout options
 Show steps and more
 Value formatting

 Text values
 Date and time arithmetic
 Logic and Boolean values
 Matrices and arrays
 Enter an array or matrix
 Array names
 Matrix calculations
 Itembyitem calculations
 Arrays  more than just numbers
 Array formulas in spreadsheets
 Array parentheses lookup
 Assign individual value names
 Advanced array functions
 Complex numbers
 Spreadsheet in a file
 Sort and filter
 Conditional formatting
 Blockpad specific features
 Open a CSV file
 Minispreadsheets in a document
 Reports in a file
 Header and footer
 Page layout properties
 Comments
 Document navigation
 Documentwide formatting
 Start a drawing
 Drawing objects
 Lines, points, and shapes
 Text labels
 Linear dimension labels
 Textboxes
 Images
 Selecting multiple objects
 Ordering objects
 Using the point snapping
 Points you can snap to
 Horizontal and vertical from points
 Parallel or perpendicular lines
 Point snap options
 Transformations  resizing and moving
 Format drawings
 Keyboard input and canvas scales
 Notebooks in a file
 Reference values from other top level frames
 Working in a notebook
 Notebook pages
 Top level frames
 Frames in Frames
 Value containers and location
 Frames and sections are containers
 Containers inside containers
 Dot notation to specify a value in a container
 Capture values
 What is a block?
 Block example
 Use the block results
 Block inputs
 View block as table
 Block instances and block definitions
 More examples
 Create a block
 When to make a block
 Make a block with Blockpad calculations
 Update a block definition
 Create a block using scripts
 Block tables
 Examples library
 Use library items in a document
 Use the long form library item name
 Assign a shortcut name to the library
 Include a library in a file
 Use a library number value
 Use a library function
 Use items in a library frame
 Use a library data table as function
 Use library blocks
 Core, builtin, and subscription libraries
 Create personal libraries
 Save items to your library
 Manage your library online
 Library subscriptions
 Console basics
 Read values from the console
 Overwrite values from the console
 Use read and write to manipulate values
 Assign units to numbers in a cell range
 Stemscript basics for scripts
 Macros
 Module functions