26.03.2013 Views

Tekla OpenAPI: Drawing tools and plug This track will focus on the ...

Tekla OpenAPI: Drawing tools and plug This track will focus on the ...

Tekla OpenAPI: Drawing tools and plug This track will focus on the ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<str<strong>on</strong>g>Tekla</str<strong>on</strong>g> <str<strong>on</strong>g>OpenAPI</str<strong>on</strong>g>: : <str<strong>on</strong>g>Drawing</str<strong>on</strong>g> <str<strong>on</strong>g>tools</str<strong>on</strong>g> <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>plug</str<strong>on</strong>g> ins<br />

<str<strong>on</strong>g>This</str<strong>on</strong>g> <str<strong>on</strong>g>track</str<strong>on</strong>g> <str<strong>on</strong>g>will</str<strong>on</strong>g> <str<strong>on</strong>g>focus</str<strong>on</strong>g> <strong>on</strong> <strong>the</strong> different uses of <strong>the</strong> <str<strong>on</strong>g>Drawing</str<strong>on</strong>g> API.<br />

First <strong>the</strong>re <str<strong>on</strong>g>will</str<strong>on</strong>g> be a discussi<strong>on</strong> of what drawing <str<strong>on</strong>g>plug</str<strong>on</strong>g> <str<strong>on</strong>g>plug</str<strong>on</strong>g>#ins are<br />

<str<strong>on</strong>g>and</str<strong>on</strong>g> how <strong>the</strong>y work. Next, this sessi<strong>on</strong> <str<strong>on</strong>g>will</str<strong>on</strong>g> discuss several<br />

new features available in <strong>the</strong> API <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> benefits it brings to<br />

<strong>the</strong> end user. Lastly, it <str<strong>on</strong>g>will</str<strong>on</strong>g> look at several real world examples<br />

of drawing <str<strong>on</strong>g>plug</str<strong>on</strong>g>#in in implementati<strong>on</strong>s.<br />

2012 User Meeting / Charles Pool 1


Follow us <strong>on</strong><br />

@<str<strong>on</strong>g>Tekla</str<strong>on</strong>g> / #UM12<br />

2012 User Meeting / Charles Pool<br />

2


Safe Harbor Statement <str<strong>on</strong>g>and</str<strong>on</strong>g> Disclaimer<br />

The informati<strong>on</strong> presented regarding future product features<br />

<str<strong>on</strong>g>and</str<strong>on</strong>g> functi<strong>on</strong>alities is for informati<strong>on</strong>al purposes <strong>on</strong>ly <str<strong>on</strong>g>and</str<strong>on</strong>g><br />

should not be relied up<strong>on</strong> in making a purchasing decisi<strong>on</strong>.<br />

<str<strong>on</strong>g>Tekla</str<strong>on</strong>g> is under no obligati<strong>on</strong> to deliver any future products,<br />

features, or functi<strong>on</strong>s within any specified time frame, if at<br />

all. Release dates <str<strong>on</strong>g>and</str<strong>on</strong>g> c<strong>on</strong>tent are subject to change at<br />

<str<strong>on</strong>g>Tekla</str<strong>on</strong>g>’s sole discreti<strong>on</strong>.<br />

2012 User Meeting / Charles Pool<br />

3


Presenter: Charles Pool<br />

25% Work for <str<strong>on</strong>g>Tekla</str<strong>on</strong>g> Finl<str<strong>on</strong>g>and</str<strong>on</strong>g><br />

75% Work for <str<strong>on</strong>g>Tekla</str<strong>on</strong>g> USA<br />

• Bachelors in Architectural Engineering<br />

• Soluti<strong>on</strong>s Engineer (6 years at <str<strong>on</strong>g>Tekla</str<strong>on</strong>g>)<br />

• Used <str<strong>on</strong>g>Tekla</str<strong>on</strong>g> Structures (2 years before)<br />

Projects<br />

• People Tracker • Debug Tools<br />

• Comp<strong>on</strong>ent Manger<br />

• Pipe NC Data<br />

• Beam Marks<br />

• Bolt Dimensi<strong>on</strong> Tool<br />

