Skip to main content

Block Properties & Hierarchy

The hierarchy of properties in block instances vs definitions

Written by Holly Conrad Smith

Properties in Giraffe typically work at two levels: Usage and Instance.

Blocks add another layer of hierarchy, with additional considerations.

Block Definition Properties

When you create a block, the definition includes any properties you assign to the geometry (either at block create or upon editing).

You can assign both Usages and Instance properties to block definition geometries.

Block definitions can include a combination of multiple geometries with different properties and usages assigned. Example below:

Block Instance Properties

When you place a block instance, it inherits any properties from the definition.

You can change any property values in the properties palette on the left. The property values apply to only the current selection.

Block Property Propogation

Properties on the block insertion point can be applied to the instance's children.

There are three ways the property assigned can affect the child geometries in the block instance.

force

Overrides all child properties

pass

Fills in any undefined child properties

stop

Not passed to children

Change the type of application by clicking the icon in the property palette:

The value each child ends up with depends on the property set on the block, whether the child already defines that property, and the propagation mode

By default, a parent will "pass" properties to its children, with the exception of layer, scenario and levels which default to "force".

Pass

The default behavior when applying a property value to the block instance is "Apply to Undefined."

This behavior applies the property value to any geometry within the block definition that does not have a value saved for that property yet.

The appearance of a property with "apply to undefined" set is a downward arrow:

Force

The "Override Children Properties" setting forces the selected property value to change all geometries in the block instance, regardless of property values saved to the block definition.

The appearance of a property with "Override Children Properties" set is a double downward arrow:

Stop

The "Do not apply to children properties" setting skips applying the attribute to specific block instances.

The appearance of a property with "Do not apply to children properties" set is a empty dot:

Spot-Check Overrides

When you are in block edit mode, you can review the property overrides that have been applied.

The Block menu in the top right of the canvas displays any properties that have been applied to the current instance, and the assignment setting.

To preview the block without the property overrides, toggle the eyeball.

Blocks & Stacking

The stackOrder of the Block Instance behaves like every other property in Blocks. When you place a block, it retains the stack order defined in the block definition by default.

This can be useful when defining stack order within blocks for detailed stacking controls.

However, if stacking is not behaving as expected, you may need to override.

To override the stack order, select "overrides children properties."

Did this answer your question?