The Generate Child Groups by Property tool divides the objects of a group into child groups based on the values of a text property. The tool creates one child group for each unique value and adds the objects that have the value to that child group. You don't need to know the values or the names of the child groups in advance.
For example, you can divide a group called External walls by fire rating to get the child groups EI30, EI60 and so on under it. You can then use these child groups like any other groups, for example, as the target of another tool.
The objects also stay in the parent group. The child groups get the group category of the parent group, and they can be manual or rule based.
There are also other ways to create groups:
- To divide any set of objects into groups, for example, all the objects of an object class, use the Generate Groups by Property tool. It creates manual groups only.
- To create a single group, or a group defined by a rule, use the Add or Modify Group tool.
- The Generate Groups by Text Property dataflow does a similar grouping under a parent group, and creates the parent group if it is missing.
How the objects are divided
- The tool divides the objects that are directly in the parent group.
- Upper and lower case letters are treated as the same value. For example, EI60 and ei60 end up in the same child group. The spelling that the tool finds first becomes the name of the child group.
- Objects that have the property but no value for it go to a child group called <no value>. In manual child groups, a value that contains only spaces counts as no value.
- Objects whose object class does not have the property go to a child group called <not applicable>.
You can turn off the last two child groups in the settings. They are created only when there are objects for them. If you use Simplebim in another language, the names of these two groups are in that language.
After the run, the tool reports for each level how many child groups it generated from how many objects, how many existing groups it deleted first and how many objects it did not group.
Several levels of groups
If you list several properties in the Grouping Property setting, the tool builds a hierarchy of child groups. The first property divides the objects of the parent group into child groups, and each further property divides every child group of the previous level. All the levels use the same settings and the group category of the parent group.
For example, with the properties Fire rating and Material the result can look like this:
- External walls
- EI30
- Concrete
- EI60
- Concrete
- Steel
- <no value>
- Concrete
- EI30
An object stays in the groups of the upper levels as well, so in this example an EI60 steel wall belongs to External walls, EI60 and Steel. The <no value> and <not applicable> child groups are divided like the other child groups. If you have turned off one of them, an object that would belong to it stays only in its group on the previous level.
To divide only some of the child groups further, run the tool again with one of them as the Parent Group.
Settings
Parent Group
Defines the group whose objects are divided into child groups. This setting is mandatory. The parent group can be a child group itself.
The selection must find exactly one group, otherwise the tool reports an error and does not change the model. If several groups have the same name, which is common after generating several levels, also define a group above the group you mean.
The tool does not change the model in these cases:
- The group is not found or it is empty. The tool reports a warning.
- The group is an <ungrouped> group. The tool reports an error.
Child Group Type
Defines the type of the generated child groups on every level. The default value is Manual.
Manual
The objects are assigned to the child groups when the tool runs. After that, the child groups don't follow changes in the property values or in the objects of the parent group, so you need to run the tool again when they have changed. Objects can be added to and removed from the child groups in the user interface via drag&drop.
Rule Based
The objects in a child group are defined by a rule and can be changed only by changing the rule. The rule finds the objects of the parent group that have the value of the child group, and upper and lower case letters are treated as the same value. The rules of the <no value> and <not applicable> child groups find the objects of the parent group that have no value or do not have the property.
Grouping Property
Defines the name or identity key of the property whose values are used for generating the child groups. This setting is mandatory.
You can list several properties to create several levels of child groups. The same property can be listed only once.
Only text properties can be used. The property must be a text property with a single value in every object class that has it among the objects of the parent group. If it is, for example, a number or a list of values in one of these object classes, the tool reports an error and does not change the model. To group objects by a number or another type of value, first copy the values to a text property with the Copy Property Values tool.
If an object class has several properties with the same name, for example in different property sets, the tool reports an error and does not change the model. Use the identity key of the property in this case.
A name can match different properties in different object classes, for example, the Fire rating of walls and the Fire rating of coverings. An identity key matches only one of them, and the objects of the other object classes then go to the <not applicable> child group.
Create Child Group for <not applicable>
If ON, objects whose object class does not have the Grouping Property are collected to a child group called <not applicable>. If OFF, these objects are not added to any child group. The default value is ON.
Create Child Group for <no value>
If ON, objects that have the Grouping Property but no value for it are collected to a child group called <no value>. If OFF, these objects are not added to any child group. The default value is ON.
Non-overlapping Child Groups
If ON, an object can belong to only one child group of a generated child group. If you add an object to such a child group, it is removed from the other child groups of that generated child group. This restriction applies only to manual child groups. The setting applies to the generated child groups on every level, and it does not change the parent group. The default value is OFF.
Limit Child Groups
If ON, child groups that may be added to a generated child group later can only have objects that the generated child group has. This restriction applies only to manual child groups. The setting applies to the generated child groups on every level, and it does not change the parent group. The default value is OFF.
Clear Existing Child Groups
Defines what happens to the child groups that the parent group already has. The default value is ON.
If ON, the tool first deletes all the child groups of the parent group, so you get a clean result when you run the tool again. The child groups of the deleted groups are deleted with them. Only an <ungrouped> child group stays.
The tool deletes these groups no matter how they were created or which category they belong to. Objects that were only in the deleted groups are no longer in the parent group. Turn this setting OFF if you want to keep the existing child groups.
The existing child groups are deleted even if the tool then has nothing to group, for example, when none of the objects has a value and you have turned off the child groups for <no value> and <not applicable>. Nothing is deleted if the tool does not change the model because of the Parent Group or the Grouping Property.
If OFF, the existing child groups stay in the model and the new child groups are added next to them. If a child group with the same name already exists in the same category under the same parent group:
- A manual group gets the new objects in place of its old objects when the Child Group Type is Manual. It keeps its child groups and its own Non-overlapping Child Groups and Limit Child Groups settings.
- A rule based group gets the new rule when the Child Group Type is Rule Based. It keeps its child groups and its own Non-overlapping Child Groups and Limit Child Groups settings.
- If the existing group is of the other type, it is converted to the Child Group Type. It keeps its child groups and gets the Non-overlapping Child Groups and Limit Child Groups settings of this tool.
- A container group cannot be replaced. The tool reports an error and stops, and the child groups it generated before that stay in the model. The same happens if several groups with that name exist.
The other existing child groups affect the result in these ways:
- A child group for a value that no longer exists stays in the model with its old objects, and these objects stay in the parent group as well. You can remove such groups with the Delete Groups tool.
- A child group with the same name in another category stays next to the new child group, so the parent group then has two child groups with the same name.
- Rule based child groups also find the matching objects that are only in the other existing child groups, because these objects belong to the parent group too. Manual child groups get only the objects directly in the parent group.
Release Notes
This tool was added in Simplebim 12.0 SR1
Comments
0 comments
Please sign in to leave a comment.