• Dimensi<strong>on</strong> Secti<strong>on</strong> Rebar<br />

• <str<strong>on</strong>g>Drawing</str<strong>on</strong>g> Block<br />

• Cover Dimensi<strong>on</strong>s<br />

• Debug Tools<br />

• Compare Objects<br />

• Break Lines<br />

• Match Lines<br />

• <str<strong>on</strong>g>Drawing</str<strong>on</strong>g> Cl<strong>on</strong>ing Study<br />

• Model Checker<br />

• Offshore Suite<br />

• <str<strong>on</strong>g>Drawing</str<strong>on</strong>g> Roadmap <str<strong>on</strong>g>and</str<strong>on</strong>g> Visi<strong>on</strong> assist assist2012 User Meeting / Charles Pool<br />

4


User Meeting 2012<br />

API Sessi<strong>on</strong>s # <str<strong>on</strong>g>Drawing</str<strong>on</strong>g>s


Agenda<br />

What is <str<strong>on</strong>g>Drawing</str<strong>on</strong>g> API, Why do we care?<br />

What are some key things I need to underst<str<strong>on</strong>g>and</str<strong>on</strong>g> about<br />

<str<strong>on</strong>g>Tekla</str<strong>on</strong>g> drawings to use this toolkit?<br />

Getting Started, where to go<br />

Different applicati<strong>on</strong>s of <strong>the</strong> API<br />

Examples of <str<strong>on</strong>g>tools</str<strong>on</strong>g> already created<br />

Feature Highlights<br />

<str<strong>on</strong>g>Drawing</str<strong>on</strong>g> <str<strong>on</strong>g>plug</str<strong>on</strong>g>ins in depth<br />

2012 User Meeting / Charles Pool 6


Why do we care?<br />

We are here to study <str<strong>on</strong>g>tools</str<strong>on</strong>g> that can help us be:<br />

More productive<br />

Exp<str<strong>on</strong>g>and</str<strong>on</strong>g> our knowledge can capabilities<br />

Do things we could not easily or at all do before<br />

Customize appearance<br />

Ultimately save m<strong>on</strong>ey<br />

2012 User Meeting / Charles Pool<br />

7


What is <strong>the</strong> <str<strong>on</strong>g>Drawing</str<strong>on</strong>g> API<br />

Introducti<strong>on</strong><br />

2012 User Meeting / Charles Pool 8


What is <strong>the</strong> <str<strong>on</strong>g>Tekla</str<strong>on</strong>g> Open API?<br />

API = Applicati<strong>on</strong> Programming Interface.<br />

Customizati<strong>on</strong> of <str<strong>on</strong>g>Tekla</str<strong>on</strong>g> Structures without having to<br />

change <strong>the</strong> core.<br />

Utilizing Industry st<str<strong>on</strong>g>and</str<strong>on</strong>g>ard Microsoft .NET technology.<br />

Creates a competitive advantage at lower cost.<br />

2012 User Meeting / Charles Pool<br />

9


<str<strong>on</strong>g>Drawing</str<strong>on</strong>g> API<br />

Toolkit you need to c<strong>on</strong>nect to <str<strong>on</strong>g>Tekla</str<strong>on</strong>g> drawings<br />

– Extend existing functi<strong>on</strong>ality<br />

– Automate tasks<br />

– Create new functi<strong>on</strong>ality<br />

– Create new drawing type objects<br />

– Pers<strong>on</strong>alize <strong>the</strong> presentati<strong>on</strong> of model graphics<br />

Benefits<br />

– Automate tedious <str<strong>on</strong>g>and</str<strong>on</strong>g> unpleasant tasks<br />

– Change <strong>the</strong> look <str<strong>on</strong>g>and</str<strong>on</strong>g> c<strong>on</strong>trol over parts <str<strong>on</strong>g>and</str<strong>on</strong>g> annotati<strong>on</strong>s<br />

– Ultimately save c<strong>on</strong>siderable time <str<strong>on</strong>g>and</str<strong>on</strong>g> m<strong>on</strong>ey<br />

2012 User Meeting / Charles Pool 10


Comm<strong>on</strong> Use Cases<br />

