Check below the assemblers used for Aggregates or directly access the content you have doubts:
- %ModuleID.IDAaggregate.DesiredInformation%
- %CHECKED(IDmódulo. IDAgregado)% assembler
- $HASCHILDREN(ENTITY_ID)$ assembler
!Find Assembler
The !Find assembler is used to search for information about a specific group or entity. It is generally used in the reference assembly of Format Templates, but it can be used in several other functions in the customization of Promob.
Find can only be used to search for references when this search refers to one of the item's aggregates.
To search for information for a particular reference in a module aggregate:
!find(entityid,id_entity).$REFERENCE(information)$!
To search for information for a particular reference in a group aggregate:
!find(groupid,id_group).$REFERENCE(information)$!
EXAMPLE 1:
!find(groupid,POR_MOD_INF*).$REFERENCE(FORMAT)$!
In this example, the search will be for the FORMAT reference within any item (*) of the group (groupid) POR_MOD_FOR *.
IMPORTANT: The * used at the end of the ID is for the reference to search in all groups that have the ID POR_MOD_FOR even if it contains some information after the FOR such as the ID POR_MOD_FOR_INF, this makes it easier when looking for the IDs in the format templates door.
EXAMPLE 2:
!find(entityid,POR_COZ_INF).$D$!
In this example, the search will be done by the depth ($ D $) of the entity (entityid) POR_COZ_INF.
IMPORTANT: For the result to return, the aggregate in question must be active.
!FindAndJoin Assembler
The !FindAndJoin assembler is used to search for information from all repetitions of the item and sum up the responses. That is, it is used to fetch the finishes of all child items of the parent item. Just like the Find! assembler, with it, it is possible to use it in different places and search for different variables and references.
EXAMPLE:
To register a door with two panels of different types of finishes:
1. Reference PANELS with the value !findAndJoin(groupid,group_id,-).#DESCRIPTION#!
NOTE: The separator used in the assembler is the hyphen ( - )
2. group_id as panel group ID;
3. Description of the door (parent item) searches the PANELS reference;
4. Each Panel in the panel group has the description Panel #POSITION# @color_model@;
5. Door with 2 panels, wich, the panel in position 1 will be Black and the panel in position 2 will be White, the name of the door in the 3D space will be: Panel 2 White - Panel 1 Black.
NOTE: It is possible to indicate instead of groupid value, entityid value, and entity_ID when there is no item group. Below are images in practice:
In the Traverse Function of this door, only one module is set, so the assembler is !findAndjoin(entityid.'. If it were a group of glasses, it would look for the 'findAndjoin(groupid.'
Still in this example, in the reference of the parent item, the assembler searched the entity, the entity id and the description of the child items of the door panel (image above), getting: !findAndjoin(entityid,rom_r_mov_co_pai_p_mon_ocu_int_vid_s,-).#DESCRIPTION# !
In the 3D space, when selecting the door with two types of finish, it is possible to view the description of the two types of finish present on it.
%IDmodule.IDAggregate.DesiredInformation% Assembler
In addition to Find, it is possible to use the assembler below to search for aggregate information. This assembler should only be used on the item that has the item mentioned in the aggregate formula.
%IDmodule.IDAggregate.DesiredInformation%
Example:
%POR_MOD_FOR_INF.Model.$REFERENCE(FORMAT)%
In the example, the information sought will be the FORMAT reference in the item or group POR_MOD_FOR_INF.
The desired information may be an assembler (not related to the environment) mentioned in the table above.
EXAMPLE:
%IDmodule.IDAggregate.$EntityID$% assembler
Returns the name (abbreviation) of the aggregate.
%IDmodule.IDAggregate.$Width$% assembler
Returns the width of the aggregate.
%IDmodule.IDAggregate.$Reference(COMPLETE)$% assembler
Returns the COMPLETE reference of the aggregate.
IMPORTANT: For the result to return, the aggregate in question must be active.
%CHECKED(IDmodule. IDAggregate)% Assembler
The CHECKED assembler checks whether the aggregate is checked. This function is useful when the reference is different depending on the aggregate that is active or in visibility conditions, where a specific aggregate will only be visible if aggregate X is active.
%CHECKED(IDmodule. IDAggregate)% == ‘TRUE’
$HASCHILDREN(ENTITY_ID)$ assembler
Returns true / false, if it contains the child entity;