What does value By Parent mean and how does it work?

The value “By Parent” can be found in many places while working with VisualARQ and it basically means that the value will be taken from the parent.

Its usefulness resides in the ability to populate certain values automatically by inheritance.

It makes sense when there is a hierarchy of objects, so a parent-child relationship exists. It can be found mainly in two places:

This diagram explains the concept with four elements organized hierarchically that can inherit the color. Element number 4 takes the color of the parent (number 1), but element number 2 breaks the chain by specifying a color by itself, which is then used by its child (number 3).

A conceptual diagram with hierarchically organized red and blue items to demonstrate how By Parent works.

By Parent on a VisualARQ style

This is probably the most common one, you can find the “By Parent” option almost for every value in the Attributes section of the style editor.

When this option is selected the value will be taken from the parent component. The hierarchy can always be seen on the left side of the dialog.

For example, in the case of the window below, if I set the Leaf component and the Frame component to have a Material: By Parent those will take the Material value I set to the style itself (the root component). However, I can break the inheritance for the Glass component just by selecting it and assigning its own material. Check out this tip to learn how materials can be applied to each component of a style.

The VisualARQ Window style editor with a style called "Casement" selected and its tree of subcomponents (frame, leaf and glass) expanded.

When you place objects with that style in the model space, you will be able to assign a value to each object independently only if you have set “By Parent” in the style’s root component attributes.

By Parent on a Rhino block

The case of a Rhino block is very similar to the previous one (behind the scenes VisualARQ objects are like blocks). Basically anything inside a block will be considered a child of the block object, so any value that you set as By Parent on a child (for example the Display Color) will be taken from the parent block object. You can even have several levels of nested blocks, and it will always follow those hierarchy rules.

Short animation of two geometries in a block, one is set the Display Color as By Parent so it takes the color assigned to the block itself, and the other one is assigned a Display Color of green so it ignores the one set to the block.

What happens when you set By Parent but there is no parent?

There are cases where By Parent can be selected but there is no parent.

According to the two cases explained so far you can find these two situations:

  • When you are in the style editor with the root component (the style itself) selected, if you set By Parent to any of its attributes it will take the value you set to the corresponding attribute on the object that you create with that style (like a window object in the case of a window style). In other words it means By Object, so it will let you have a different value for each object.
  • When you select an object in the model space, from the Properties panel you can set the value By Parent to most of its attributes, for example the Pattern or the Linetype. In that case, if the object is not inside a block it will take the value from the layer that the object has assigned, so in other words it means By Layer.