<str<strong>on</strong>g>Drawing</str<strong>on</strong>g> API<br />

– Access <strong>the</strong> drawing list.<br />

– Create, modify <str<strong>on</strong>g>and</str<strong>on</strong>g> delete.<br />

– GA drawings <str<strong>on</strong>g>and</str<strong>on</strong>g> views in any drawing.<br />

– Dimensi<strong>on</strong>s, text <str<strong>on</strong>g>and</str<strong>on</strong>g> o<strong>the</strong>r basic objects.<br />

– Interact with <strong>the</strong> user.<br />

– Get currently selected drawing objects.<br />

– Prompt user to pick objects <str<strong>on</strong>g>and</str<strong>on</strong>g> locati<strong>on</strong>s.<br />

– Select <str<strong>on</strong>g>and</str<strong>on</strong>g> highlight objects for <strong>the</strong> user.<br />

– Access model objects from <strong>the</strong> drawing.<br />

– Select <strong>the</strong> parts found in a drawing in <strong>the</strong> model.<br />

2012 User Meeting / Charles Pool<br />

11


Getting Started<br />

Underst<str<strong>on</strong>g>and</str<strong>on</strong>g>ing <strong>the</strong> different types of<br />

applicati<strong>on</strong>s using <strong>the</strong> <str<strong>on</strong>g>Drawing</str<strong>on</strong>g> API<br />

2012 User Meeting / Charles Pool 12


How do I Get Started<br />

Learn some C# (book example?)<br />

Download Microsoft Visual Studio C# Express (free)<br />

Download “Getting started material from extranet”<br />

Start reading documents, getting familiar with c<strong>on</strong>tent<br />

Review examples <str<strong>on</strong>g>and</str<strong>on</strong>g> compile <strong>the</strong>m yourself<br />

Start experimenting <strong>on</strong> your own going through<br />

<str<strong>on</strong>g>Tekla</str<strong>on</strong>g>.Structures.Model <str<strong>on</strong>g>and</str<strong>on</strong>g> <str<strong>on</strong>g>Tekla</str<strong>on</strong>g>.Structures.<str<strong>on</strong>g>Drawing</str<strong>on</strong>g><br />

namespaces.<br />

Start small at first.<br />

2012 User Meeting / Charles Pool 13


What do you need?<br />

<str<strong>on</strong>g>Tekla</str<strong>on</strong>g> Structures<br />

Windows XP, Vista, or 7<br />

.NET Framework 4.0<br />

Visual Studio 2010 Express (Free)<br />

