Skip to main content

Modify Property

Add to, subtract from, multiply, divide or set a number, or a numeric property on any object

Written by Holly Conrad Smith

Use this when you want to do quick math on a number or on a property of any object within a flow, for example adding a parking ratio to a value from a lookup table, scaling every number in a list of unit areas, or setting a value in a settings object. The Modify Property node applies one math operation and passes the result on.

Category: Objects

Kind: Operation

Description: Apply an operator (+ - * / % ** =) to a numeric property of an object. "=" sets the value. If no property is given, the object itself is treated as the number. If a list is provided, the operation is applied to each item.

Inputs

Name

Abbreviation

Type

Access

Description

Object

O

Any

Item

The object or number to change. Connect a list to change every item in it.

Property

P

String

Item

Optional. The name of the property to change. Leave it empty to do the math on the number itself.

Operator

O

String

Item

The math to apply. The default is +.

Value

V

Number

Item

The number to apply. The default is 1.

Outputs

Name

Abbreviation

Type

Access

Description

Object

O

Any

Item

The changed object or number. A list in gives a list out.

Warnings and errors

Message

Cause

Fix

no property provided, object left unchanged

Property is empty and the input is not a plain number.

Enter the property to change, for example parameters.bayWidth.

unsupported operator "<operator>". Use one of: + - * / % ** =

The operator is not one the node knows.

Use one of the listed operators. You can also write them as +=, -= and so on, and ^ for powers.

How to

  1. Open the flow in the Flow Builder and add the Modify Property node.

  2. Connect a number, an object, or a list of them to the Object connector.

  3. To change a property on an object, type the property name into Property. To change a plain number, leave Property empty.

  4. Type an operator into Operator and a number into Value, or connect nodes to them.

  5. Connect the output to the next node in your flow.

Operators

Type one of these operators into the Operator input. The examples start from 10 and a value of 2.

Operator

What it does

Result

+

Adds the value.

12

-

Subtracts the value.

8

*

Multiplies by the value.

20

/

Divides by the value.

5

%

Returns the remainder after dividing by the value.

0

**

Raises the number to the power of the value. ^ works too.

100

=

Sets the number to the value.

2

Compound forms like +=, -=, *= and /= work the same as the plain operators. Spaces around the operator are ignored, and an empty Operator counts as +.

Change a number or a property

  • Property empty: Modify Property does the math on the Object itself. Connect 7, use + and a value of 2, and the output is 9. This works for a single number or a list of numbers.

  • Property set: Modify Property does the math on that property of the object and outputs a changed copy of the object. Use a dot to reach a nested property, for example setbacks.front.

How Modify Property handles edge cases

  • A property that doesn't exist yet counts as 0. Adding 2 to a missing property creates it with a value of 2.

  • The node never changes the original object. It outputs a changed copy.

  • Dividing by 0 returns Infinity, and % by 0 returns NaN. Guard the value upstream if it can reach 0.

Modify Property works on numbers. A text value gives an unexpected result: adding 1 to the text "10" returns "101". Make sure the value holds a number.

Modify Property or Modify Feature Property

  • Use Modify Property for plain numbers, lists of numbers, and settings or data objects.

  • Use Modify Feature Property to change a property on a geometry, like its base height. It reads and writes the geometry's own properties, so you type baseHeight instead of the full path.

Set a property to any kind of value with Write Property. Read a value back out with Read Property.

Did this answer your question?