DesignScript Graph-Based Dependency Management in CAD

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing programming languages that combine multiple paradigms, such as object-oriented, functional, and procedural, lack support for representing and executing dependencies, leading to verbose and complex data formats like XML, which are difficult for users to read and edit, and require learning multiple languages and formats, making it challenging for users to understand and manage dependencies in design, analysis, and optimization tasks.

Innovation Solution

The DesignScript programming language integrates multiple programming paradigms with a novel associative programming paradigm based on graph-based dependencies, allowing users to create and edit geometric models dynamically through direct graphical manipulation, with a bi-directional relationship between the scripting language and user interaction, providing a concise and readable syntax that can be edited or manipulated graphically, blurring the distinction between direct modeling and scripting.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If existing programming languages combine multiple paradigms (object-oriented, functional, procedural), then programming versatility is improved, but dependency representation capability deteriorates

Engineering Contradiction:
Improveprogramming versatilityVSAvoiddependency representation capability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent merges multiple programming paradigms (object-oriented, functional, procedural) with a novel graph-based dependency representation system into a single integrated language. This allows the language to maintain versatility while adding robust dependency representation capabilities through graph data structures that can model complex relationships between programming elements.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The programming language is designed to serve multiple functions simultaneously: it supports conventional programming paradigms while also providing native graph-based dependency representation and execution. This multi-functionality allows the same language to handle both traditional programming tasks and dependency management without requiring separate tools or languages.

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

2Reliability

If data formats like XML are used to represent dependencies, then dependency representation capability is improved, but ease of operation deteriorates

Engineering Contradiction:
Improvedependency representation capabilityVSAvoidease of reading and editing
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent creates a simplified textual representation format that copies the essential dependency information from complex data formats like XML but presents it in a more readable and editable form. This textual format maintains the dependency representation capabilities while being much easier for users to interpret and modify directly in the programming code.

Inventive Principle:
Principle #26Copying

3Reliability

If multiple languages and formats are required for dependency management, then dependency representation capability is improved, but device complexity deteriorates

Engineering Contradiction:
Improvedependency representation capabilityVSAvoidnumber of languages and formats
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The programming language is designed to serve multiple functions simultaneously: it supports conventional programming paradigms while also providing native graph-based dependency representation and execution. This multi-functionality allows the same language to handle both traditional programming tasks and dependency management without requiring separate tools or languages.

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

Solution Approach 2:

The patent merges multiple programming paradigms (object-oriented, functional, procedural) with a novel graph-based dependency representation system into a single integrated language. This allows the language to maintain versatility while adding robust dependency representation capabilities through graph data structures that can model complex relationships between programming elements.

Inventive Principle:
Principle #5Merging (Combining)

4Adaptability or versatility

If graph-based dependency logic is integrated with multiple programming paradigms, then adaptability is improved, but programming language complexity increases

Engineering Contradiction:
Improveintegrated programming capabilityVSAvoidprogramming language complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the programming language into distinct but integrated components: conventional programming constructs (functions, classes, procedures) and graph-based dependency elements. This segmentation allows each component to maintain its simplicity while the integration provides powerful combined capabilities, managing overall language complexity through modular design.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8825459B2Multi-modal manipulation of a geometric model
Publication Date: 2014.09.02 AUTODESK INC
  • US8825459B2 patent drawing
  • US8825459B2 patent drawing
  • US8825459B2 patent drawing

AI summary

A method, apparatus, article of manufacture, and computer readable storage medium provide the ability to create a geometric model in a computer-aided design (CAD) application. Direct graphical manipulation via user interaction is used to create the geometric model in the CAD application. The direct graphical manipulation is captured, without additional user input, as one or more lines of script code as if the user is writing the script code. The captured script code is integrated into an environment hosted by the CAD application. The script code is then displayed where it can be modified. The modification of the script code acts to modify the geometric model.