Pick a Language (Suggest C#)<br />

Tutorial Material<br />

– Videos, Youtube<br />

– Books<br />

Download Startup Package from<br />

extranet.<br />

– Product>Open API<br />

2012 User Meeting / Charles Pool<br />

14


Where is <strong>the</strong> API?<br />

Included inside your <str<strong>on</strong>g>Tekla</str<strong>on</strong>g> Structures Installati<strong>on</strong><br />

Tools>Macros<br />

XS_MACRO_DIRECTORY<br />

C:\ProgramData\<str<strong>on</strong>g>Tekla</str<strong>on</strong>g><br />

Structures\18.0\envir<strong>on</strong>ments<br />

\usimp\us_comm<strong>on</strong>\macros\<br />

modeling or<br />

drawings<br />

C:\Program Program Files Files\<str<strong>on</strong>g>Tekla</str<strong>on</strong>g> Structures\<br />

18.0\nt\bin\<str<strong>on</strong>g>plug</str<strong>on</strong>g>ins<br />

• <str<strong>on</strong>g>Tekla</str<strong>on</strong>g>.Structures.dll<br />

• <str<strong>on</strong>g>Tekla</str<strong>on</strong>g>.Structures.Model.dll<br />

• <str<strong>on</strong>g>Tekla</str<strong>on</strong>g>.Structures.<str<strong>on</strong>g>Drawing</str<strong>on</strong>g>.dll<br />

• <str<strong>on</strong>g>Tekla</str<strong>on</strong>g>.Structures.Dialog<br />

• <str<strong>on</strong>g>Tekla</str<strong>on</strong>g>.Structures.Datatype<br />

• <str<strong>on</strong>g>Tekla</str<strong>on</strong>g>.Structures.Plugins<br />

• <str<strong>on</strong>g>Tekla</str<strong>on</strong>g>.Structures.Catalogs<br />

• <str<strong>on</strong>g>Tekla</str<strong>on</strong>g>.Structures.Analysis<br />

2012 User Meeting / Charles Pool<br />

15


Where to go to get Help<br />

<str<strong>on</strong>g>Tekla</str<strong>on</strong>g> Extranet Discussi<strong>on</strong> Forums is <strong>the</strong> primary channel<br />

2012 User Meeting / Charles Pool<br />

16


<str<strong>on</strong>g>Tekla</str<strong>on</strong>g> Extensi<strong>on</strong>s<br />

Download, Rate, <str<strong>on</strong>g>and</str<strong>on</strong>g> Comment <strong>on</strong> <strong>the</strong> <str<strong>on</strong>g>Tekla</str<strong>on</strong>g> Extranet<br />

2012 User Meeting / Charles Pool<br />

17


Implementati<strong>on</strong> Categories<br />

Create, Modify, Delete,<br />

Extract Informati<strong>on</strong>,<br />

Set User Attributes,<br />

Navigate, Call Macros.<br />

(*.cs)<br />

Recorded scripts calling comm<str<strong>on</strong>g>and</str<strong>on</strong>g>s in <strong>the</strong><br />

<str<strong>on</strong>g>Tekla</str<strong>on</strong>g> Structures interface for Model <str<strong>on</strong>g>and</str<strong>on</strong>g><br />

<str<strong>on</strong>g>Drawing</str<strong>on</strong>g>s. (C#, API Library can be used here)<br />

(*.exe)<br />

Tools that c<strong>on</strong>nect <str<strong>on</strong>g>and</str<strong>on</strong>g> interact with <str<strong>on</strong>g>Tekla</str<strong>on</strong>g> Structures<br />

(*.dll)<br />

Parametric, run inside <str<strong>on</strong>g>Tekla</str<strong>on</strong>g> Structures, fast.<br />

2012 User Meeting / Charles Pool<br />

18


<str<strong>on</strong>g>Drawing</str<strong>on</strong>g> Macros<br />

2012 User Meeting / Charles Pool<br />

19


Macros : What are <strong>the</strong>y<br />

Scripts recorded from <str<strong>on</strong>g>Tekla</str<strong>on</strong>g> directly, can automate some<br />

things easily<br />

Can run directly un#compiled compiled c# code<br />

Independent of versi<strong>on</strong>s<br />

Easy to create<br />

Low maintenance<br />

Not good for User Interfaces, but great for smaller <str<strong>on</strong>g>tools</str<strong>on</strong>g><br />

that do not need dialogs<br />

Freeze <str<strong>on</strong>g>Tekla</str<strong>on</strong>g> Structures until finished running<br />

Sample template you can now download under UM 2012<br />

2012 User Meeting / Charles Pool 20


Recorded Script<br />

2012 User Meeting / Charles Pool 21


Easy Template<br />

C<strong>on</strong>sole applicati<strong>on</strong> – project template<br />

Single class with all logic in <strong>on</strong>e file<br />

Script Class<br />

– Run method – Calls logic class when running inside <str<strong>on</strong>g>Tekla</str<strong>on</strong>g>, can<br />

<strong>the</strong>n utilize akit calls directly<br />

– Main method – Calls logic class when running through debugger<br />

or as an executable c<strong>on</strong>sole applicati<strong>on</strong><br />

Main logic class<br />

– C<strong>on</strong>structor – Class where you add your code to run<br />

To Run, Copy *.cs file to macros/drawings folder, <strong>the</strong>n re re#<br />

launch Macro dialog, click <strong>on</strong> macro in list <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong>n press<br />

“Run”<br />

2012 User Meeting / Charles Pool<br />

22


Template code<br />

2012 User Meeting / Charles Pool<br />

23


Sample Code In Macro – Reopen drawing<br />

2012 User Meeting / Charles Pool 24


Examples of Macros<br />

Remove Change Clouds*<br />

Re#Open Open drawing, forces templates to update*<br />

Start Point#Checker, Checker, Creates symbols at <strong>the</strong> physical<br />

start end of a model beam into <strong>the</strong> drawing*<br />

Top in Form Symbol # Creates symbols <strong>on</strong> <strong>the</strong> face that is<br />

set to <strong>the</strong> ‘up in form’ side of <strong>the</strong> column or o<strong>the</strong>r type<br />

c<strong>on</strong>crete part<br />

Simple, modular dimensi<strong>on</strong>ing <str<strong>on</strong>g>tools</str<strong>on</strong>g><br />

– Dimensi<strong>on</strong> str<str<strong>on</strong>g>and</str<strong>on</strong>g> or rebar<br />

– Dimensi<strong>on</strong> bolt group<br />

2012 User Meeting / Charles Pool 25


Bolt Dimensi<strong>on</strong> Tool<br />

2012 User Meeting / Charles Pool<br />

26


<str<strong>on</strong>g>Drawing</str<strong>on</strong>g> Applicati<strong>on</strong>s<br />

2012 User Meeting / Charles Pool<br />

27


<str<strong>on</strong>g>Drawing</str<strong>on</strong>g> Applicati<strong>on</strong>s : What are <strong>the</strong>y<br />

Executable programs that run outside <str<strong>on</strong>g>Tekla</str<strong>on</strong>g><br />

Structures <str<strong>on</strong>g>and</str<strong>on</strong>g> communicate back <str<strong>on</strong>g>and</str<strong>on</strong>g> forthbetween<br />

<strong>the</strong> model <str<strong>on</strong>g>and</str<strong>on</strong>g> drawings.<br />

Slower than <str<strong>on</strong>g>plug</str<strong>on</strong>g>ins, run asynchr<strong>on</strong>ously with <str<strong>on</strong>g>Tekla</str<strong>on</strong>g><br />

Ideal for larger <str<strong>on</strong>g>and</str<strong>on</strong>g> more complex applicati<strong>on</strong>s that<br />

need real user interfaces<br />

Unlimited in use cases <str<strong>on</strong>g>and</str<strong>on</strong>g> possibilities<br />

Can call ‘helper’ <str<strong>on</strong>g>plug</str<strong>on</strong>g>ins to extract data from <strong>the</strong><br />

drawing or do smaller tasks<br />

2012 User Meeting / Charles Pool 28


Anchor Rod Tools<br />

C<strong>on</strong>necti<strong>on</strong> Code<br />

2012 User Meeting / Charles Pool<br />

29


Beam Mark<br />

2012 User Meeting / Charles Pool<br />

30


Detail <str<strong>on</strong>g>Drawing</str<strong>on</strong>g> Manager<br />

Originated from <strong>the</strong><br />

request for st<str<strong>on</strong>g>and</str<strong>on</strong>g>ard<br />

details need.<br />

Similar to blocks, but<br />

this tool adds real<br />

native <str<strong>on</strong>g>Tekla</str<strong>on</strong>g> lines,<br />

hatching, <str<strong>on</strong>g>and</str<strong>on</strong>g> o<strong>the</strong>r<br />

2d objects <strong>on</strong> top of<br />

model graphics<br />

Intelligence to model<br />

objects is retained<br />

2012 User Meeting / Charles Pool<br />

31


<str<strong>on</strong>g>Drawing</str<strong>on</strong>g> Plugins<br />

2012 User Meeting / Charles Pool<br />

32


<str<strong>on</strong>g>Drawing</str<strong>on</strong>g> Plugins : What are <strong>the</strong>y<br />

Run inside <str<strong>on</strong>g>Tekla</str<strong>on</strong>g> Structures drawing envir<strong>on</strong>ment<br />

Fast<br />

C<strong>on</strong>nected to <strong>the</strong>ir input always<br />

Get re#run run or updated automatically when changes<br />

occur, several scenarios for update available<br />

Easy way to implement your own custom drawing<br />

entities (E.g. Custom mark, custom dimensi<strong>on</strong>)<br />

2012 User Meeting / Charles Pool 33


Dimensi<strong>on</strong>ing Tool<br />

New to 18.0 as Extensi<strong>on</strong><br />

Hybrid system<br />

– Plugin <strong>on</strong> <str<strong>on</strong>g>Drawing</str<strong>on</strong>g> for updating<br />

– Applicati<strong>on</strong> that does work<br />

Powerful result, highly<br />

customizable<br />

2012 User Meeting / Charles Pool<br />

34


Cover Dimensi<strong>on</strong>s<br />

Creates dimensi<strong>on</strong> from<br />

outer edge of c<strong>on</strong>crete to<br />

edge of reinforcement<br />

Dimensi<strong>on</strong> points are<br />

managed by <str<strong>on</strong>g>plug</str<strong>on</strong>g>in <str<strong>on</strong>g>and</str<strong>on</strong>g><br />

update always based <strong>on</strong><br />

part changing in model<br />

2012 User Meeting / Charles Pool<br />

35


<str<strong>on</strong>g>Drawing</str<strong>on</strong>g> Match Line<br />

Creates thick, custom<br />

polyline that is very<br />

easy to see <strong>on</strong><br />

drawings<br />

Illustrates where<br />

drawings get isolated<br />

Multiple lines offset<br />

toge<strong>the</strong>r, but grouped<br />

with its own user<br />

interface<br />

2012 User Meeting / Charles Pool<br />

36


Advanced Grid Labels<br />

Replace <strong>the</strong><br />

graphics for normal<br />

grid labels<br />

Allows for some<br />

fixed type symbols<br />

with f<strong>on</strong>t <str<strong>on</strong>g>and</str<strong>on</strong>g> colors<br />

customizable<br />

2012 User Meeting / Charles Pool<br />

37


<str<strong>on</strong>g>Drawing</str<strong>on</strong>g> API<br />

Key C<strong>on</strong>cepts<br />

2012 User Meeting / Charles Pool 38


<str<strong>on</strong>g>Drawing</str<strong>on</strong>g> Architecture (Typical GA <str<strong>on</strong>g>Drawing</str<strong>on</strong>g>)<br />

Y<br />

Y<br />

X<br />

X<br />

Y<br />

Y<br />

X<br />

X<br />

2012 User Meeting / Charles Pool<br />

39


<str<strong>on</strong>g>Drawing</str<strong>on</strong>g> objects<br />

<str<strong>on</strong>g>Drawing</str<strong>on</strong>g> objects are not <strong>the</strong> same as model objects<br />

Presentati<strong>on</strong> object that represents <strong>the</strong> model object in<br />

<strong>the</strong> drawing interface. E.g. Color, accuracy, symbol<br />

Can be many different types of objects including text,<br />

lines, marks<br />

Can get model object identifier for <strong>the</strong> model part that <strong>the</strong><br />

drawing part represents<br />

You can not change <strong>the</strong> Model object when a drawing is<br />

open, , but you can get informati<strong>on</strong> from it<br />

2012 User Meeting / Charles Pool<br />

40


Model API versus <strong>the</strong> <str<strong>on</strong>g>Drawing</str<strong>on</strong>g>s<br />

<str<strong>on</strong>g>Drawing</str<strong>on</strong>g>s are just presentati<strong>on</strong>s of <strong>the</strong> model objects<br />

<str<strong>on</strong>g>Drawing</str<strong>on</strong>g> part settings<br />

Model object<br />

2012 User Meeting / Charles Pool 41


Dimensi<strong>on</strong> Architecture<br />

Dimensi<strong>on</strong><br />

Points<br />

2012 User Meeting / Charles Pool<br />

42


Dimensi<strong>on</strong> Directi<strong>on</strong> Vectors<br />

Sets <strong>the</strong> up positi<strong>on</strong> relative to <strong>the</strong> directi<strong>on</strong> that is to be<br />

dimensi<strong>on</strong>ed, always *90 from dimensi<strong>on</strong> line<br />

– Horiz<strong>on</strong>tal, Vertical, Skew dimensi<strong>on</strong><br />

– Sets <strong>the</strong> directi<strong>on</strong> to where dimensi<strong>on</strong> is placed<br />

– Left, Right, Up, Down from object it is dimensi<strong>on</strong>ing<br />

– Set using a Vector (x value, y value, z value)<br />

– Relative to DisplayCoordinateSystem<br />

2012 User Meeting / Charles Pool<br />

43


Transforming Points to View Local<br />

2012 User Meeting / Charles Pool<br />

44


Show from coordinate system to local<br />

Global System<br />

Origin<br />

– (640540.24,554707.56,<br />

5687.32)<br />

Local System<br />

Origin<br />

– (0,0,0)<br />

2012 User Meeting / Charles Pool<br />

45


Feature Highlight<br />

Some comm<strong>on</strong> features of drawing API<br />

highlighted<br />

2012 User Meeting / Charles Pool 46


<str<strong>on</strong>g>Drawing</str<strong>on</strong>g> H<str<strong>on</strong>g>and</str<strong>on</strong>g>ler<br />

new <str<strong>on</strong>g>Drawing</str<strong>on</strong>g>H<str<strong>on</strong>g>and</str<strong>on</strong>g>ler();<br />

Check if a drawing is currently open<br />

– GetActive<str<strong>on</strong>g>Drawing</str<strong>on</strong>g>() check if null or <str<strong>on</strong>g>Drawing</str<strong>on</strong>g><br />

Gets Picker for getting input from user<br />

Closes, Saves, <str<strong>on</strong>g>and</str<strong>on</strong>g> Opens drawings<br />

– Can open drawing hidden in background<br />

– SetActive<str<strong>on</strong>g>Drawing</str<strong>on</strong>g>(my<str<strong>on</strong>g>Drawing</str<strong>on</strong>g>, false);<br />

Get drawings from drawing list<br />

2012 User Meeting / Charles Pool<br />

47


Example: Getting <str<strong>on</strong>g>Drawing</str<strong>on</strong>g> Views<br />

Two Methods for Getting Views<br />

2012 User Meeting / Charles Pool<br />

48


<str<strong>on</strong>g>Drawing</str<strong>on</strong>g>.UI Picker<br />

How to get a drawing object from <strong>the</strong> user<br />

2012 User Meeting / Charles Pool<br />

49


Example: Open a drawing in background<br />

It is possible to open drawing hidden to user in order to<br />

add views or change objects in <strong>the</strong> views if needed.<br />

2012 User Meeting / Charles Pool<br />

50


Example: Check if a drawing is open<br />

2012 User Meeting / Charles Pool<br />

51


Example: Get certain drawing<br />

The <str<strong>on</strong>g>Drawing</str<strong>on</strong>g>H<str<strong>on</strong>g>and</str<strong>on</strong>g>ler is also useful for getting drawings<br />

2012 User Meeting / Charles Pool<br />

52


Get model object from drawing object<br />

<str<strong>on</strong>g>Drawing</str<strong>on</strong>g> Parts have a method to get <strong>the</strong> model object<br />

identifier<br />

2012 User Meeting / Charles Pool<br />

53


StraightDimensi<strong>on</strong>SetH<str<strong>on</strong>g>and</str<strong>on</strong>g>ler<br />

new StraightDimensi<strong>on</strong>SetH<str<strong>on</strong>g>and</str<strong>on</strong>g>ler();<br />

Easiest way to create dimensi<strong>on</strong> ‘set’<br />

Set is multiple dimensi<strong>on</strong>s grouped toge<strong>the</strong>r<br />

CreateDimensi<strong>on</strong>Set(View, Points, Directi<strong>on</strong>, Offset);<br />

2012 User Meeting / Charles Pool<br />

54


Example: Create dimensi<strong>on</strong> to bolts<br />

2012 User Meeting / Charles Pool<br />

55


Inserting Text into <str<strong>on</strong>g>Drawing</str<strong>on</strong>g><br />

2012 User Meeting / Charles Pool 56


Inserting Symbols into <str<strong>on</strong>g>Drawing</str<strong>on</strong>g><br />

2012 User Meeting / Charles Pool 57


Create new Blank GA drawing<br />

2012 User Meeting / Charles Pool 58


Marks<br />

Generic mark base<br />

3 Types of placement<br />

Associative Note UI shown to user<br />

Getting existing marks<br />

Getting drawing part from mark<br />

2012 User Meeting / Charles Pool 59


Insert Mark into <str<strong>on</strong>g>Drawing</str<strong>on</strong>g><br />

2012 User Meeting / Charles Pool<br />

60


<str<strong>on</strong>g>Drawing</str<strong>on</strong>g> API<br />

Deeper look at <str<strong>on</strong>g>Drawing</str<strong>on</strong>g> Plugins<br />

(sample available <strong>on</strong> extranet)<br />

2012 User Meeting / Charles Pool 61


How a Plugin is Structured<br />

New Plug#in/c<strong>on</strong>necti<strong>on</strong> in/c<strong>on</strong>necti<strong>on</strong> started<br />

– C<strong>on</strong>structor method runs<br />

– Input prompted from user<br />

– Applied values taken from dialog<br />

– Plug#in in Run() when input complete<br />

– Both <strong>the</strong> StructuresData <str<strong>on</strong>g>and</str<strong>on</strong>g> <strong>the</strong> Input are<br />

stored to <strong>the</strong> model database<br />

User<br />

Input<br />

Plug Plug#in<br />

StructuresData<br />

Input<br />

UI (Dialog)<br />

StructuresData<br />

2012 User Meeting / Charles Pool 62


Basic requirements of PluginBase<br />

StructuresData<br />

– Defines <strong>the</strong> data that can be passed from <strong>the</strong> UI<br />

Attributes<br />

– Define <strong>the</strong> name <str<strong>on</strong>g>and</str<strong>on</strong>g> UI<br />

C<strong>on</strong>structor<br />

– Initializes <strong>the</strong> Plug#in<br />

– Takes <strong>the</strong> currently applied StructuresData<br />

DefineInput()<br />

– Defines <strong>the</strong> input <strong>the</strong> Plug#in in requires<br />

Run()<br />

– Executes after input has been received<br />

2012 User Meeting / Charles Pool 63


Main Class : Declarati<strong>on</strong>s<br />

2012 User Meeting / Charles Pool<br />

64


When <str<strong>on</strong>g>plug</str<strong>on</strong>g>in updates<br />

Several different opti<strong>on</strong>s, based <strong>on</strong> user setup<br />

2012 User Meeting / Charles Pool<br />

65


Main Class<br />

2012 User Meeting / Charles Pool<br />

66


Main Class : Override DefineInput<br />

2012 User Meeting / Charles Pool<br />

67


Main Class : Override Run<br />

2012 User Meeting / Charles Pool<br />

68


User Interface Data Storage Class<br />

2012 User Meeting / Charles Pool<br />

69


User Interface data is stored in model database<br />

Fetched automatically when run<br />

2012 User Meeting / Charles Pool<br />

70


Main Logic Class<br />

2012 User Meeting / Charles Pool<br />

71


Wrap Up<br />

What is <str<strong>on</strong>g>Drawing</str<strong>on</strong>g> API, Why do we care?<br />

What are some key things I need to underst<str<strong>on</strong>g>and</str<strong>on</strong>g> about<br />

<str<strong>on</strong>g>Tekla</str<strong>on</strong>g> drawings to use this toolkit?<br />

Getting Started, where to go<br />

Different applicati<strong>on</strong>s of <strong>the</strong> API<br />

Examples of <str<strong>on</strong>g>tools</str<strong>on</strong>g> already created<br />

Feature Highlights<br />

<str<strong>on</strong>g>Drawing</str<strong>on</strong>g> <str<strong>on</strong>g>plug</str<strong>on</strong>g>ins in depth<br />

2012 User Meeting / Charles Pool 72


Questi<strong>on</strong>s <str<strong>on</strong>g>and</str<strong>on</strong>g> Discussi<strong>on</strong><br />

User Meeting 2012 / Charles Pool<br />

73


For fur<strong>the</strong>r questi<strong>on</strong>s, please c<strong>on</strong>tact US Soluti<strong>on</strong>s Team:<br />

soluti<strong>on</strong>s.us@tekla.com<br />

Thank You<br />

2012 User Meeting / Charles Pool<br />

74

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!