Replicatable Program Flow for Generative Components

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional generative component (GC) environments in CAD systems lack support for replicating control-flow statements when dealing with collections of values, leading to failures in program execution.

Innovation Solution

Implementing replicatable program flow within the GC environment using implicit indexes and implicit decomposition, allowing the runtime engine to automatically handle collections of values in control-flow constructs, such as 'do,' 'for,' 'foreach,' 'if,' and 'while' statements, by creating separate processor threads and distributing operations across multiple processors.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If control-flow statements are used in conventional GC environments with collections of values, then program execution fails, but if single values are used, then replication capability is limited

Engineering Contradiction:
Improveprogram execution reliabilityVSAvoidcollection handling capability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent segments control-flow statements into individual iterations that can be independently executed. Each iteration processes a single value from the collection, allowing the control-flow logic to work with individual elements while the runtime engine manages the collection as a whole. This segmentation enables control-flow statements to operate reliably on single values while still achieving collection-wide processing through repeated execution of the segmented iterations.

Inventive Principle:
Principle #1Segmentation

2Ease of manufacture

If conventional replication capabilities are used at single statement level, then simple value operations work, but control-flow statements fail with collections

Engineering Contradiction:
Improvescripting simplicityVSAvoidcontrol-flow execution reliability
Core Design Contradiction:
Ease of manufactureVSReliability

Solution Approach 1:

The patent implements a universal replication mechanism that works across all statement types including control-flow statements. The runtime engine's implicit decomposition capability provides multi-functionality by automatically adapting the same replication framework to handle different statement types (sequential statements, control-flow statements, etc.) uniformly. This allows control-flow statements to be used with collections without requiring separate handling mechanisms for each statement type.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Device complexity

If control-flow statements expect single values, then statement logic is simple, but execution fails with collections of values

Engineering Contradiction:
Improvestatement structure complexityVSAvoidprogram execution success
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The patent introduces the runtime engine as an intermediary between the control-flow statements and the collections of values. The runtime engine's implicit decomposition mechanism acts as a mediator that automatically breaks down collections into individual values and manages the iteration process. This intermediary layer allows control-flow statements to maintain their simple single-value logic while reliably processing collections through the mediating decomposition and iteration management.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP2304553B1System, method and computer program product for replicatable program flow with generative components
Publication Date: 2019.07.31 BENTLEY SYSTEMS INC
  • EP2304553B1 patent drawingFigure 1
  • EP2304553B1 patent drawingFigure 2~3
  • EP2304553B1 patent drawingFigure 4

AI summary

A computer-implemented method in a computer modeling environment having generative components may perform the following actions. The method may detect a first replicated value in a block statement as a collection of replicated values, wherein the block statement is written for a non-replicated value; determine a size of the collection; create an implicit index based on the size; automatically iterate the block statement according to the implicit index; and output a result of iterating the block statement.