Date post: | 05-Apr-2018 |
Category: |
Documents |
Upload: | volker-mueller |
View: | 214 times |
Download: | 0 times |
of 147
7/31/2019 2012 02 14 GC Principles
1/147
2
0 1 2 B e n t l e y
S y s t e m s ,
I n c o r p o r a t e
d
GenerativeComponents PrinciplesValentines Day 2012
Volker Mueller
Research Director
7/31/2019 2012 02 14 GC Principles
2/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
2 | WWW.BENTLEY.COM
GenerativeComponents Principles A quick introduction to the most important things you need to know about GC
Status:GC 8.11.9.93
7/31/2019 2012 02 14 GC Principles
3/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
3 | WWW.BENTLEY.COM
Originally inspired by Ben Dohertys
generative componentstheoretical frameworksthe stuff youneed to know
www.notionparallax.co.uk
7/31/2019 2012 02 14 GC Principles
4/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
4 | WWW.BENTLEY.COM
A Starting Point andGrounding in SpaceGive me a lever long enough and a fulcrum [fixed point in space] on which to place it, and I shall move the world. Archimedes
7/31/2019 2012 02 14 GC Principles
5/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
5 | WWW.BENTLEY.COM
GenerativeComponents is a change propagation system.Changes are propagated through a dependency graph (the Graph).
Graph is directed and acyclic = directed acyclic graph = DAG.
Graph needs a (logical) starting point =baseCS .
A Starting Point
7/31/2019 2012 02 14 GC Principles
6/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
6 | WWW.BENTLEY.COM
Theoretical geometrygives us an infiniteuniverse as a blankcanvas. There is noinherent concept of up, or of where weare in this space.
We add a grid toprovide someorientation.
7/31/2019 2012 02 14 GC Principles
7/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
7 | WWW.BENTLEY.COM
Theoretical geometrygives us an infiniteuniverse as a blankcanvas. There is noinherent concept of up, or of where weare in this space.
We add a grid toprovide someorientation.
We add a coordinate
system baseCS to provideA Starting Point for the geometry, too.
7/31/2019 2012 02 14 GC Principles
8/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
8 | WWW.BENTLEY.COM
The most commonway of describingspace is theCartesian grid with{X, Y, Z} coordinatetriples.
7/31/2019 2012 02 14 GC Principles
9/147
2 0 1 2 B e n
t l e y
S y s
t e m s ,
I n c o r p o r a
t e d
9 | WWW.BENTLEY.COM
The most commonway of describingspace is theCartesian grid with{X, Y, Z} coordinatetriples.
7/31/2019 2012 02 14 GC Principles
10/147
2 0 1 2 B e n
t l e y
S y s
t e m s ,
I n c o r p o r a
t e d
10 | WWW.BENTLEY.COM
The most commonway of describingspace is theCartesian grid with{X, Y, Z} coordinatetriples.
The positive direction
of theZ axis isconsidered up ininfrastructure design.
7/31/2019 2012 02 14 GC Principles
11/147
2 0 1 2 B e n
t l e y
S y s
t e m s ,
I n c o r p o r a
t e d
11 | WWW.BENTLEY.COM
A CoordinateSystemin GC determines
7/31/2019 2012 02 14 GC Principles
12/147
2 0 1 2 B e n
t l e y
S y s
t e m s ,
I n c o r p o r a
t e d
12 | WWW.BENTLEY.COM
A CoordinateSystemin GC determines
(a) A location (X, Y, Z),often at X, Y, and Z =0 for the baseCS.
7/31/2019 2012 02 14 GC Principles
13/147
2 0 1 2 B e n
t l e y
S y s
t e m s ,
I n c o r p o r a
t e d
13 | WWW.BENTLEY.COM
A CoordinateSystemin GC determines
(a) A location (X, Y, Z),often at X, Y, and Z =0 for the baseCS.
(b) Three axes, normalto each other.
7/31/2019 2012 02 14 GC Principles
14/147
2 0 1 2 B e n
t l e y
S y s
t e m s ,
I n c o r p o r a
t e d
14 | WWW.BENTLEY.COM
A CoordinateSystemin GC determines
(a) A location (X, Y, Z),often at X, Y, and Z =0 for the baseCS.
(b) Three axes, normalto each other.
(c) Three planes,spanned by pairs of the X, Y, Z directionvectors for 3 planes(XY, XZ, YZ),therefore,perpendicular to eachother (b).
7/31/2019 2012 02 14 GC Principles
15/147
2 0 1 2 B e n
t l e y
S y s
t e m s ,
I n c o r p o r a
t e d
15 | WWW.BENTLEY.COM
Planes and their normals have thesame color-coding.
7/31/2019 2012 02 14 GC Principles
16/147
2 0 1 2 B e n
t l e y
S y s
t e m s ,
I n c o r p o r a
t e d
16 | WWW.BENTLEY.COM
Planes and their normals have thesame color-coding.
The yellow lineindicates thecurrently activeplane.
7/31/2019 2012 02 14 GC Principles
17/147
2 0 1 2 B e n
t l e y
S y s
t e m s ,
I n c o r p o r a
t e d
17 | WWW.BENTLEY.COM
This is a GCCoordinateSystem.
It is the Starting Pointfor the geometricmodel.
7/31/2019 2012 02 14 GC Principles
18/147
2 0 1 2 B e n
t l e y
S y s
t e m s ,
I n c o r p o r a
t e d
18 | WWW.BENTLEY.COM
This is a GCCoordinateSystem.
It is the Starting Pointfor the geometricmodel.
and for the Graph.
7/31/2019 2012 02 14 GC Principles
19/147
2 0 1 2 B e n
t l e y
S y s
t e m s ,
I n c o r p o r a
t e d
19 | WWW.BENTLEY.COM
This is a GCCoordinateSystem.
It is the Starting Pointfor the geometricmodel.
and for the Graph.
7/31/2019 2012 02 14 GC Principles
20/147
2 0 1 2 B e n
t l e y
S y s
t e m s ,
I n c o r p o r a
t e d
20 | WWW.BENTLEY.COM
Populating the Model View &Populating the GraphGraph & Model View show the same Model
7/31/2019 2012 02 14 GC Principles
21/147
2 0 1 2 B e n
t l e y
S y s
t e m s ,
I n c o r p o r a
t e d
21 | WWW.BENTLEY.COM
7/31/2019 2012 02 14 GC Principles
22/147
2 0 1 2 B e n
t l e y
S y s
t e m s ,
I n c o r p o r a
t e d
22 | WWW.BENTLEY.COM
direct modelingpoint,plane,coordinate systemplacement.
7/31/2019 2012 02 14 GC Principles
23/147
2 0 1 2 B e n
t l e y
S y s
t e m s ,
I n c o r p o r a
t e d
23 | WWW.BENTLEY.COM
7/31/2019 2012 02 14 GC Principles
24/147
2 0 1 2 B e n
t l e y
S y s
t e m s ,
I n c o r p o r a
t e d
24 | WWW.BENTLEY.COM
old fashionedplacement throughNew Node task.
7/31/2019 2012 02 14 GC Principles
25/147
2 0 1 2 B e n
t l e y
S y s
t e m s ,
I n c o r p o r a
t e d
25 | WWW.BENTLEY.COM
old fashionedplacement throughNew Node task.
Provide inputsthrough graphicselection of Nodes or Geometry.
7/31/2019 2012 02 14 GC Principles
26/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
26 | WWW.BENTLEY.COM
7/31/2019 2012 02 14 GC Principles
27/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
27 | WWW.BENTLEY.COM
Drag and drop fromNew Node pane toGraph.
(future Node palette.)
7/31/2019 2012 02 14 GC Principles
28/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
28 | WWW.BENTLEY.COM
Drag and drop fromNew Node pane toGraph.
(future Node palette.)
No dropping intomodel
7/31/2019 2012 02 14 GC Principles
29/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
29 | WWW.BENTLEY.COM
drag
7/31/2019 2012 02 14 GC Principles
30/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
30 | WWW.BENTLEY.COM
drop
7/31/2019 2012 02 14 GC Principles
31/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
31 | WWW.BENTLEY.COM
wire
7/31/2019 2012 02 14 GC Principles
32/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
32 | WWW.BENTLEY.COM
wire
7/31/2019 2012 02 14 GC Principles
33/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
33 | WWW.BENTLEY.COM
7/31/2019 2012 02 14 GC Principles
34/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
34 | WWW.BENTLEY.COM
generate result
7/31/2019 2012 02 14 GC Principles
35/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
35 | WWW.BENTLEY.COM
generate result
7/31/2019 2012 02 14 GC Principles
36/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
36 | WWW.BENTLEY.COM
3 ModesModel, Graph, GC-Script
7/31/2019 2012 02 14 GC Principles
37/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
37 | WWW.BENTLEY.COM
1: Model
2: Graph
12
7/31/2019 2012 02 14 GC Principles
38/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
38 | WWW.BENTLEY.COM
1: Model
2: Graph
3: Editable inputproperties /expressions.
12 3
7/31/2019 2012 02 14 GC Principles
39/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
39 | WWW.BENTLEY.COM
1: Model
2: Graph
3: Editable inputproperties /expressions.
12 3
7/31/2019 2012 02 14 GC Principles
40/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
40 | WWW.BENTLEY.COM
12 333
1: Model
2: Graph
3: Editable inputproperties /expressions.
Editable Transaction
Script.
7/31/2019 2012 02 14 GC Principles
41/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
41 | WWW.BENTLEY.COM
3 MethodsLeft to right, right to left, hybrid
7/31/2019 2012 02 14 GC Principles
42/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
42 | WWW.BENTLEY.COM
Left to right
7/31/2019 2012 02 14 GC Principles
43/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
43 | WWW.BENTLEY.COM
Left to right
7/31/2019 2012 02 14 GC Principles
44/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
44 | WWW.BENTLEY.COM
Left to right
7/31/2019 2012 02 14 GC Principles
45/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
45 | WWW.BENTLEY.COM
Left to right
7/31/2019 2012 02 14 GC Principles
46/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
46 | WWW.BENTLEY.COM
Left to right
7/31/2019 2012 02 14 GC Principles
47/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
47 | WWW.BENTLEY.COM
Left to right
7/31/2019 2012 02 14 GC Principles
48/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
48 | WWW.BENTLEY.COM
Right to left
7/31/2019 2012 02 14 GC Principles
49/147
2 0 1 2 B e n
t l e y
S y
s t e m s ,
I n c o r p o r a
t e d
49 | WWW.BENTLEY.COM
Right to left
7/31/2019 2012 02 14 GC Principles
50/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
50 | WWW.BENTLEY.COM
Right to left
7/31/2019 2012 02 14 GC Principles
51/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
51 | WWW.BENTLEY.COM
Right to left
7/31/2019 2012 02 14 GC Principles
52/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
52 | WWW.BENTLEY.COM
Right to left
7/31/2019 2012 02 14 GC Principles
53/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
53 | WWW.BENTLEY.COM
Right to left
7/31/2019 2012 02 14 GC Principles
54/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
54 | WWW.BENTLEY.COM
Right to left
7/31/2019 2012 02 14 GC Principles
55/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
55 | WWW.BENTLEY.COM
Right to left
7/31/2019 2012 02 14 GC Principles
56/147
2 0 1 2 B e n
t l e y S y s t e m s ,
I n c o r p o r a
t e d
56 | WWW.BENTLEY.COM
Any which way
7/31/2019 2012 02 14 GC Principles
57/147
2 0 1 2 B e n
t l e y S y s t e m s ,
I n c o r p o r a
t e d
57 | WWW.BENTLEY.COM
Any which way
7/31/2019 2012 02 14 GC Principles
58/147
2 0 1 2 B e n
t l e y S y s t e m s ,
I n c o r p o r a
t e d
58 | WWW.BENTLEY.COM
Any which way
7/31/2019 2012 02 14 GC Principles
59/147
2 0 1 2 B e n
t l e y S y s t e m s ,
I n c o r p o r a
t e d
59 | WWW.BENTLEY.COM
Any which way
7/31/2019 2012 02 14 GC Principles
60/147
2 0 1 2 B e n
t l e y S y s t e m s ,
I n c o r p o r a
t e d
60 | WWW.BENTLEY.COM
Any which way
7/31/2019 2012 02 14 GC Principles
61/147
2 0 1 2 B e n
t l e y S y s t e m s ,
I n c o r p o r a
t e d
61 | WWW.BENTLEY.COM
Any which way
7/31/2019 2012 02 14 GC Principles
62/147
2 0 1 2 B e n
t l e y S y s t e m s ,
I n c o r p o r a
t e d
62 | WWW.BENTLEY.COM
Any which way
7/31/2019 2012 02 14 GC Principles
63/147
2 0 1 2 B e n
t l e y S y s t e m s ,
I n c o r p o r a
t e d
63 | WWW.BENTLEY.COM
Any which way
7/31/2019 2012 02 14 GC Principles
64/147
2 0 1 2 B e n
t l e y S y s t e m s ,
I n c o r p o r a
t e d
64 | WWW.BENTLEY.COM
Any which way
7/31/2019 2012 02 14 GC Principles
65/147
2 0 1 2 B e n
t l e y S y s t e m s ,
I n c o r p o r a
t e d
65 | WWW.BENTLEY.COM
Any which way
7/31/2019 2012 02 14 GC Principles
66/147
2 0 1 2 B e n
t l e y S y s t e m s ,
I n c o r p o r a
t e d
66 | WWW.BENTLEY.COM
Any which way
7/31/2019 2012 02 14 GC Principles
67/147
2 0 1 2 B e n
t l e y S y s t e m s ,
I n c o r p o r a
t e d
67 | WWW.BENTLEY.COM
Any which way
7/31/2019 2012 02 14 GC Principles
68/147
2 0 1 2 B e n
t l e y S y s t e m s ,
I n c o r p o r a
t e d
68 | WWW.BENTLEY.COM
Relationships/DependenciesDirected Acyclic Graph (DAG)Propagation System
7/31/2019 2012 02 14 GC Principles
69/147
2 0 1 2 B e n
t l e y S y s t e m s ,
I n c o r p o r a
t e d
69 | WWW.BENTLEY.COM
Dependency Graph.
7/31/2019 2012 02 14 GC Principles
70/147
2 0 1 2 B e n
t l e y S
y s t e m s ,
I n c o r p o r a
t e d
70 | WWW.BENTLEY.COM
Dependency Graph.
We are interested inrelationships, not justwhere and how bigthings are.
d h
7/31/2019 2012 02 14 GC Principles
71/147
2 0 1 2 B e n
t l e y S
y s t e m s ,
I n c o r p o r a
t e d
71 | WWW.BENTLEY.COM
Dependency Graph.
We are interested inrelationships, not justwhere and how bigthings are.
Move point01 andcone01 as well asline01 move, too.
D d G h
7/31/2019 2012 02 14 GC Principles
72/147
2 0 1 2 B e n
t l e y S
y s t e m s ,
I n c o r p o r a
t e d
72 | WWW.BENTLEY.COM
Dependency Graph.
We are interested inrelationships, not justwhere and how bigthings are.
Move point01 andcone01 as well asline01 move, too.
7/31/2019 2012 02 14 GC Principles
73/147
2 0 1 2 B e n
t l e y S
y s t e m s ,
I n c o r p o r a
t e d
73 | WWW.BENTLEY.COM
Input?Graphic or typing?
7/31/2019 2012 02 14 GC Principles
74/147
2 0 1 2 B e n
t l e y S
y s t e m s ,
I n c o r p o r a
t e d
74 | WWW.BENTLEY.COM
Lik d h t
7/31/2019 2012 02 14 GC Principles
75/147
2 0 1 2 B e n
t l e y S
y s t e m s ,
I n c o r p o r a
t e d
75 | WWW.BENTLEY.COM
Like a spreadsheet.
7/31/2019 2012 02 14 GC Principles
76/147
Lik d h t
7/31/2019 2012 02 14 GC Principles
77/147
2 0 1 2 B e n
t l e y S
y s t e m s ,
I n c o r p o r a
t e d
77 | WWW.BENTLEY.COM
5
5+2
Sin(5)
Value
Simpleexpression
Function
Like a spreadsheet.
Expression go intothis box.
Single values.
Simple expressions.
Functions drag & drop
Like a spreadsheet
7/31/2019 2012 02 14 GC Principles
78/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
78 | WWW.BENTLEY.COM
5
5+2
Sin(5)
Value
Simpleexpression
Function
Like a spreadsheet.
Expression go intothis box.
Single values.
Simple expressions.
Functions drag & drop
Like a spreadsheet
7/31/2019 2012 02 14 GC Principles
79/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
79 | WWW.BENTLEY.COM
Like a spreadsheet.
Expression go intothis box.
Single values.
Simple expressions.
Functions drag & drop
Complex expressionsfollow BODMAS
5
5+2
Sin(5)
Value
Simpleexpression
Function
Complexexpression(1/Sin(5)) + 90
7/31/2019 2012 02 14 GC Principles
80/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
80 | WWW.BENTLEY.COM
B ( ) Brackets firstO Orders (Powers, Roots)
DM / * Division and Multiplication (left to right)
AS + - Addition and Subtraction (left to right)
Power: xy Pow(x,y) expl. x Pow(x,0.5)
Root: x Sqrt(x)
x Pow(x,(1/3))
2
3
7/31/2019 2012 02 14 GC Principles
81/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
81 | WWW.BENTLEY.COM
B ( ) Brackets firstO Orders (Powers, Roots)
DM / * Division and Multiplication (left to right)
AS + - Addition and Subtraction (left to right)
15 / ( 3 + 2) = ?
15 / 3 + 2 = ?
( 15 / 3) + 2 = ?
7/31/2019 2012 02 14 GC Principles
82/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
82 | WWW.BENTLEY.COM
B ( ) Brackets firstO Orders (Powers, Roots)
DM / * Division and Multiplication (left to right)
AS + - Addition and Subtraction (left to right)
15 / ( 3 + 2) = 3
15 / 3 + 2 = 7
( 15 / 3) + 2 = 7
IN COMPUTING, THEREARE NEVER TOO MANYROUND BRACKETS
7/31/2019 2012 02 14 GC Principles
83/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
83 | WWW.BENTLEY.COM
5
5+2
Sin(5)
(1/Sin(5)) + 90
dave
dave*2
Value
Simpleexpression
Function
Complexexpression
Named variable
Expression withnamed variable
dave = 8
Once a variable isdefined (named) itcan take on a valueand be used in placeof a value.
Dave < > dave
7/31/2019 2012 02 14 GC Principles
84/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
84 | WWW.BENTLEY.COM
ObjectsEverything is an object
Almost everything
7/31/2019 2012 02 14 GC Principles
85/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
85 | WWW.BENTLEY.COM
Almost everythingshown so far hasbeen an object.
Including variables.
In computing, objectsare not equal.
They have Type.
dave = 8
7/31/2019 2012 02 14 GC Principles
86/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
86 | WWW.BENTLEY.COM
TypesWhat objects are
Data come in
7/31/2019 2012 02 14 GC Principles
87/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
87 | WWW.BENTLEY.COM
Data come indifferent kinds, likefreight on a train.
Each kind of freightrequires a matchingkind of freight car.
Computers aresimilarly picky, theyonly deal with whatthey have beenprepared to handle.
In some computer languages, type declares the whatof a data object.
GC uses two
7/31/2019 2012 02 14 GC Principles
88/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
88 | WWW.BENTLEY.COM
GC uses twocategories of type:
simple variabletypes and
classes = GCfeature types
l bl ( l )
7/31/2019 2012 02 14 GC Principles
89/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
89 | WWW.BENTLEY.COM
bool (Boolean) true, falseint (integer) whole numbers (0, 5, -4, 1000, -503)double real or decimal numbers (0.5, -7.8, 15.0, 158.543679789)string some text (hello world, 450, dave)
Simple variable types (selection)
Cl
7/31/2019 2012 02 14 GC Principles
90/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
90 | WWW.BENTLEY.COM
Object-oriented computing implements the idea that data and their methods arebundled in packages, as classes.
A Class is a data type that includes the methods that construct (create and initialize)instances, manipulate the data contained in them, and destruct them at end of their lifecycle.
Data contained in a class instance may be exposed as instance properties.Methods also determine how class instancesbehave, i.e. how they react to changes of their properties.
In GC classes are called features; methods are calledtechniques.
Classes
GC f ( l i )
7/31/2019 2012 02 14 GC Principles
91/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
91 | WWW.BENTLEY.COM
Point GCsfeature type pointPlaneCoordinateSystem GCs combination of point, directions, planes Direction GCs ray Line
Curve one-dimensional feature type with 0 to 1 parameterizationBSplineSurfaceSolidGenerated Feature Type user defined feature type composed from other features
GC feature types (selection)
GC d
7/31/2019 2012 02 14 GC Principles
92/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
92 | WWW.BENTLEY.COM
GC node types
GC d
7/31/2019 2012 02 14 GC Principles
93/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
93 | WWW.BENTLEY.COM
GC node types
GC d t
7/31/2019 2012 02 14 GC Principles
94/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
94 | WWW.BENTLEY.COM
now alsonon-featurenode types
GC node types
7/31/2019 2012 02 14 GC Principles
95/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
95 | WWW.BENTLEY.COM
PropertiesHow objects are
P ti
7/31/2019 2012 02 14 GC Principles
96/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
96 | WWW.BENTLEY.COM
Features have properties.
They can be simple variable types or sub-features.
The dot operator (viadotNet, Microsoft) accesses feature.properties.
Property Type
myCoordinateSystem.Name =point01 stringmyCoordinateSystem.XYPlane.X = 5.35 doublemyCoordinateSystem.XYPlane.IsReplicated = false bool(ean)
Properties
feature dot operator propertysub-feature
Properties GC features have
7/31/2019 2012 02 14 GC Principles
97/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
97 | WWW.BENTLEY.COM
Properties input properties andoutput properties.
Properties GC features have
7/31/2019 2012 02 14 GC Principles
98/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
98 | WWW.BENTLEY.COM
Properties input properties andoutput properties.
They are accessedthrough the Inputsand Outputs porteditors on a featuresnode.
Properties GC features have
7/31/2019 2012 02 14 GC Principles
99/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
99 | WWW.BENTLEY.COM
Properties input properties andoutput properties.
They are accessedthrough theInputs and Outputs porteditors on a featuresnode.
Properties GC features have
7/31/2019 2012 02 14 GC Principles
100/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
100 | WWW.BENTLEY.COM
Properties input properties andoutput properties.
They are accessedthrough theInputs and Outputs porteditors on a featuresnode.
Properties GC features have
7/31/2019 2012 02 14 GC Principles
101/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
101 | WWW.BENTLEY.COM
Properties input properties andoutput properties.
They are accessedthrough the Inputsand Outputs porteditors on a featuresnode.
Properties GC features have
7/31/2019 2012 02 14 GC Principles
102/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
102 | WWW.BENTLEY.COM
Properties input properties andoutput properties.
They are accessedthrough the Inputsand Outputs porteditors on a featuresnode.
Properties Ports Default input
7/31/2019 2012 02 14 GC Principles
103/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
103 | WWW.BENTLEY.COM
Properties Ports properties for theactive technique are
visible as ports towhich connectionscan be made.
Properties Ports Default input
7/31/2019 2012 02 14 GC Principles
104/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
104 | WWW.BENTLEY.COM
Properties Ports properties for theactive technique are
visible asports towhich connectionscan be made.
Properties Ports Default input
7/31/2019 2012 02 14 GC Principles
105/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
105 | WWW.BENTLEY.COM
Properties Ports properties for theactive technique are
visible as ports towhich connectionscan be made.
They are pinned bydefault.
Properties Ports Default input
7/31/2019 2012 02 14 GC Principles
106/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
106 | WWW.BENTLEY.COM
Properties Ports properties for theactive technique are
visible as ports towhich connectionscan be made.
They are pinned bydefault.
Additional input portsmay be pinned to thenode.
Properties Ports Default input
7/31/2019 2012 02 14 GC Principles
107/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
107 | WWW.BENTLEY.COM
Properties Ports properties for theactive technique arevisible as ports towhich connectionscan be made.
They are pinned bydefault.
Additional input portsmay be pinned to thenode.
dProperties Ports Default inputf h
7/31/2019 2012 02 14 GC Principles
108/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
108 | WWW.BENTLEY.COM
Properties Ports properties for theactive technique arevisible as ports towhich connectionscan be made.
They are pinned bydefault.
Additional input portsmay be pinned to thenode.
dProperties Ports Default output portish f i lf
7/31/2019 2012 02 14 GC Principles
109/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
109 | WWW.BENTLEY.COM
Properties Ports the feature itself.
dProperties Ports Default output port ish f i lf
7/31/2019 2012 02 14 GC Principles
110/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
110 | WWW.BENTLEY.COM
Properties Ports the feature itself. Additional outputproperties may beexposed as portspinned to the node,too.
dProperties Ports Default output port ish f i lf
7/31/2019 2012 02 14 GC Principles
111/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
111 | WWW.BENTLEY.COM
Properties Ports the feature itself. Additional outputproperties may beexposed as portspinned to the node,too.
d
7/31/2019 2012 02 14 GC Principles
112/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
112 | WWW.BENTLEY.COM
Casting and InterfacesFlexibility in Relationships
dCasting and Interfaces
7/31/2019 2012 02 14 GC Principles
113/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e d
113 | WWW.BENTLEY.COM
Object-oriented computing is very strict about membership in aclass or feature type.
However, you can sometimes stuff one data type into another slot(casting) but the type is generally a good hint as to what is required.
There are some specificcasting functions.In GC, casting works only for simple variable types, not for featuretypes.
Casting and Interfaces
d
Interfaces draw oni il ti d
7/31/2019 2012 02 14 GC Principles
114/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e
114 | WWW.BENTLEY.COM
similar properties andmethods of featuretypes to let us useone feature type inplace of another one.
This softens theclass boundaries for more flexiblemodeling options.
Interfaces areprefixed with an I.
d
Plane is like a Pointb f X YZ
7/31/2019 2012 02 14 GC Principles
115/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e
115 | WWW.BENTLEY.COM
because of X,Y,Zlocation.
CoordinateSystem islike a Point becauseof X,Y,Z location.
Plane is like a
Direction because of Planes normalvector.
Etc.
e d
7/31/2019 2012 02 14 GC Principles
116/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e
116 | WWW.BENTLEY.COM
ListsCollecting stuff, retrieving it, and leveraging its power
te dLists TypeCurly Brackets{ }
7/31/2019 2012 02 14 GC Principles
117/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e
117 | WWW.BENTLEY.COM
{ , , , , , , }
[0] [1] [2] [3] [4]
Curly Brackets{ } to define a list.
Things in a list areindexed from 0.
Indexing usesSquare Brackets [ ]
List lengthcounts
how many items arein the list, startingwith 1 (here it is 5).
te dLists Lists can have emptycontainers (null)
7/31/2019 2012 02 14 GC Principles
118/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t e
118 | WWW.BENTLEY.COM
[0] [1] [2] [3] [4]
containers (null ).
Lists can be of differenttypes.
t e dLists If wedeclare avariable called dave
7/31/2019 2012 02 14 GC Principles
119/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t
119 | WWW.BENTLEY.COM
variable called daveas a list having thecontents{A,B,C,D,E,F,G}
Then we can refer toany item of that listindividually by itsindex.
Remember to countindices from 0.
dave = {A,B,C,D,E,F,G}[0] [1] [2] [3] [4] [5] [6]
dave[4] = ?
dave [4] = E
7/31/2019 2012 02 14 GC Principles
120/147
t e dDimensions
7/31/2019 2012 02 14 GC Principles
121/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
t
121 | WWW.BENTLEY.COM
0
123
Geometry Reduction through Data
intersections
t e dMulti-Dimensional Lists
7/31/2019 2012 02 14 GC Principles
122/147
2 0 1 2 B e n
t l e y
S y s t e m s ,
I n c o r p o r a
123 | WWW.BENTLEY.COM
Lists use nested Curly Brackets { } to indicate dimensionality of their nesting(property: List.Rank).
0d a1
1d {a1,a2,a3}
2d {{a1,a2,a3},{b1,b2},{c1,c2,c3,c4}}
3d {{{a1,a2,a3,a4,a5},{b1,b2}},{{{c1,c2,c3},{d1,d2,d3,d4,d5,d6}},{{{e1},{f 1,f 2},{g1,g2,g2}},{{{h1,h2,h3,h4},{i1,i2,i3},{j1,j2}}}
N d {{{{{a,a,a},{b,b}},{c,c,c}}},{d,d,d},{{{e}}}, etc }
a t e d
7/31/2019 2012 02 14 GC Principles
123/147
2 0 1 2 B e n t l e y
S y s t e m s ,
I n c o r p o r a
124 | WWW.BENTLEY.COM
ReplicationThe Power of Lists in GenerativeComponents
a t e dREPLICATION This circles radius isdefined using a
7/31/2019 2012 02 14 GC Principles
124/147
2 0 1 2 B e n t l e y
S y s t e m s ,
I n c o r p o r a
125 | WWW.BENTLEY.COM
defined using asingle value.
That is how youdexpect it to work fromexperience.
5
a t e dREPLICATION This circles radius isdefined using alist
7/31/2019 2012 02 14 GC Principles
125/147
2 0 1 2 B e n t l e y
S y s t e m s ,
I n c o r p o r a
126 | WWW.BENTLEY.COM
defined using alist .
Lists are really wherethe power of GCkicks in.
{3,4,4.5,5}
ra t e dREPLICATION This circles radius isdefined using alist
7/31/2019 2012 02 14 GC Principles
126/147
2 0 1 2 B e n t l e y
S y s t e m s ,
I n c o r p o r a
127 | WWW.BENTLEY.COM
defined using alist .
Lists are really wherethe power of GCkicks in.
{3,4,4.5,5}
r a t e dREPLICATION This circles radius isdefined using alist
7/31/2019 2012 02 14 GC Principles
127/147
2 0 1 2 B e n t l e y
S y s t e m s ,
I n c o r p o r
128 | WWW.BENTLEY.COM
defined using alist .
Lists are really wherethe power of GCkicks in.
{3,4,4.5,5}
r a t e d
7/31/2019 2012 02 14 GC Principles
128/147
2 0 1 2 B e n t l e
y S y s t e m s ,
I n c o r p o r
129 | WWW.BENTLEY.COM
(repl.)=
replicatable
r a t e d
7/31/2019 2012 02 14 GC Principles
129/147
2 0 1 2 B e n t l e
y S y s t e m s ,
I n c o r p o r
130 | WWW.BENTLEY.COM
2
2
XTranslation: double (repl.)
YTranslation: double (repl.)
r a t e d
7/31/2019 2012 02 14 GC Principles
130/147
2 0 1 2 B e n t l e
y S y s t e m s ,
I n c o r p o
131 | WWW.BENTLEY.COM
{2,4,6,8}
2
XTranslation: double (repl.)
YTranslation: double (repl.)
[0] [1] [2] [3] [0] [1] [2] [3]
r a t e d
7/31/2019 2012 02 14 GC Principles
131/147
2 0 1 2 B e n t l e y
S y s t e m s ,
I n c o r p o
132 | WWW.BENTLEY.COM
{2,4,6,8}
{2,4,6,8}
XTranslation: double (repl.)
YTranslation: double (repl.)
[0] [1] [2] [3]
[0] [1] [2] [3]
[0] [1] [2] [3]
o r a
t e d
7/31/2019 2012 02 14 GC Principles
132/147
2 0 1 2 B e n t l e y
S y s t e m s ,
I n c o r p o
133 | WWW.BENTLEY.COM
{2,4,6,8,10,12}
{2,4,6,8}
XTranslation: double (repl.)
YTranslation: double (repl.)
[0] [1] [2] [3] [4] [5] [0] [1] [2] [3]
[0] [1] [2] [3]
ReplicationOption.CorrespondingIndexingToggle Replication
o r a
t e d
7/31/2019 2012 02 14 GC Principles
133/147
2 0 1 2 B e n t l e y
S y s t e m s ,
I n c o r p o
134 | WWW.BENTLEY.COM
{2,4,6,8,10,12}
{2,4,6,8}
XTranslation: double (repl.)
YTranslation: double (repl.)
[0] [1] [2] [3] [4] [5] [0][0] [1][0] [2][0] [3][0] [4][0] [5][0]
[0] [1] [2] [3]
ReplicationOption.AllCombinations
[0][1] [1][1] [2][1] [3][1] [4][1] [5][1]
[0][2] [1][2] [2][2] [3][2] [4][2] [5][2]
[0][3] [1][3] [2][3] [3][3] [4][3] [5][3]
Toggle Replication
o r a
t e d
7/31/2019 2012 02 14 GC Principles
134/147
2 0 1 2 B e n t l e y
S y s t e m s ,
I n c o r p o
135 | WWW.BENTLEY.COM
Observations: As in the geometry itself, there is dimensionality in the data, too.
1 singleton Point 0d
1 repl. parameter 1d2 repl. parameters AND CorrespondingIndexing 1d
2 repl. parameters AND AllCombinations 2d
3 repl. parameters AND AllCombinations 3dn repl. parameters AND AllCombinations nd
o r a
t e d
7/31/2019 2012 02 14 GC Principles
135/147
2 0 1 2 B e n t l e y
S y s t e m s ,
I n c o r p o
136 | WWW.BENTLEY.COM
Observation:There is exponential growth in created features based on 10:
1 singleton Point 0d 1
1 repl. parameter 1d 102 repl. parameters AND CorrespondingIndexing 1d 10
2 repl. parameters AND AllCombinations 2d 100
3 repl. parameters AND AllCombinations 3d 10004 repl. parameters AND AllCombinations 4d 10000
n repl. parameters AND AllCombinations nd 10n
o r a
t e d
7/31/2019 2012 02 14 GC Principles
136/147
2 0 1 2 B e n t l e y
S y s t e m s ,
I n c o r p
137 | WWW.BENTLEY.COM
Observation:There is exponential growth in created features based on 30:
1 singleton Point 0d 1
1 repl. parameter 1d 302 repl. parameters AND CorrespondingIndexing 1d 30
2 repl. parameters AND AllCombinations 2d 900
3 repl. parameters AND AllCombinations 3d 270004 repl. parameters AND AllCombinations 4d 810000
n repl. parameters AND AllCombinations nd 30n
p o r a
t e d
7/31/2019 2012 02 14 GC Principles
137/147
2 0 1 2 B e n t l e y
S y s t e m s ,
I n c o r p
138 | WWW.BENTLEY.COM
SpaceEuclidean Space, non-Euclidean Space,Coordinate Space (Cartesian, Cylindrical, Spherical),Parametric Space,
p o r a
t e dCartesian space
U l
7/31/2019 2012 02 14 GC Principles
138/147
2 0 1 2 B e n t l e y
S y s t e m s ,
I n c o r p
139 | WWW.BENTLEY.COM
Unless you are aquantum physicist or a theoreticalmathematician,3dimensionalCartesian space is all
you will ever need(almost).Descartes added theorthogonal coordinate system tothe principledEuclidian space.
p o r a
t e dIn Euclidian space
( i i ll d fi d i
7/31/2019 2012 02 14 GC Principles
139/147
2 0 1 2 B e n t l e y
S y s t e m s ,
I n c o r p
140 | WWW.BENTLEY.COM
(originally defined in2d space, i.e. on aplane, eg. a sheet of paper) there arestraight lines that canbe parallel.
In non-Euclidianspace (eg.thesurface of a sphere),Euclidian rules do notapply, for example,there are no straightlines (but arcs,circles, curves).
rp o r a
t e dOn the surface,
E lidi (t ) d
7/31/2019 2012 02 14 GC Principles
140/147
2 0 1 2 B e n t l e y
S y s t e m s ,
I n c o r p
141 | WWW.BENTLEY.COM
Euclidian (top) andnon-Euclidian(bottom)2d spaces.
In 3d, these are
curved surfaces,which wouldpeacefully coexist or intersect with anystraight lines throughspace
r p o r a
t e d
Parameter SpaceThi i b dd d
7/31/2019 2012 02 14 GC Principles
141/147
2 0 1 2 B e n t
l e y
S y s t e m s ,
I n c o rp
142 | WWW.BENTLEY.COM
Line.StartPointT = 0.0
Line.EndPointT = 1.0
T = 0.35
This is anembedded space.From within the linethe universe onlyextends as far as theend of the line.
This space is definedas 1 unit (of self),regardless of itssize externally.The parameter is theT value
r p o r a
t e d
While on a Line theT parameter space is
7/31/2019 2012 02 14 GC Principles
142/147
2 0 1 2 B e n t
l e y
S y s t e m s ,
I n c o rp
143 | WWW.BENTLEY.COM
T = 0.25 T = 0.5
T = 0.75
T = 0.0
T = 1.0
T-parameter space ishomogenous, this isnot the case for BSplineCurves.T = 0.5 is notnecessarily the
geometric centre, it isthe parametric centre.Parametric distancesbetween controlpoints are equal, if they are equallyweighted
r p o r a
t e dThe analog is true for
surfaces with the 2d
7/31/2019 2012 02 14 GC Principles
143/147
2 0 1 2 B e n t
l e y
S y s t e m s ,
I n c o r
144 | WWW.BENTLEY.COM
surfaces, with the 2d parameter space being a 1 by 1square.Instead of theCartesian 3d XYZ
coordinates they are2d UV coordinates.
r p o r a
t e d
A UV coordinate tuple{0 2 0 7} can be
7/31/2019 2012 02 14 GC Principles
144/147
2 0 1 2 B e n t
l e y
S y s t e m s ,
I n c o
145 | WWW.BENTLEY.COM
UV = {0.2,0.7}XYZ = {70,30,3.969}
{0.2, 0.7} can besampled into an XYZcoordinate triplet{x,y,z}, for example byplacing aPoint.ByParametersO
nSurface().
r p o r a
t e d
One way to thinkabout how UV
7/31/2019 2012 02 14 GC Principles
145/147
2 0 1 2 B e n t
l e y
S y s t e m s ,
I n c o
146 | WWW.BENTLEY.COM
UV = {0.2,0.7}XYZ = {70,30,3.969}
about how UVparametric spacedeals with distortion isto draw a grid on aballoon and then blowit up & squeeze it
about a bit. The gridchanges shape, butthe relationships(topology) stay thesame.
o r p o r a
t e dThere are also update
methods using
7/31/2019 2012 02 14 GC Principles
146/147
2 0 1 2 B e n t
l e y
S y s t e m s ,
I n c o
147 | WWW.BENTLEY.COM
methods usingcylindrical or sphericalcoordinate systems.These are handy for cylindrical and sphericalthings, but also for
survey data.
o r p o r a
t e d
7/31/2019 2012 02 14 GC Principles
147/147
2 0 1 2 B e n t
l e y
S y s t e m s ,
I n c o
The End