Microstation GC v8i Essentials Book

download Microstation GC v8i Essentials Book

of 338

Transcript of Microstation GC v8i Essentials Book

  • TRN012930-1/0002GenerativeComponents V8i Essentials08.11.08

    Bentley Institute Course Guide

  • TrademarksAccuDraw, Bentley, the B Bentley logo, MDL, MicroStation and SmartLine are registered trademarks; PopSet and Raster Manager are trademarks; Bentley SELECT is a service mark of Bentley Systems, Incorporated or Bentley Software, Inc.

    AutoCAD is a registered trademark of Autodesk, Inc.

    All ther brands and product names are the trademarks of their respective owners.

    Patents

    United States Patent Nos. 5,8.15,415 and 5,784,068 and 6,199,125.

    Copyrights

    2000-2010 Bentley Systems, Incorporated. MicroStation 1998 Bentley Systems, Incorporated. All rights reserved. GenerativeComponents V8i Essentials ii Jan-10Copyright 2009 Bentley Systems, Incorporated

  • Jan-10Table of Contents

    Course Overview ____________________________________ 1Course Description ____________________________________1Target Audience_______________________________________1Prerequisites _________________________________________2Course Objectives _____________________________________2Design Intent _________________________________________2Modules Included _____________________________________3

    Introduction to GenerativeComponents _________________ 5Module Overview _____________________________________5Module Prerequisites __________________________________5Module Objectives_____________________________________5What is GenerativeComponents? _________________________5

    The General Concept _______________________________6The Bentley Concept ________________________________7

    Historical Background of Parametric Design_________________9GenerativeComponents Generic Workflow _________________11

    GenerativeComponents and Workspaces _______________12Frequently Asked Questions _____________________________13References ___________________________________________15Module Review _______________________________________15

    Questions ________________________________________15Answers__________________________________________15

    The Basics of GenerativeComponents ___________________ 17Module Overview _____________________________________17Module Prerequisites __________________________________17Module Objectives_____________________________________17Module Glossary ______________________________________18File Formats __________________________________________19iii Table of ContentsCopyright 2009 Bentley Systems, Incorporated

    The Design Based Approach _____________________________20Objects and types _____________________________________20Basic Types___________________________________________21The GenerativeComponents Interface _____________________24

    The GenerativeComponents Task______________________24Transaction File player ______________________________25

  • Table of Contents

    Additional tasks and tabs ____________________________26Getting help __________________________________________26Example Help______________________________________27Additional Help Examples and IMPORTANT NOTE _________28

    Getting Started________________________________________29Create a transaction file _____________________________29

    View Control__________________________________________31Rotating a view using the mouse ______________________32Clip Volume and Clip Mask ___________________________33

    Creating Features______________________________________33Points____________________________________________34Using the Expression Field____________________________39Defining a transaction _______________________________40

    Symbolic Diagram _____________________________________41State ________________________________________________43Parameter Spaces _____________________________________44

    T Value point ______________________________________44Editing Features____________________________________46Move Feature tool__________________________________46Free and locked parameters __________________________48Feature association _________________________________49Edit Feature tool ___________________________________49Working with Transactions ___________________________50

    Parametric and Associative ______________________________52Module Review _______________________________________55

    Questions_________________________________________55Answers __________________________________________55

    Tips from this module __________________________________56

    Variables and Sets ___________________________________ 57Module Overview______________________________________57Module Prerequisites___________________________________57Module Objectives _____________________________________57Introductory Knowledge ________________________________57

    Questions_________________________________________58Answers __________________________________________58

    Module Glossary ______________________________________58Syntax_______________________________________________58

    Sets _____________________________________________58Index ____________________________________________60Functions _________________________________________61

    Graph Variables _______________________________________62Creating a graph variable ____________________________62Creating Variables on-the-fly _________________________65Sets or Collections __________________________________66Feature Properties and the dot operator ________________67Table of Contents iv Jan-10Copyright 2009 Bentley Systems, Incorporated

  • Defining a new coordinate system _____________________68Drawing Economy __________________________________72Editing a Transaction File ________________________________75Selecting Alternative Update Methods _____________________77Objects and types______________________________________77Module Review _______________________________________78

    Questions_________________________________________78Answers __________________________________________79

    Tips from this module __________________________________79

    Using the Series Function _____________________________ 81Module Overview______________________________________81Module Prerequisites___________________________________81Module Objectives _____________________________________81Module Glossary ______________________________________81Creating a Series ______________________________________83

    Editing a Series ____________________________________87Replication ___________________________________________88Other Functions Related to Series _________________________91

    Flatten ___________________________________________91Sort _____________________________________________91Sublist ___________________________________________92Add______________________________________________92

    Module Review _______________________________________95Questions_________________________________________95Answers __________________________________________95

    Tips from this module __________________________________95

    Reactors and Object Operators ________________________ 97Module Overview______________________________________97Module Prerequisites___________________________________97Module Objectives _____________________________________97Reactor for Vertically Dependent Line _____________________98Object Operators ______________________________________100

    Extra Exercises_____________________________________111Module Review _______________________________________111

    Questions_________________________________________111Answers __________________________________________111

    Tips from this module __________________________________112

    Simple Reactor and Fabrication ________________________ 113Module Overview______________________________________113Module Prerequisites___________________________________113Module Objectives _____________________________________113Module Glossary ______________________________________113Jan-10 v GenerativeComponents V8i EssentialsCopyright 2009 Bentley Systems, Incorporated

  • Table of Contents

    Working Prototype _________________________________113B-Spline Curve or Surface ____________________________114Your GC Workflow _____________________________________114Creating a Responsive Surface____________________________115Fabrication ___________________________________________117Module Review _______________________________________121

    Questions_________________________________________121Answers __________________________________________121

    Tips from this module __________________________________122

    Creating a Generated Feature Type _____________________ 123Module Overview______________________________________123Module Prerequisites___________________________________123Module Objectives _____________________________________123Module Glossary ______________________________________124

    Generated feature type______________________________124Input ____________________________________________124Replication and Generated Feature Types _______________124

    Defining a Generated Feature Type________________________124Creating a Generated Feature Type _______________________125

    Inputs and Outputs _________________________________125Nested Features ___________________________________126Other Options _____________________________________127

    Alternate Method for Creating Graph Variables ______________132Module Review _______________________________________133

    Questions_________________________________________133Answers __________________________________________133

    Tips from this module __________________________________133

    Law Curves _________________________________________ 135Module Overview______________________________________135Module Prerequisites___________________________________135Module Objectives _____________________________________135Module Glossary ______________________________________136

    Law Curve ________________________________________136String ____________________________________________136Plane ____________________________________________136Order ____________________________________________136Dependent Variable ________________________________137

    Law Curves and Relationships ____________________________137Steps to Create a Law Curve _____________________________137

    Create the Law Curve frame __________________________139Establish the Law Curve _________________________________142Graph Variables and Law Curves __________________________146Module Review _______________________________________147

    Questions_________________________________________147Table of Contents vi Jan-10Copyright 2009 Bentley Systems, Incorporated

  • Answers __________________________________________148Tips from this module __________________________________148GenerativeComponents Import and Export ______________ 149Module Overview______________________________________149Module Prerequisites___________________________________149Module Objectives _____________________________________149Module Glossary ______________________________________150

    Pre-compiled Assembly File (*.dll) _____________________150Microsoft Excel ____________________________________150Spreadsheet_______________________________________150Database _________________________________________150

    Excel Import/Export ____________________________________151Loading the Libraries for Excel ________________________151Import from Excel __________________________________152Syntax ___________________________________________152Export to Excel_____________________________________154

    Database Import/Export ________________________________155Image Capture ________________________________________156

    Inputs____________________________________________156Module Review _______________________________________157

    Questions_________________________________________157Answers __________________________________________157

    Tips from this module __________________________________157

    Designing a Simple Tower _____________________________ 159Module Overview______________________________________159Module Prerequisites___________________________________159Module Objectives _____________________________________159Module Glossary ______________________________________159

    Building Envelope __________________________________159Array ____________________________________________160Transpose ________________________________________160

    Flexible Building Floor Plates _____________________________160Tips from this module __________________________________170

    GenerativeComponents and Other Formats ______________ 171Module Overview______________________________________171Module Prerequisites___________________________________171Module Objectives _____________________________________171Models ______________________________________________171References ___________________________________________172

    MicroStation Reference Attachment settings ____________173Referencing as a Feature type_________________________174Using Range _______________________________________176Jan-10 vii GenerativeComponents V8i EssentialsCopyright 2009 Bentley Systems, Incorporated

  • Table of Contents

    Promoting Elements to Features __________________________176Using MicroStations Import/Export Functionality ____________177Import IGES _______________________________________178Exporting to DGN, DXF or DWG _______________________178Save As V8 Options _________________________________178Save As DWG/DXF Options ___________________________180Exporting to IGES___________________________________181

    Exporting to STL and 3D Printing __________________________181Export Feature Type____________________________________182Module Review _______________________________________183

    Questions_________________________________________183Answers __________________________________________183

    Tips from this module __________________________________183

    Using Patterns ______________________________________ 185Module Overview______________________________________185Module Prerequisites___________________________________185Module Objectives _____________________________________185Design Patterns _______________________________________185The Controller Pattern __________________________________186References ___________________________________________191Tips from this module __________________________________192

    Advanced Topics ____________________________________ 193Module Overview______________________________________193Module Prerequisites___________________________________193Module Objectives _____________________________________193BIM Objects __________________________________________193

    Overview _________________________________________194Installation and Setup _______________________________196

    BIM Feature Type______________________________________196Drawing Extraction _________________________________196Example GCT file using BIM Elements___________________197

    Working with Solids ____________________________________197

    Scripting Basics _____________________________________ 199Module Overview______________________________________199Module Prerequisites___________________________________199Module Objectives _____________________________________199Module Glossary ______________________________________200

    C# (sharp) ________________________________________200Top level Feature___________________________________200Temporary Feature _________________________________200Child Feature ______________________________________200Reflection_________________________________________200Table of Contents viii Jan-10Copyright 2009 Bentley Systems, Incorporated

  • Objects___________________________________________201Function__________________________________________201

    Class_____________________________________________202Enum ____________________________________________202Namespace _______________________________________202

    GCScript Basic Components______________________________203Feature Properties__________________________________203How to Operate the Script Console ____________________205

    How to write and use GCScript functions ___________________208Calling functions ___________________________________209Creating your own Functions _________________________210Local Functions ____________________________________210Return Value ______________________________________211Optional values ____________________________________215Writing your own global functions _____________________216Anonymous Functions_______________________________216Script Transactions _________________________________217Script Files ________________________________________218

    GCScript Basic Components______________________________218Basic GCScript Syntax _______________________________218Keywords _________________________________________220Fundamental Types _________________________________220Variables _________________________________________223

    Some additional thoughts _______________________________226Point ByFunction Script _________________________________228List Points with a Loop script _____________________________233

    The For loop statement______________________________235Using simple equations to describe forms _______________238

    Generating Polygons ___________________________________250Polygon grid (alternative) ____________________________252

    More Scripting Examples ________________________________256B-Spline Curve _____________________________________256B-Spline curve using child Feature points ________________257B-Spline curve defined by internal function ______________259Fourth B-Spline curve only as point ____________________261Creating a user defined function_______________________262

    References ___________________________________________265

    Design Problems ____________________________________ 267Module Overview______________________________________267Module Prerequisites___________________________________267Module Objectives _____________________________________267Module Glossary ______________________________________267

    Hierarchical Control_________________________________267Free Form Surfaces _________________________________268

    Tunnel with a Crossbar Roof _____________________________268Jan-10 ix GenerativeComponents V8i EssentialsCopyright 2009 Bentley Systems, Incorporated

  • Table of Contents

    Conveyor Belt Design___________________________________284Appendix A: Visualization with Luxology _________________ 303Module Overview______________________________________303Module Prerequisites___________________________________303Module Objectives _____________________________________303Display Styles _________________________________________303Camera Setup and Navigation ____________________________304

    Setup Camera _____________________________________304Scripting the Camera for Animation _______________________308

    Animating Graph Variables ___________________________308Animating a Camera ________________________________309Exporting Frames___________________________________311

    Luxology Manager _____________________________________312Materials ____________________________________________313

    Pattern maps ______________________________________313Bump maps _______________________________________313Working with Materials______________________________314

    Lighting______________________________________________315Global Lighting_____________________________________316

    Source Lighting________________________________________317Shadow generation from source lighting ________________318Place Light tool ____________________________________318

    Output of Imagery _____________________________________319Save Image________________________________________321

    GenerativeComponents Quick Reference ________________ 323Tools ________________________________________________323Symbolic Diagram _____________________________________326Feature Input Parameters Color Codes _____________________327General Tips and Hints__________________________________327Table of Contents x Jan-10Copyright 2009 Bentley Systems, Incorporated

  • ResearchersCourse Overview

    Course Description

    GenerativeComponents, also referred to as GC, is a parametric and associative design system that gives you new ways to explore alternative design scenarios. GenerativeComponents captures design intent by graphically representing both the elements and the relationships between them, enabling efficient design exploration and reuse without manually rebuilding a model for each scenario. GenerativeComponents lets designers work completely graphically, or combine graphics with scripting and programming where appropriate.

    This course is an introduction to GenerativeComponents and an opportunity to explore new options for design. You will see how a complex design can be created from multiple instances of a feature and how the feature adapts itself to the local placement conditions. You will see how GenerativeComponents can automatically reconfigure each individual floor plate after changing the height and shape of a building, or after modifying its footprint.

    Target Audience

    This course is recommended for the following audience(s):

    Designers

    Engineers

    Architects

    FabricatorsJan-10 1 Course Overview

    Copyright 2009 Bentley Systems, Incorporated

  • Prerequisites

    Prerequisites Expert MicroStation 3D, Rendering and Animation user

    Expert users of B-spline curves and surfaces

    Expertise with advanced Modeling or Animation software

    Expert Microsoft Excel user or familiar with developing application logic

    Course Objectives

    After completing this course, you will be able to:

    Use the GC Interface

    Use GC tools to create geometry

    Apply principles of transactional and programmatic design

    Import and export with Excel and databases

    Use principles of scripting to design

    Integrate GC design with their CAD workflow

    Install and set up GC

    Design Intent

    Design intent includes the location of geometric primitives, the relationships between multiple geometric primitives, the composition of primitives into assemblies, and the relationships between multiple assemblies. Above all, intent implies a certain conceptual compression, whereas a few bits of information are required, along with a formula of an intention, to elaborate a complete design response.

    If you change those bits of information, the formula is intact and so the new complete design response still reflects the intent. A change in intentions means literally to rewrite the formula. The way to measure whether or not the intention has been captured is if the model behaves in the desired way when either the formula or the information is altered. Capturing design intent, then, is to capture the bits of information, the formula, and ultimately generating the complete response. One does not just record it, but as one records their actions, they also Course Overview 2 Jan-10Copyright 2009 Bentley Systems, Incorporated

  • Modules Included

    have to organize them into the appropriate hierarchy and order, or, design the graph.Results from the SmartGeometry workshopillustrating the diversity of architectural geometry created with GenerativeComponents

    Modules Included

    The following modules are included in this course:

    Introduction to

    Basics of GenerativeComponents

    Graph Variables, Sets and Coordinate Systems

    Using the Series Function

    Digital Feedback and Object Operators

    Responsive Roof Problem

    Creating a Generated Feature Type

    Law CurvesJan-10 3 Course OverviewCopyright 2009 Bentley Systems, Incorporated

  • Modules Included

    GenerativeComponents Import and Export Design of a Simple Tower

    GenerativeComponents and MicroStation

    Design Problems with Patterns

    Advanced Topics

    Basics of Scripting

    Design Problems

    Appendix A: Visualizing a 3D Design

    Appendix B: Installation and Setup

    GenerativeComponents Quick ReferenceCourse Overview 4 Jan-10Copyright 2009 Bentley Systems, Incorporated

  • GenerativeComponents captures design intent by graphically representing both design components and the relationships between them.

    GenerativeComponents enables efficient design exploration and reuse without manually rebuilding the model for each scenario.Introduction to GenerativeComponents

    Module Overview

    This module presents basic GenerativeComponents concepts. These include aspects of the interface, and terms that relate to the process.

    Module Prerequisites

    Understanding of 3D computer applications

    Module Objectives

    After completing this module, you will be able to:

    Determine where GenerativeComponents fits into your workflows

    Recognize and define basic terms and interface items

    Recognize items in the GenerativeComponents dialog

    What is GenerativeComponents?

    GenerativeComponents is a parametric and associative design system which gives users new ways to efficiently explore alternative designs.Jan-10 5 Introduction to GenerativeComponents

    Copyright 2009 Bentley Systems, Incorporated

  • What is GenerativeComponents?

    GenerativeComponents allows designers to work completely graphically, or to combine this with scripting and programming where appropriate.GenerativeComponents is the tool of choice for those who appreciate that design is best when it emerges from a combination of intuition and logic.

    GenerativeComponents is a system with a set of primitives, or features. Features can be geometry, such as a line or a point. A feature can also be numeric data, such a number specifying length or specifying how many elements exist in a design. Users can define their own design elements and the underlying associative architecture allows for the interoperability of all features.

    GenerativeComponents is a flexible design environment that is designed to be used both as a digital exploration/sketching tool for design development and as a production tool.

    A key concept of GenerativeComponents is the ability to define geometry in different ways. One approach is based on traditional CAD modeling, but it is expanded by parametric and associative aspects. It creates a collection of graphics with intelligence. You create your own components from them.

    The General Concept

    Design must have a combination of novel aspects and efficient aspects. Both novelty and efficiency depend on the exploration of possible solutions. Such solutions have to be generated. Either many solutions must be created and then filtered for desirable traits, or the creation process itself must encourage exploration in which a viable solution can be arrived at with the minimum of intermediaries.

    It is unlikely that such solutions can be efficiently created, even with conventional CAD systems, if each idea has to be hand-built using conventional command Introduction to GenerativeComponents 6 Jan-10Copyright 2009 Bentley Systems, Incorporated

  • What is GenerativeComponents?

    based applications. Such applications may be sufficient for the documentation of a pre-defined design, but not for exploration.Exploration is open-ended. You cannot predict what will be arrived at or what pre-cursors will be required to enable us to arrive at a viable solution. It is not appropriate to develop an application intended for exploratory design around a fixed (or pre-defined) system of components or relationships, a fixed schema.

    The fixed schema approach to application development may work well in established design methodologies, in highway design, and in some forms of regular architecture. Designers who use these conventional systems come to expect that standard items such as walls, windows, and doors are directly available in CAD applications. Architecture has the interesting dynamic of spanning from the regular to the experimental. As you progress along this path, it becomes increasing inefficient to directly support the special requirements of the more adventurous designers, particularly in the domain of free form architecture.

    If there is a button on the menu to create an egg shaped high rise office tower, or a distorted toroidal shaped sports stadium, then everyone is going to use it. The button on the menu is not the basis for originality.

    The Bentley Concept

    A more appropriate strategy, and one adopted by Bentley with GenerativeComponents, is to give users the ability to create their own application schema, by allowing them to create their own components and inter-component relationships. GC is a good tool-making device. But this raises some interesting issues. First, the underlying tools must be general yet comprehensive. The tools must allow for a myriad of geometric and logical possibilities.Jan-10 7 Introduction to GenerativeComponentsCopyright 2009 Bentley Systems, Incorporated

  • What is GenerativeComponents?

    The second issue is one of education. Even if a very powerful and general tool set is provided, there is the important task of educating designers. You need to

    appreciate that, to arrive at a novel or efficient solution, you cannot use pre-configured, fixed schema applications. In order to design, you must first build your design tools. You must accept that you are completely responsible for creating the sequence of constructive steps that result in the appropriate design geometry. Because the rationale is that design is improved by exploration, the resulting geometric model must be robust enough and efficient enough to support geometric variation, which is essential to the explorative process.

    In this sense GenerativeComponents represent and supports the convergence of:

    Conventional geometric or feature based modeling

    Parametric and associative control systems

    Extensibility of new feature types without end user programming using reflection and code generation -- making your own tools

    Scripting and programming, based on the conventions of object-oriented software design

    And perhaps most important: Self-Documenting software

    The objective is to harness a range of design skills, which may vary in emphasis, requiring geometric, spatial, compositional fluency, and those based on computing concepts of algorithm, type hierarchy, continuous and discrete change.

    The literal implementation of the object-oriented concepts, as supported in currently available computer languages, does not result in a system which supports artifact creation. One of the interesting challenges in the development of GenerativeComponents has been the development of computing conventions that go beyond the limitations of current Object-Oriented languages, in order to create a system that can respond to the sense of intuition and exploration which is essential in design.

    Parametric design builds complex logical relationships between objects or elements in a design, so to harness these possibilities requires precision in the notation used to define these relationships.

    If GenerativeComponents was conceived within the restrictive limitation of conventional design, then it might have been valid to construct some simplified notation with which to define these logical relationships. The problem with this approach, might occur after a user had acquired a working knowledge of the simplified notation and then if they progressed to a more programmatic Introduction to GenerativeComponents 8 Jan-10Copyright 2009 Bentley Systems, Incorporated

  • Historical Background of Parametric Design

    approach. At that moment of transition, there would inevitably be some clash of notation between the simplified design only notation and the full rigor of a

    conventional high level object oriented programming language. The potential clash and the possible need to replace or unlearn the simplified notation, would result in a major disruption and discontinuity to their progression at a most vulnerable moment.

    To avoid this discontinuity, GenerativeComponents uses a formal system of notation. Although this may present a slightly more complex initial learning task, once this notation is mastered, you are set for further progression into the world of application computing without further disruption.

    An analogy is to musical notation which requires a certain formalism to unambiguously define musical expression. How can you simplify this notation for beginners? There really is no way, except to teach the new music student the basics of the formal notation and work towards more complex usages of that notation.

    The imagined trajectory of learning and use of GenerativeComponents would be as follows:

    1 First, to design through geometric production using the interactive graphical user interface.

    2 Second, to proceed to one line scripts through the formula bar and GC Script.

    3 Third, to the production of complex programs to process large numbers of calculations, highly complex geometries or simply to extend the functionality of the program through the C# (sharp) programming language.

    Historical Background of Parametric Design

    Many CAD applications are parametric. Typically these applications use discrete elements or components that represent some application domain. For example, in an architectural domain, these elements or components might be walls or floor slabs. Each type of elements might have a series of defining properties, for example, thickness or height. You give a numeric value to define these properties. Subsequently, these values for the properties of one element can be changed, and that element updates in isolation, but there are no logical connections between the components and no algebraic connections, or expressions, linking the value of one elements property to another elements properties.Jan-10 9 Introduction to GenerativeComponentsCopyright 2009 Bentley Systems, Incorporated

  • Historical Background of Parametric Design

    A change to one element via a change to one of that element's properties is not propagated to other elements. Some people erroneously claim this to be

    parametric CAD.

    At the next level of sophistication you find solid modeling applications such as Solid Edge, Solid Works, and Inventor. These applications can correctly claim to be parametric. In these packages, complicated feature trees can be built using geometric primitives, or features, such as rectangular slabs, cones, spheres, etc. and boolean operations such as union, intersection and difference. These applications also implement domain specific features for mechanical engineering such nuts and bolts, countersunk holes, and other typical machining operations. These domain specific features are themselves constructed out of geometric primitives and boolean operations, with the top-level dimensional controls exposed to you within domain specific dialog boxes. These applications are referred to as feature tree based, because a tree-like data structure is created and used to control the propagation of change to other down stream features. Each object has only one set of parents, and you cannot make a connection between two disparate elements on different levels of the hierarchy.

    GenerativeComponents is more generalized. You can draw relationships that are complete graphs. In most cases in GenerativeComponents as elsewhere you cannot have feedback up the tree however without the use of an outside controller. In other words, a leaf node cannot affect a node further up the tree/graph. In most cases you are building a propagation network that represents your

    Basic Parametric:No associations or expressions.Parameters such as wall thickness drive geometry.

    Simple Parametric:Uses Feature Tree driven modeling, where Parent-Child/Inheritance

    relationships determine geometricproperties.

    Full Associative and Parametric:Based on change propagation andtransactions. Acyclic graph allows formore complex relationships.Introduction to GenerativeComponents 10 Jan-10Copyright 2009 Bentley Systems, Incorporated

  • GenerativeComponents Generic Workflow

    design. You are deferring the final decisions on size shape and design until later on, allowing instantly changes later on. The dependency graph used in

    GenerativeComponents is a generalization of the tree structure. Any tree structure can be represented as a dependency graph. The GenerativeComponents graph is directed, because all the relationships are from the upstream or independent components to the downstream or dependent components. Many components in the middle of the graph have both inputs from other upstream component and, in turn, influence other downstream components. A component with no inputs is referred to as a root component. A component with no dependents is referred to as a leaf component.

    In strict graph terminology, the components are nodes of the graph and the relationships between the components are the arcs of the graph. The relationship between two components is established by one of the input properties of the downstream components referring to an upstream component or to a property of an upstream component.

    The key to understanding is to realize that you can feedback the property of a graphical component. For example, you could use the length of a line to control the radius of a circle or adjust the angle of a plane if it is greater than 15 degrees out-of-plane.

    Once you allow bi-directional relationships between components, the cognitive complexity explodes. Even with a reasonably-complex directed graph model, you are challenging the cognitive limits.

    There are, however, important aspects of design where design intent cannot be modeled as simple dependency relations. Therefore, bi-directionality is an important requirement that needs to be addressed.

    GenerativeComponents Generic Workflow

    So effort versus rewards is as follows. In normal CAD it is easy to begin with, gets more complicated every time you want to change the design and you have to rebuild the whole model and adjust all the constituent parts.

    With GenerativeComponents you invest much more heavily at the setup stages of the model, but later on, changes can be made easily.

    A generic workflow may look like:Jan-10 11 Introduction to GenerativeComponentsCopyright 2009 Bentley Systems, Incorporated

  • GenerativeComponents Generic Workflow

    1 Take some points, 2 Use them to control a curve,

    3 Use the curve to control a surface,

    4 Use the surface to control a solid.

    or

    Perform some boolean operations on a solid,

    1 Use to extract a surface,

    2 Use to control a line,

    3 Use to find a point.

    Perhaps one of the most interesting things about GenerativeComponents is that GenerativeComponents does not save geometry, but the instructions to generate geometry, so the .gct file cannot be opened in MicroStation or other CAD programs directly. Hence, GCT files are very SMALL in size. It is computationally efficient.

    GenerativeComponents and Workspaces

    Generated feature types are stored within the active project, so changing projects will change the set of generated feature types which GenerativeComponents loads at startup. GenerativeComponents uses the Workspace path as defined by the installation.

    These are installed in WIndows XP by default to:

    C:\Documents and Settings\All Users\Application Data\Bentley\GenerativeComponents\WorkSpace\

    On Windows Vista and Windows 7, the workspace files are installed by default to:

    C:\ProgramData\Bentley\GenerativeComponents\

    The GenerativeComponents Configuration Manager allows you to set the default WorkSpace settings for User, Project, and GenerativeComponents seed file. This lets you launch GenerativeComponents in the desired workspace when you double click on a GCT file, without using the File Open dialog.Introduction to GenerativeComponents 12 Jan-10Copyright 2009 Bentley Systems, Incorporated

  • Frequently Asked Questions

    Frequently Asked QuestionsWhat is a Feature?

    Features can be geometry, such as a line, curve or a point. A feature can also be numeric data, such a number specifying length or a process such as referencing a DGN file or exporting data to Excel.

    What is a Transaction file?

    It contains the instructions that will generate geometry. When you open one in GenerativeComponents, you see the working environment. It is comprised of the GenerativeComponents dialog, the Symbolic Diagram and a Geometric view.

    What is the View?

    View 1-8 are the views in which geometric construction is represented. You can open any views to let you visualize the current geometric state of the model by displaying all geometric features in 3 dimensions.

    What is the Symbolic Diagram?

    The Symbolic Diagram is a view of the geometric and non-geometric features you are placing, in graph form. The features are capsules with the feature type noted underneath the feature name. For example, a coordinate system feature with its name, baseCS, below it.

    The lines connecting the features show any dependencies between features. The arrows show the direction of the dependency.

    The Symbolic Diagram visually expresses dependencies that may not be as apparent in the Geometric view, but which influence other dependent features and so the behaviors of the whole model.Jan-10 13 Introduction to GenerativeComponentsCopyright 2009 Bentley Systems, Incorporated

  • Frequently Asked Questions

    For reference, please review the term Directed Acyclic Graphs.Simple Directed Acyclic Graph

    What is the Coordinate System, or baseCS?

    The coordinate system controls the direction of the x, y and z coordinates. When you open a transaction file there is a coordinate system called baseCS. You can see it in the View and the Symbolic Diagram.

    Top view of the baseCS Isometric view of the baseCS

    What is a Transaction?

    Each change you make is recorded as a step or transactions. Use transactions to group multiple steps into a single, logical entity. Think of this as recording the building of a portion of the final geometric construction. When you play the transactions, the geometric construction is built in the Geometric view. Transactions only record the changes or deltas. The granularity of transactions is user defined.Introduction to GenerativeComponents 14 Jan-10Copyright 2009 Bentley Systems, Incorporated

  • References

    ReferencesHerbert Simon - Science of the Artificial.

    Module Review

    Now that you have completed this module, lets measure what you have learned.

    Questions

    1 What is your definition of Design Intent?

    2 GenerativeComponents is an parametric and ______ design system.

    3 What is a transaction file?

    4 What is the Symbolic Diagram?

    5 What is a transaction?

    6 What is the coordinate system, or baseCS?

    Answers

    1 Design intent includes the location of geometric primitives, the relationships between multiple geometric primitives, the composition of primitives into assemblies, and the relationships between multiple assemblies.

    2 Associative.

    3 It contains the instructions that will generate geometry. When you open one in GenerativeComponents, you see the working environment. It is comprised of the GenerativeComponents dialog, the Symbolic Diagram and a Geometric view.

    4 View 1 is a view of the geometric and non geometric features you are placing, in graph form. The features are circles with the feature type noted underneath the feature name.Jan-10 15 Introduction to GenerativeComponentsCopyright 2009 Bentley Systems, Incorporated

  • Module Review

    5 Transactions group multiple design steps into a single, logical entity. Think of this as recording the building of a portion of the final geometric

    construction. When you play the transactions, the geometric construction is built in the Geometric view.

    6 The coordinate system controls the direction of the x, y and z coordinates. When you open a transaction file there is a coordinate system called baseCS. You can see it in the Geometric view and the Symbolic Diagram.Introduction to GenerativeComponents 16 Jan-10Copyright 2009 Bentley Systems, Incorporated

  • The Basics of GenerativeComponents

    Module Overview

    This module describes how to create a file, place point and line features, and edit those features. It also discusses feature association and the Symbolic Diagram, and information about working with transactions.

    Module Prerequisites

    Basic understanding of 3D modeling

    Module Objectives

    After completing this module, you will be able to:

    Create a file

    Use the View Control tools

    Create features

    Define a transaction

    Define a T Value point

    Edit features

    Work with TransactionsJan-10 17 The Basics of GenerativeComponents

    Copyright 2009 Bentley Systems, Incorporated

  • Module Glossary

    Module GlossaryTransaction

    A transaction file is typical of programming tools. A transaction file is executed one time and populates a model with elements or components. To change the result, or create a new file, all the generated elements or components must be deleted and the transaction file is re-run with different input parameters.

    Coordinate System

    The coordinate system controls the direction of the X, Y and Z coordinates. When you create a new transaction file you are automatically assigned a coordinate system called baseCS and it is located AtModelOrigin.

    Rotate the Geometric view, View 2, to Right Isometric and you will see it more clearly. The red line is X, the green Y and the cyan is Z. The active plane is defined by the yellow square. When you begin it is on the XY plane. You can change the plane to the YZ plane or XZ plane using the option list in the GenerativeComponents dialog.

    Dashed line, drawn here, indicates the active plane, which is yellow in the Geometric viewThe Basics of GenerativeComponents 18 Jan-10Copyright 2009 Bentley Systems, Incorporated

  • File Formats

    FeatureA feature is the name used to describe different geometric constructions. These can be general such as lines, arc, curves or surfaces and solids or they can be an action such as Export. In turn, what you build can form the basis of new features or generative components such as a box, a wall, or a column. The generative components that you create will be loaded every time you launch the GenerativeComponents application.

    T Value point

    A T Value point denotes a relative position that is controlled by the parameter value T, in the range of 0.0 to 1.0, along a line or curve.

    Double

    A double is another name for a Real number; any number with a decimal value (1.0, 0.5, 0.03 101.9).

    Integer

    An Integer, or int, is any whole number (1, 2, 101).

    File Formats

    GC works with the MicroStation DGN file and the DGN file can be used as the container for GC work.

    There is a separate GCT file format that can be created from Save As ...

    The DGN is an auto-save format, so long as you save your transactions you will not need to save the DGN explicitly. In addition, the DGN format uses Models. When working with GC the term Models refers to a container for graphics and information. For example, in Microsoft Excel you have different worksheets. Each worksheet is separate from the others and unless you link them they are independent numerical spaces. In GC, the Models are like worksheets. They are independent graphical spaces. They are almost like separate files in one big container.Jan-10 19 The Basics of GenerativeComponentsCopyright 2009 Bentley Systems, Incorporated

  • The Design Based Approach

    The GenerativeComponents GCT file does not save geometry, but the instructions to generate geometry, so the GCT file cannot be opened in base MicroStation or

    other CAD programs directly.

    The Design Based Approach

    Modeling in a CAD environment is centered on geometric tools. In a parametric, associative environment such as GenerativeComponents, the approach is similar, but offers the additional benefit of storing relations between elements in an user-customized way. These associations require you to define the creation methods (called Update Methods) explicitly. The inputs are created by referencing existing features by referring to their unique name in the system. Each new feature receives a unique name.

    The main tools are the shortcuts to create points, planes and coordinate systems, and there is a complete list of features available. First you choose the Feature Type you would like to create. Second you identify the update method most appropriate for the way in which you want to create, and later vary, the feature. Once a feature is created there are multiple ways to edit it or interact with it.

    Feature assemblies can be turned into new features and made available for future designs. This is a function that otherwise would only be possible through programming. It allows you, when modeling designs, to harness some of the power of programming without requiring you to have programming expertise.

    One way to start to use GenerativeComponents is to model the design using the interface. These first modules explore the model based approach, using basic tools used to create and associate features.

    On a general note, GC is case sensitive for text.

    Objects and types

    Almost everything you will work with are computing objects. Including the input variables. For computers not all objects are equal. Objects have different types.The Basics of GenerativeComponents 20 Jan-10Copyright 2009 Bentley Systems, Incorporated

  • Basic Types

    Basic TypesBuilt-in Types

    Int: an integer, no decimal places

    Double: a number with decimal places

    Boolean: a true or false value

    String: a string of characters or text - in double quotes

    Microstation Types

    These are the types that GC is built on. They exist, but you do not use them in GC. It is only possible to use these in C# programming interface.

    GenerativeComponents Types

    IPOINT - parent class (zero dimension (0D) object)

    Point (location only)

    Plane (location and direction: infinite plane therefore divides the world into two half spaces. Can also be thought of as a 2D cartesian space, with X and Y coordinates

    CoordinateSystem

    IDIRECTION - parent class (one dimension (1D) object)

    vector

    line

    ICURVE - parent class (1D object)

    line

    arc

    circles

    ellipses

    b-spline curves

    ISURFACE - parent class (2D or 3D object)

    surfaceJan-10 21 The Basics of GenerativeComponentsCopyright 2009 Bentley Systems, Incorporated

  • Basic Types

    ISOLID - parent class (3D object) solid

    IPOINT IDIRECTION ICURVE ISURFACE ISOLID

    Point(location)

    Plane(location and direction)

    Coordinate System(location+direction+translation,rotation, scaling, shear)

    Vector

    Line

    Plane

    Line

    Arc

    Circle

    Ellipse

    Elliptical Arc

    B-Spline

    Composite Curve

    B-Spline Surface Solid

    IPOINT IDIRECTION ICURVE ISURFACE ISOLIDDefine

    Define

    Define

    Intersect Extract/Intersect

    Offset

    Boolean Operation and ExtractThe Basics of GenerativeComponents 22 Jan-10Copyright 2009 Bentley Systems, Incorporated

  • Basic Types

    You can see these types in the interface.User Created types

    These are user generated features that can be created either in the GC GUI or for the very advanced user, using C#. They are stored as a DLL (Dynamic Link Library). They are normally called a Generated Feature Type (or Generative Component) and you name them yourself, once created they appear under the Create Feature tab.Jan-10 23 The Basics of GenerativeComponentsCopyright 2009 Bentley Systems, Incorporated

  • The GenerativeComponents Interface

    The GenerativeComponents InterfaceThe GC interface includes a GC dialog, up to eight views within which you can draw graphics and a Symbolic Diagram showing transactions

    GC is case sensitive.

    The GenerativeComponents Task

    The GenerativeComponents task contains the basic tools needed to operate GenerativeComponents can be found docked to the left edge of the screen.

    Views to draw graphics

    Symbolic Diagram and State docked

    GC Task

    Tabs

    View Controls

    Tool Settings

    GC Main MenuThe Basics of GenerativeComponents 24 Jan-10Copyright 2009 Bentley Systems, Incorporated

  • The GenerativeComponents Interface

    There are also menus that contain options not represented by the icons.Transaction File player

    The Transaction File tab is displayed by default. It lists existing transaction steps. You manage transactions here. Use the player controls at the bottom to move backward and forward through the transaction steps.

    Let see how transactions work.

    Exercise: Examine a GCT file1 Launch GenerativeComponents V8i.

    2 Open the folder WorkflowSamples.

    3 Next, open the folder ellipse_by_focal_points.Jan-10 25 The Basics of GenerativeComponentsCopyright 2009 Bentley Systems, Incorporated

  • Getting help

    4 Open the ellipse_by_focal_points.gct file.There are five transactions in this file.

    5 Use the Play Transaction button to step through each transaction.

    As you step through each transaction, observe the changes on the screen.

    Additional tasks and tabs

    As you perform other tasks, such as adding or editing features, other tabs are added to the dialog. Common tabs are as follows.

    Transaction

    New Feature

    Edit Feature

    Variables

    Console

    Quick Help

    Coordinates

    These tabs only appear when you need them.

    Getting help

    Access the regular Help file by selecting Contents from the Help menu.The Basics of GenerativeComponents 26 Jan-10Copyright 2009 Bentley Systems, Incorporated

  • Getting help

    Example HelpHelp is available in the form of pre-built examples. Each Feature type has the option to show an Example.

    Exercise: Using Example Help1 Create a new transaction file.

    2 From the GenerativeComponents task select New Feature.

    A New Feature tab opens.

    3 On the New Feature tab of the GenerativeComponents dialog, expand the node next to the Arc feature by clicking the +.

    4 Under Update Method, expand the method ByAngleCenterStartPlanePoint.Jan-10 27 The Basics of GenerativeComponentsCopyright 2009 Bentley Systems, Incorporated

  • Getting help

    5 Click inside the first Expression field, next to CenterPoint.The Example button highlights.

    6 Click the Example button.

    View 2 opens. In addition an Example Symbolic Diagram opens and is for the Example. Also, a new tab named Example appears in the GC dialog.

    7 In the GC dialog, click Play All Remaining Transactions to see the geometry that results from the example.

    8 Spend a few minutes to try other Features and Update Methods and explore their Examples.

    9 Use the window control in the upper right to close the Examples tab.

    This will also close the View and the Example Symbolic Diagram.

    Additional Help Examples and IMPORTANT NOTE

    IMPORTANT NOTE: One of GenerativeComponents most interesting advantages is that it is self-documenting.The Basics of GenerativeComponents 28 Jan-10Copyright 2009 Bentley Systems, Incorporated

  • Getting Started

    Therefore, most GC users learn by reviewing existing GCT files. By looking at an existing GCT files you can see how someone created a specific piece of geometry.

    To aid in this process GC ships with many Workflow Samples on various topics.

    You can find these sample GCTs at:

    C:\Documents and Settings\All Users\Application Data\Bentley\GenerativeComponents\WorkSpace\Projects\Examples\GC_Default\gct\WorkflowSamples

    In addition, there are hundreds of GCT files available on the Internet, from Bentley and various other resources. A good place to start is:

    http://communities.bentley.com

    From here you can join Forums, read and post to Wikis and find communities of other users.

    Also, go to:

    http://www.smartgeometry.org

    Getting Started

    Create a transaction file

    GenerativeComponents has a GCT file format. It is a simple ASCII text file that can be opened with a text editor. If you double click on a GCT in Windows Explorer you launch GenerativeComponents and open that file.

    By default, GenerativeComponents uses seedGC.dgn to create the design file in which you will create geometric components. This file is like a scratch file. The directions needed to create the geometry are stored in the DGN file. The DGN file is used to assemble and display the model that you will build and can be Saved As a GCT file.

    CAD managers should use their own default seed files as a basis for creating their own seedGC.dgn. The delivered file is an example only, and will not contain project specific working units, levels or any other settings.Jan-10 29 The Basics of GenerativeComponentsCopyright 2009 Bentley Systems, Incorporated

  • Getting Started

    When you launch the GenerativeComponents application, the GenerativeComponents dialog appears and 2 view windows are open on the

    screen.

    The basic layout in the Geometric view is based on a global coordinate system, or baseCS, which has a Z-Axis pointing upward and X and Y axis oriented in the plane. Geometric elements are seen as what they are, such as line elements, or as cell icons depicting abstract elements such as planes or directions, which otherwise could not be effectively shown in a view like this.

    Hint: To easily locate direction on the baseCS, open View 8, rotate it to Right Isometric and then fit it, using the view controls. Click the right mouse button to reset after using a view control to return focus to the GenerativeComponents dialog. Minimize View 8 and use it when you need to identify direction.

    Exercise: Create a New file for GCThe Basics of GenerativeComponents 30 Jan-10Copyright 2009 Bentley Systems, Incorporated

  • View Control

    1 In the GenerativeComponents main menu select File > New File.In the GenerativeComponents dialog, you see the New Feature tab which contains the library of available feature types. You select feature types and define their parameters on this tab.

    The Transaction File tab is does not list anything because nothing has been recorded to the transaction file.

    View Control

    When you work in a 2D model, you can rotate the view. Visually, this is like rotating the xy-plane about a perpendicular, or z-axis. When you are working in a 3D model, you can rotate the view about any axis (the x-, y-, or z-axis). Again, the Jan-10 31 The Basics of GenerativeComponentsCopyright 2009 Bentley Systems, Incorporated

  • View Control

    visual effect on screen is like rotating a cube. You can rotate any view to a standard view or to any other arbitrary view orientation.When you dynamically rotate a view, for example, you can use either of the following methods:

    Using the mouse

    Shift key + middle mouse button to Rotate about Center

    Pressing the left mouse button completes the rotation

    Using a tool

    View Rotation

    Standard View Rotation

    Rotating a view using the mouse

    The mouse wheel/button can be used for several view control purposes.

    The most common view controls are:

    Double click the wheel to Fit View

    Single click the wheel for a Dynamic Pan View

    Roll the wheel for Zoom In/Out

    Shift + click mouse wheel for View Rotation about center

    Additional 3D mouse view controls are:

    Shift + roll - Pan with Zoom

    Ctrl + middle button click - Rotate about point

    Ctrl + roll - Walk Forward/Backward

    Alt + roll - Pan Left/RightThe Basics of GenerativeComponents 32 Jan-10Copyright 2009 Bentley Systems, Incorporated

  • Creating Features

    Clip Volume and Clip MaskDuring a design session, you may want to work on a particular element and rotate it to view from various angles. When you do this with clipping planes set, however, parts may disappear or other elements appear in the display depth. MicroStations Clip Volume and Mask tools let you select a discrete volume, within the design cube, for display.

    This tool is helpful in general as well as when you have elements on the same level and some elements you want to see and others you do not.

    You can use 2D or 3D elements to define the volume. When you use a 2D shape, the clipping volume is created by sweeping the 2D shape through the entire model. The sweep direction is perpendicular to the plane of the 2D element. MicroStation creates a 2D clipping shape using active attributes. When a 3D element is used, it defines the entire clip volume.

    Operations, such as view rotation, fence processing, hidden line removal, and rendering, honor the clip volumes. They ignore any elements that are not displayed within the defined volume for the view.

    Clipping elements may consist of any solid or closed extrusion, cylinders, or closed planar elements (shapes, circles, ellipses, complex shapes, grouped holes). Where a planar element is chosen, or you use the clipping elements by points options, the clipping volume is generated by sweeping the planar element through the entire model. Planar elements may be selected in any view, because the sweep direction is orthogonal to the plane of the element. Similarly, clip elements that you define by points may be drawn in any view. AccuDraw can be used to set the correct orientation of the clip element.

    ClipVolume is also the name of a feature type and can be used as any other feature.

    Creating Features

    A feature is a graphical element or an operation on a graphical element or a function to control graphical elements.Jan-10 33 The Basics of GenerativeComponentsCopyright 2009 Bentley Systems, Incorporated

  • Creating Features

    Geometric Features are based on MicroStation elements and have a name or Feature Type and an Update Method. For example, the Line Feature Type has

    about 22 Update Methods. Which is to say you can draw a Line up to 22 different ways. Common Update Methods for a Line are:

    Line ByPoints - Here you define the endpoints of a line to define it.

    Line ByStartPointDirectionLength - Here you define a start point, the direction of the line and the length of the line.

    Most Update Methods have an Help Example so you can see how they work. So when you define a Feature you must think of the Update Method you will use to define it.

    Points

    It is all about Points. Almost every feature is dependent on Points.

    Points are the basis of the geometry you will create. GenerativeComponents stores the relationship between the points and associated geometry and computes the associated geometry from the current value of the points.

    Create Point tool and Line feature

    Exercise: Use points to create a line1 Continue in your new file.

    2 In the GenerativeComponents dialog, click the Create Point tool.

    This tool creates a point ByCartesianCoordinates. Properties of this type of point identify the coordinate system to which it is related, the baseCS in this case, and the X, Y and Z location of the point. When you select the tool and enter a data point you are identifying these properties. You can also specify these explicitly on the New Feature tab of the GenerativeComponents dialog.

    3 Enter a data point in the Geometric view to place one point, enter another data point to place a second point, and then click the right mouse button to end the command. The Basics of GenerativeComponents 34 Jan-10Copyright 2009 Bentley Systems, Incorporated

  • Creating Features

    This is called a reset.Two point symbols have also been added to the graph in the Symbolic Diagram.

    Note: GC automatically names new features with their type and then a serial number starting with 01 and incrementing each new instance of that type by 1.Jan-10 35 The Basics of GenerativeComponentsCopyright 2009 Bentley Systems, Incorporated

  • Creating Features

    4 Scroll to Line in the Feature Type list and click the + to expand the entry.You see many update methods by which you can create lines. You will create a line ByPoints.

    5 Scroll to the ByPoints update method and expand it to see the properties you must define.

    6 Click in the field to the right of StartPoint.

    7 Press and hold the Ctrl key on the keyboard, and then move the pointer over the first point in the graphics view. The Basics of GenerativeComponents 36 Jan-10Copyright 2009 Bentley Systems, Incorporated

  • Creating Features

    The point highlights and its name appears in a pop-up. You can select features from either the graphic or Symbolic Diagram.8 While still holding the Ctrl key, enter a data point (left mouse button), or press Enter on the keyboard, to accept.

    Point01 is entered and focus now moves to the EndPoint field.

    9 Press and hold the Ctrl key on the keyboard, and then enter a data point on the second point.

    The fields are populated, but no line has appeared.

    10 Click OK at the bottom of the GenerativeComponents dialog.

    The line now appears.

    11 Review the Symbolic Diagram.

    GenerativeComponents named the feature line01. To give it the name of your choice, either name before clicking OK (previous step 9) or click the Rename button to change the name in the New Name field of the Rename dialog and then click OK. Jan-10 37 The Basics of GenerativeComponentsCopyright 2009 Bentley Systems, Incorporated

  • Creating Features

    It is a good idea to give features, and transactions, meaningful names.If you are drawing multiple lines by points, first place all the points, then click the Create New button. This takes you back to the same location in the Feature Type list so you can define the next lines parameters.The Basics of GenerativeComponents 38 Jan-10Copyright 2009 Bentley Systems, Incorporated

  • Creating Features

    Using the Expression FieldThe expression field where the values Point01 and Point02 were entered, can also be used in other ways.

    This field is similar to the expression field for Microsoft Excel.

    If you feel comfortable with those expression fields then you will be fine with GC.

    Expression Field

    Expression FieldJan-10 39 The Basics of GenerativeComponentsCopyright 2009 Bentley Systems, Incorporated

  • Creating Features

    In the expression field you can enter data using Ctrl+mouse click or typing in information.For example, simple numbers, simple computations or scientific calculations. You can even do complex expressions like:

    (1/acos(0.9)+1)*5

    These calculations follow the PODMAS rules:

    P - Parentheses first

    Orders - Powers and Roots

    DM - Division, Multiplication

    AS - Addition, Subtraction

    Some useful notations are:

    xy = Pow(x,y)

    Square Root = Sqrt(x)

    There is much more that can be done here, so it is important to understand these basic functions before more complex uses of the Expression Field are used.

    Defining a transaction

    A transaction is a single event in a GC file. It might be placing a point, drawing a line, moving a point, importing Excel data or many other things.

    Exercise: Define the transaction

    Number

    Expression

    FunctionThe Basics of GenerativeComponents 40 Jan-10Copyright 2009 Bentley Systems, Incorporated

  • Symbolic Diagram

    1 Continue in the same file.2 Click the Transaction File tab in the GenerativeComponents dialog.

    3 Click Record User Changes into the Transaction File.

    A transaction bearing the name of the events as been added.

    4 Replace the default name with a more meaningful name, if desired.

    5 Click Save Transaction File, supply a name, and click Save.

    6 Click the + (node) to expand the transaction.

    The points and the line have been recorded. Note that GenerativeComponents lists features alphabetically.

    7 At the bottom of the tab, click Unplay the previous transaction.

    The geometry disappears from view. It is not gone, though, because the instructions about placing the points and the line remain in the file. You play the transaction to reconstruct the geometry.

    8 Click the Fit button, to the right of the transaction player controls.

    Now all geometry will fit in the views. Enable this button any time you want to fit everything into the views.

    9 Click Play next transaction so the geometry reappears.

    10 Expand point01.

    You can see how it was constructed. The coordinate system on which it is based is a property and also its X, Y, and Z coordinates. Handles are used to edit features. Use the HandleVisible property to toggle their display.

    11 Save the file as first_line.gct

    Symbolic Diagram

    The Symbolic Diagram shows the features created and their relationship. Almost every symbolic diagram will have a Coordinate System, by default it is given a Jan-10 41 The Basics of GenerativeComponentsCopyright 2009 Bentley Systems, Incorporated

  • Symbolic Diagram

    name of baseCS. There are several tools to help with managing the symbolic diagram.The tools in the top of the window allow you to set the direction of the flow chart, with options for Top, Bottom, Left and Right. There are Zoom In, Zoom Out, Fit View, Actual Size and Refresh.

    The Search button on the right allows you to find a specific string of text as a name or content in the Symbolic Diagram.The Basics of GenerativeComponents 42 Jan-10Copyright 2009 Bentley Systems, Incorporated

  • State

    There is also right-click functionality in the Symbolic Diagram. When you right click on a feature in the Symbolic Diagram you see the following menu.State

    The State dialog is showing which plane you are on and allows you to change the plane. You may dock it anywhere, for example on top the tool settings so it forms a tab.Jan-10 43 The Basics of GenerativeComponentsCopyright 2009 Bentley Systems, Incorporated

  • Parameter Spaces

    Parameter SpacesParameter spaces allow you to describe a mathematical relationship between the parameter space and the geometry.

    The figure shows a 2D representation of a 3D space to provide a method of action of the surface.

    T Value point

    A T Value point denotes a relative position that is controlled by the parameter T, in a range of 0.0 to 1.0, along a line or curve. It is created by the feature Point > ByParameterAlongCurve.

    Exercise: Create a T Value point1 Open the first_line.gct file.

    2 In the GenerativeComponents dialog, click the Create Feature tool.

    3 Scroll to Point in the Feature Type list and expand the entry.

    4 Expand the ByParamterAlongCurve update method to see the parameters you must define.

    Parameters listed in black are required. Those in blue are optional and you can define them now, or later. To see all parameters, enable the Show settings properties check box above the feature list.

    UV Valueson Surface

    UV Values inParameter SpaceThe Basics of GenerativeComponents 44 Jan-10Copyright 2009 Bentley Systems, Incorporated

  • Parameter Spaces

    5 Click in the expression field, to the right of the Curve property.6 Press and hold the Ctrl key on the keyboard, and then enter a data point on the line, or press Enter on the keyboard, to accept.

    Note: If an invalid expression value is entered the field will become shaded.

    Focus shifts to the T: double (repl.) field.

    7 Type 0.5.

    This means that the point will always be in the center of the line. The value 0 would place a point at the start of the line, 1.0 at the end of the line, 0.2 at 20% from the start of the line, and so on.

    8 Rename the feature TValuePoint in the Name of feature field, and then click OK.

    A point appears in the center of the line.

    9 Select the Transaction File tab and click Record User Changes into the Transaction File.

    10 Replace the default name with a more meaningful name.

    11 Click Save.Jan-10 45 The Basics of GenerativeComponentsCopyright 2009 Bentley Systems, Incorporated

  • Parameter Spaces

    Editing FeaturesYou can edit a feature different ways. You can use the Move Feature tool to move a feature in the geometric view, you can change the values in the Expression fields on the Transaction File tab or you can click the blue property editor icon that appears when you click in the Expression field and enter values in the resulting dialog.

    Move Feature tool

    Handles represent the parameters of a feature that can be edited interactively within the Geometric view.

    For instance, a point created by Cartesian coordinates is defined by X, Y and Z coordinates. Each line corresponds to an axis with a matching color.

    X-axis = Red

    Y-axis = Green

    Z-axis = Cyan

    Select the Move Feature tool, click on one of the handles, and the point will move along the selected axis, adjusting the corresponding parameter accordingly. For each pair of axes, X-Y Y-Z and X-Z there is a corner handle. If that one is selected you can change both variables simultaneously (move in a plane instead along an axis). However, you cannot click the center of the point and move it.

    Exercise: Use the handles1 In the GenerativeComponents dialog, click the Move Feature tool.

    2 Click one of point01s red handles, continue pressing the mouse button, and move the point along the X-axis.

    Red handles move the point along the X-axisThe Basics of GenerativeComponents 46 Jan-10Copyright 2009 Bentley Systems, Incorporated

  • Parameter Spaces

    A Feature Coordinates tab dialog is opened. It has been docked with Tool Settings and State. 3 Enter a data point to move the point.

    Note the value change in the XTranslation field.

    4 Select the Transaction File tab and check the XTranslation value for point01.

    It has not changed. The values here are part of the first transaction.

    5 Click Record User Changes and replace the default name with a more meaningful name, if desired.

    6 Expand the new transaction, expand point01, and see that the changes to point01 are recorded as a separate transaction.

    7 Click Save.

    8 Click Unplay All Transactions.

    9 Click Play Next Transaction.Jan-10 47 The Basics of GenerativeComponentsCopyright 2009 Bentley Systems, Incorporated

  • Parameter Spaces

    You see the original points and line.10 Click Play next transaction twice to step through these transactions.

    The T Value point appears and then point01 and the line move.

    You can turn handles off from Tools > Toggle Feature Settings > Handles Visible or

    Free and locked parameters

    There is a free button on the right side of the numeric field on the Coordinates tab. You also see the value noted in the expression fields on the Transaction File tab.

    Free in Move mode on the Coordinates tab

    Right click in Feature Edit form to set/clear free status.

    In the free state you can use the graphic handles to move a feature interactively. If a value is typed in manually, or the button is pressed, it changes to locked and the feature can only be edited through a parameter edit.The Basics of GenerativeComponents 48 Jan-10Copyright 2009 Bentley Systems, Incorporated

  • Parameter Spaces

    Feature associationDuring the exercise you saw that moving point01 moved the line and the T Value point. That is because of the dependencies, which you can see in the Symbolic diagram. The graph in the Symbolic diagram shows that the association flows directly from point01 and point 02 to the line. The line is dependant on the points, which are dependant on the location of the baseCS.

    The T Value point is also dependent on the line. So, when you change a feature on a higher level of the hierarchy, all other features which are linked to that feature will update accordingly.

    The symbols in the Symbolic diagram did not move when you moved the point. You can move the symbols as desired in the Symbolic diagram to get a clear idea of the feature structure of your model. This does not change their position geometrically.

    Edit Feature tool

    Use this tool to edit all parameters of a selected feature.

    Exercise: Edit the T Value point features parameters1 In the GenerativeComponents dialog, click the Edit Feature tool.

    2 In the Symbolic diagram, enter a data point on the T Value point.

    Note: You can also select the feature in the Geometric view. However, since the T Value point sits on the line, it is easier to select it in the Symbolic diagram.

    The Edit Feature tab is added to the GenerativeComponents dialog.

    3 Click in the T: double field, change 0.5 to 0.3, and click Apply.

    The point moves closer to the start of the line.

    4 Select the Transaction File tab.

    5 Click Record User Changes.

    Note: A transaction will also be recorded if you unplay and replay all transactions.Jan-10 49 The Basics of GenerativeComponentsCopyright 2009 Bentley Systems, Incorporated

  • Parameter Spaces

    6 Click Save.Working with Transactions

    As you start to work with GC you will notice that there is no UNDO command. Since you are capturing the history in each transaction you can simply delete or suppress that transaction. If you forgot to Record you changes to a transaction you can split up a transaction or you can manually edit you GCT to add or remove transactions.

    When you add features to the model the steps are recorded as parts of a transaction. Use options on the Transaction File tab to work with the entire transaction.

    Suppress transaction

    When you right click on a transaction, or the node that precedes it, you can select Suppress Transaction from the menu. This allows you to play the steps in the transaction file, skipping the steps in that particular transaction.

    While you can delete transactions from the right click menu, it is better to suppress transactions than delete them. Once the work is done, you may want to apply it else where. You can copy and paste transactions to do this.

    Exercise: Suppress a transaction1 In the GenerativeComponents dialog, right click on the third transaction,

    when you moved point01.

    2 Select Suppress Transaction.

    The indicator preceding the transaction name is dimmed.The Basics of GenerativeComponents 50 Jan-10Copyright 2009 Bentley Systems, Incorporated

  • Parameter Spaces

    3 Unplay all transactions.4 Click Play next transaction.

    You see the original points and line.

    5 Click Play next transaction.

    The original T Value point appears.

    6 Click Play next transaction.

    The T Value point moves, but point01 and the line do not move since the instructions that make this occur have been suppressed.

    Cutting and copying transactions

    Exercise: Move a transaction1 In the GenerativeComponents dialog, right click on the third transaction

    and select Unsuppress Transaction.

    2 Right click on it again and select Cut Transaction.

    3 Right click on the last transaction that is now listed and select Paste Transaction > Insert After.

    4 Unplay all transactions.

    5 Click Play next transaction to step through the new order.

    6 Click Save.

    Any of these changes can be saved without changing the current transaction file by selecting File > Save As.Jan-10 51 The Basics of GenerativeComponentsCopyright 2009 Bentley Systems, Incorporated

  • Parametric and Associative

    Parametric and AssociativeSo far GC produces geometry like any other graphics application. Lets see how it differs by producing parametric and associative geometry. In the following exercise you will create two lines that cross or intersect each other. You will then create a point at the intersection point. Then draw a line between that intersection point and another point. The association is between the last line and the intersection point. As you move one of the first points to break the intersection the line is removed.

    Exercise: Creating a Conditional Line based on Intersection1 Create a new GCT file.

    2 Select the Create Point command and place five points as shown.The Basics of GenerativeComponents 52 Jan-10Copyright 2009 Bentley Systems, Incorporated

  • Parametric and Associative

    3 Select Create Feature and draw two Lines, with method ByPoint, as shown. Use the default names (line01 and line02).4 Select Create Feature and create a Point with method AtCurveCurveIntersection, select the two lines as the curves.

    5 Set TreatLinesInfinite to false and click OK.

    6 Select Create Feature and create a Line with method ByPoints, select the point off to the side and the intersection point.

    Note: It is easier to select the intersection point in the Symbolic diagram.

    7 Select the Move Feature tool and click on the corner (where the red and green lines touch) to move the point in a planar fashion.

    8 Move the point so that the two lines no longer intersect.Jan-10 53 The Basics of GenerativeComponentsCopyright 2009 Bentley Systems, Incorporated

  • Parametric and Associative

    9 Select the corner in the upper right so that you can move in X and Y.Note how the third line disappears when the intersection condition is broken.

    Advanced Note on Temporary Features

    The Intersection point can be a temporary point, or one that is generated when needed.

    How to create a temporary point:

    Do not complete Exercise step 4. When you create the feature line03, replace the line03 EndPoint expression with the following.

    new Point().AtCurveCurveIntersection(line01,line02)The Basics of GenerativeComponents 54 Jan-10Copyright 2009 Bentley Systems, Incorporated

  • Module Review

    This point is only created at the time it is needed, and does not exist otherwise.Module Review

    Now that you have completed this module, lets measure what you have learned.

    Questions

    1 What is a double?

    2 What is an integer?

    3 Where are the directions about how to create the geometry stored?

    4 How do you reconstruct geometry that you have created?

    5 What is the difference between the free and locked parameters?

    6 What is a T Value point?

    Answers

    1 A double is another name for a Real number; any number with a decimal value.

    2 An integer is any whole number.

    3 The directions about how to create the geometry are stored in a DGN file.

    4 You play a transaction to reconstruct the geometry.

    5 In the free state you can use the graphic handles to move a feature interactively. When locked and it can only be edited through a parameter edit.

    6 A T Value point denotes a relative position that is controlled by the parameter value T, in the range of 0.0 to 1.0, along a line or curve.Jan-10 55 The Basics of GenerativeComponentsCopyright 2009 Bentley Systems, Incorporated

  • Tips from this module

    Tips from this module1 Learn the basics of the interface. Spend 15 minutes exploring menus and tools for your first few sessions.

    2 Understand how to use the View Controls, spend five minutes at the beginning of each session practicing zoom in/out and rotating. Spin the mouse wheel for Zoom In/Out, double click to fit the view and Shift+press the wheel for Rotate about center of view.

    3 Remember it is all about points. Explore the Point feature and its Update Methods.

    4 Use Example Help.

    5 The Symbolic Diagram is a great way to find, insert into expression fields and operate on features.

    6 Learn the vocabulary of GC now. Features, Transactions, Symbolic Diagram, Update Methods, Parametric values, free v. locked values, etc.The Basics of GenerativeComponents 56 Jan-10Copyright 2009 Bentley Systems, Incorporated

  • Introductory Knowledge

    Before you begin this module, let's define what you already know.Variables and Sets

    Module Overview

    This module discusses variables and describes how to create a graphic variable for GenerativeComponents. It also presents the procedure for creating sets or collections/lists and establishing a new coordinate system. You will also learn techniques to shorten the design process.

    Module Prerequisites

    Basic understanding of Features, Transactions and Interface

    Module Objectives

    After completing this module, you will be able to:

    Create and modify Graph Variables

    Creates and manipulate sets

    Define a new coordinate system

    Drawing economically

    Define feature properties

    Edit a transaction file

    Select alternative update methodsJan-10 57 Variables and Sets

    Copyright 2009 Bentley Systems, Incorporated

  • Module Glossary

    Questions1 How do you create a point feature?

    2 Where can you define feature parameters?

    Answers

    1 In the GenerativeComponents dialog, click the Create Point tool or select Features > Create Point. Place the points by entering data points.

    2 In the expression fields for the update methods for different feature types.

    Module Glossary

    Graph variable

    These work hierarchically and affect elements in the graph to which they belong. A graph variable will control all elements or constructions that reference it. When you change the graph variable, all references to that variable will change along with it.

    Curly brackets {}

    These are used to define collections or sets, such as a set of features made up of {point01, point02, point03}. These can be passed as a parameter value.

    Syntax

    Sets

    Sets use curly brackets: { }Variables and Sets 58 Jan-10Copyright 2009 Bentley Systems, Incorporated

  • Syntax

    Consider a circle defined by a center point and radius. You could have one circle with a defined radius of 5 units.or,

    you can have a set of circles by using curly brackets and a set of numbers for radii.

    A set of sets looks like: {{abc},{def}}

    Radius set to 5

    Radii controlled by setof numbers: {2,3,5,7,8}Jan-10 59 Variables and SetsCopyright 2009 Bentley Systems, Incorporated

  • Syntax

    IndexIndex of inputs uses square brackets: [ ]

    The Index count starts at 0.

    For Circle01 below we have:

    In GC these circles are notated as:

    Circle01[0]

    Circle01[1]

    Circle01[2]

    Circle01[3]

    Circle01[4]

    For a List of 5 circles, which is the List Length.

    Remember when you index a set you start with 0.

    If you have multiple dimensions then use:

    Index [a][b]...[n]

    [0][1]

    [2]

    [3] [4]Variables and Sets 60 Jan-10Copyright 2009 Bentley Systems, Incorporated

  • Syntax

    For example, consider the 2D array of points, this is two sets of X values and Y-value for one point, point01:Within a set you can also mix types, for example add a variable as a set member.

    Exercise: Trying out sets1 Try to duplicate the circles example.

    2 Then try 2D point grid shown above.

    Functions

    Functions use parentheses ( ). For example,

    Sin(1.28)

    Series(0,9,1)

    Point01[2][0] Point01[5][3]Point01[9][0]

    Point01[0][2]Jan-10 61 Variables and SetsCopyright 2009 Bentley Systems, Incorporated

  • Graph Variables

    Graph VariablesThe Symbolic view contains the graph, or graphs, of geometric and non-geometric features. You can create a new model and its baseCS is free from the default models baseCS. The Symbolic view can contain more than one graph, and they only become interrelated if you design a dependency between them.

    Variables are named data containers that can hold values a