Christer Janson - Autodesk

kingfishblacksmithMobile - Wireless

Dec 14, 2013 (3 years and 7 months ago)

123 views


AutoCAD
®

APIs: Meet the Experts

Stephen Preston



Autodesk


CP1482



Have a great AutoCAD software plug
-
in or cool block library
that you would like to try
your hand at selling? The new AutoCAD Exchange makes it very easy to get your work in front of
hundreds of thousands of AutoCAD users who might want to buy what you have to sell. Bring your
AutoCAD plug
-
in (LISP, .NET, or ObjectA
RX®) or other content to this roundtable session. In 90 minutes,
you will walk away ready to sell your first product through AutoCAD Exchange. We will help you through
the app packaging and posting process, provide advice on product naming, pricing, licens
ing, and more.




Learning Objectives

At the end of this class, you will
be able to



Go to the Exhibition Hall and have a beer




AutoCAD® APIs: Meet the Experts

2


The “geekiest class at AU” just got geekier
!

I’m very proud this year to introduce a panel

consisting

entirely of members of the AutoCAD Architects
team. These are the people who set the technical direction for AutoCAD; implement ‘skunkworks’ projects
to test how the latest technology can be incorporated into AutoCAD; and act as technical overseers and
tr
ouble
-
shooters

for the teams implementing AutoCAD features.

However,
this class isn’t just about the panelists. It’s about you
. Yes
-

t
his is your chance to meet the
panelists a
nd pose your questions to them


but
it’s

also your chance to
meet

a roomful of really
experienced AutoCAD programmers

and maybe share some of your expertise
. (The majority of our
audience usually have between 5 and 20 years of AutoCAD programming experience).
So don’t just sit
and listen
:


Ask questions … contribute to the discussion …
make some frie
nds
.

You can ask
about
anything you like
, so come prepared with your questions about all things AutoCAD.
You can even ask them about future AutoCAD features (although they may not answer

).

R
em
ember …
This class is only as good as
the

questions

you ask!

The Panel

Our panelists this year are:



Christer Janson



Ravi Krishnaswarmy



Alberty
Szilvasy



Kean Walmsley

The main purpose of this handout is to
tell
you a little about the panelists, so I asked each of them to
answer the same questionnaire. This is what they said

(starting with me)
:



Stephen Preston

(P
anel host)

Job title

Senior Manager,
DevTech

Worldwide, Autodesk Developer Network

Biography

Stephen has been a member of the Autodesk Developer Technical Services (DevTech) team since 2000,
starting as a support engineer and now as global manager for the
Developer Technical Services
Worldwide team


part of the Autodesk Developer Network team. In those roles, his responsibilities
included supporting the AutoCAD APIs, including ObjectARX and AutoCAD .NET, as well as AutoCAD
OEM and RealDWG™ technologies. St
ephen started his career as a scientist, and has a Ph.D. in Atomic
and Laser Physics from the University of Oxford.

What AU classes are you presenting this year?

Other than hosting this panel session, my classes are focused on the Exchange store. I’m prese
nting

AC1484
-

The Top 10 Free AutoCAD® Apps from the AutoCAD Exchange
”, and also two roundtables



CP1486
-
R
-

Sell Your First AutoCAD® Plug
-
in on AutoCAD Exchange
” and “
CP2300
-
R
-

Sell Your First
Autodesk® Revit® Plug
-
in on the Autodesk® Revit® Exchange


AutoCAD® APIs: Meet the Experts

3


What feature(s) did you work on for AutoCAD 2013, or what are you working on now (if you can tell
us)?

I don’t work on AutoCAD development directly, but I’m going to take a share in the credit for the Autodesk
Exchange store


something we expect to quic
kly grow into a very valuable marketplace
where

even the
smallest app developer
can

reach a global customer base. The ADN team has
been heavily involved in
this:
creating installer templates, implementing the AutoCAD ‘Autoloader’ feature that is so importa
nt for
easy deployment of apps, specifying requirements and guidelines, testing submitted apps and helping
publishers tweak them to work well within the Exchange store infrastructure; and publishing those apps
when they’ve passed testing. We now have about

250 AutoCAD compatible apps in the store with more
being submitted every day.

Tell us about the first computer you ever programmed?

Being British, I used computers that most people this side of the pond have probably never heard of. The
very first comput
er I programmed was my grandfather’s
Sinclair ZX81
. It had 1K of standard RAM and a
4K expansion pack. But that was just “hello world” programming. My first ‘real’ programming was on a
BBC Micro Model B
. 2MHz 6502 processor, 32K RAM. I think that was about 1984. I learned BBC BASIC
he
lping my older brother with his

Computer Studi
es homework. I was a master of
Teletext

graphics,
because that graphics mode used the least RAM for the display. Later
,

on the same machine
,

I learned
6502 assembler (I had ambitions to be a schoolboy games programming prodigy

), FORTRAN and
Pascal.

At university, I programmed in Pascal on a
NeXTSTEP

machine as an undergraduate, and
then
finally
found
my way to
C++ on an
Apple Macintosh II

System 7

as a graduate student
. (My supervisor wouldn’t
allow a PC in the lab

)
.

What’s your favorite programming language and why?

IMHO Microsoft beat
s

the competition hands
-
down for developer tools, s
o it has to be programming .NET
Framework in Visual Studio. If you’d asked me a year ago, I would have said Visual Basic .NET was my
favorite, but I’ve
recently

changed my mind and think
its

worthwhile taking the slight extra pain to learn
C#. The language

is closer to the languages you need for programming mobile devices (especially Java
for Android), so it’s a good investment. Whatever you do on the desktop these days, you should do with
an eye to adding cloud and mobile

functionality sooner or later.

How
ever, whatever your favorite programming language, it’s important to broaden your horizons. Get a
good grounding in your language of choice

and then
go
play with some others.

What one piece of advice would you offer to someone who was starting to learn
AutoCAD
programming?

Don’t run before you can walk. Take the time to get a good grounding in general programming concepts
before you get too focused on AutoCAD specifics. You’ll reap the rewards for that initial investment in
years to come. Oh yes


and st
art with o
ur ‘
My First Plug
-
in
’ tutorial
.

What one piece of advice would you offer to someone who was already programming AutoCAD?

Start learning about cloud programming and mobile device programming.
Even if you don’t believe that
customers will ever put all their design data on the cloud, there are still amazing ways you can use those
technologies to extend your desktop applications.

What’s your favorite beer?

When I used to drink beer it was Fullers
ESB


cask conditioned, not the pasteurized/kegged version. I
discovered it at a real ale festival when I was a student at Oxford.


AutoCAD® APIs: Meet the Experts

4


What’s your favorite pizza topping?

Mushroom, spinach and ricotta.

What do you like to do to relax when you’re not programmi
ng?

I’m very lucky to live in a part of the world where there’s beautiful countryside in all directions. I like to get
out walking whenever I can


particular along the California coastal paths and beaches.


I’ve also been known to dabble in online gaming


I’ve recently swapped my World of Warcraft
subscription for a
n

Eve Online subscription
. I’m not yet sure whether the move from raid healing to
asteroid mining is a step up.


Christer Janson

Job title

S
enio
r

Soft
ware Architect, AutoCAD Products

Biography

During my 20+ years as a developer at Autodesk I have worked on many products, including 3D Studio
MAX and AutoCAD.

I started working at Autodesk in Sweden way back when a 386 was hot, then when the Pentium came out
I migrated south to Neuchatel, Switzerla
nd before finally ending up here in the San Francisco Bay Area in
the age of Pentium II.

I am currently a Sr. Software Architect for AutoCAD working on reality capture, graphics and other
initiatives.

What AU classes are you presenting this year?

I’m doing


CP3501
-

GrumpyBlocks: A Tale of Writing a Game in AutoCAD® Using ObjectARX®
”, where
we’ll go through a couple of fun games that I wrote during a four day hacking contest here at Autodesk


one 2D dynamics simulation app and one ‘classic’ arcade shooter
construction kit. If all goes well there
will be another fun little surprise as well, but we’ll see how that goes.

I’m also here on “
CP1482
-

AutoCAD® APIs: Meet the Experts


What feature(s) did you work on for AutoCAD 2013, or what are you working on now
(if you can tell
us)?

The last few years I have mainly been involved with Reality Capture/Point Cloud initiative, but also done
some work on graphics.

Tell us about the first computer you ever programmed?

It all started with a big lie. My brother and I con
vinced our parents into buying us
Commodore VIC
-
20

in
1981 because “We wanted to learn about computers”. Naturally all we really wanted was to play games.
A few months in, it became evident that if I lear
ned how to program, I could modify the games so that
pressing some key
-
combo would score 10 points (cheat).
One thing led to another, and eventually I was
coding both BASIC and 6502 Assembly on this little marvel.

Later favorites were the
IBM
-
PC

where I learned Turbo Pascal, and the
Amiga 1000

where I started
programming C with the eminent Lattice C compiler.

AutoCAD® APIs: Meet the Experts

5


What’s your favorite progra
mming language and why?

C++.
Because I’m used to it and it does what I need. I like it because it doesn’t get in the way of writing
fast and efficient code when I really need to, while still allowing me to express some kind of architectural
intent and comp
artmentalize things on a high level.

I spent the better part of the last decade writing C# code and I still sometimes turn to the .Net
environment if I want to quickly code up some utility, but for anything serious C++ is my choice. I’m also a
slow adopter

of new language features, I
still

hesitate to use templates unless there is a real architectural
need.

What one piece of advice would you offer to someone who was starting to learn AutoCAD
programming?

Don’t give up. Programming is great. AutoCAD is grea
t. Programming AutoCAD is awesome! Start small,
build on what you learn.

Of course, it helps to know AutoCAD first, and then have an idea for something useful or fun, but it
doesn’t have to be anything fancy.

I’m a big believer of keeping things simple. I
f things turn too complex it is easy to confuse yourself. Most
problems, even very complex ones, can be solved by solving a number of much simpler problems one by
one.

What one piece of advice would you offer to someone who was already programming AutoCAD?

Focus on what the customer needs. Take pride in what you do. Keep things simple, and of course, don’t
forget to have fun!

What’s your favorite beer?

These days it’s Stella Artois, but I grew up on Kronenbourg 1664.

Unfortunately Kronenbourg is not easy to

come by here in California, but when available it’s still high
ranking on my preferred beverage list.

What’s your favorite pizza topping?

What kind of question is that? Pizza is not about any individual topping, it’s about the synergy achieved
when combin
ations of toppings become more than its parts.

Everybody knows that if you want
good

pizza you go to Italy, but if you want
great

pizza you go to
Sweden. It’s true.
Google it
.

And if you must know, the

“Traditional” Swedish Kebab Pizza is legendary.

What do you like to do to relax when you’re not programming?

Programming *
is
* relaxing for me


there’s different kinds of programming though and I often
play

with
non
-
work

related programming when I’m at ho
me. Often music/synthesizer/MIDI related software. Or
something fun with graphics.

Away from the computer I love hanging out with my kids, doing fun art projects, biking and other things.

I also enjoy building various electronic contraptions. Usually
Arduino

or
Raspberry Pi

based things with
LEDs, motors, servos and gyros. Anything that blinks and/or moves is cool in my book.

When that’s not enough, I really like learning how

to play instruments, and have a full recording studio
setup with a bunch of keyboards, drums, guitar, bass and microphones where I spend many late
evenings.

AutoCAD® APIs: Meet the Experts

6


Oh and needless to say, when I’m tired of everything else, watching Star Trek always cheers me up.


Ravi Krishnaswarmy

Job title

Senior Software Architect

Biography

Ravi has worked on AutoCAD for over 19 years.

He was part of the original team that created ObjectARX, and one of the 2 person team that added Solid
Modeling (ACIS) to AutoCAD.

He has also

contributed to several features in AutoCAD over the years including xref clipping, dynamic
blocks, CER.

In his current role as Software Architect and team lead


he, along with the other Architects, provides
technical oversight and guidance for the AutoCA
D product line.

What AU classes are you presenting this year?

CP2568
-

PaaSt

the Desktop: Implementing Cloud
-
Based Productivity Solutions with the AutoCAD®
Obje
ctARX® API
.

What feature(s) did you work on for AutoCAD 2013, or what are you working on now (if you can tell
us)?

I’ve been involved with the data services and point cloud features, as specific features go.

I'm currently helping define cloud and
connectivity directions for AutoCAD, including interoperability with
our own internal products, like AutoCAD WS.

Tell us about the first computer you ever programmed?

Other than programmable calculators, it is the
EC
-
1030



a Russian computer that was a clone of the
IBM 360!

What’s your favorite programming language and why?

I like Java a lot, though I mainly program in C++ for the most part.

Languages like Java (C# too) make the programmer enforce discip
line, e.g. class/file names, organization
of modules etc., and make one very productive.

What one piece of advice would you offer to someone who was starting to learn AutoCAD
programming?

Samples are a great guide.
Also


understand the basics of the AutoC
AD components


the editor
(selection sets, reactors …) and the object model (Database, Blocks, Entities).

That will give you the fundamental context you need.

What one piece of advice would you offer to someone who was already programming AutoCAD?

AutoCAD

has a really broad
API
. It’s worth browsing through related areas when you are working in some
parts of the code.

AutoCAD® APIs: Meet the Experts

7


You might find interesting opportunities!


Also, worth paying attention to impact of use of APIs on things like performance if for example y
ou use
reactors on many objects, or add data to objects.

What’s your favorite beer?

Corona

What’s your favorite pizza topping?

Cheese!

What do you like to do to relax when you’re not programming?

I like doing small home improvement projects when I can.


Albert Szilvasy

Job title

Software Architect

Biography

Albert Szilvasy has been with Autodesk for 15 years and worked in various roles within the AutoCAD®
development organization. Most recently, he has been involved with .NET APIs and preparing AutoCAD
fo
r the Mac® and Cloud.

What AU classes are you presenting this year?

CP3346
-

The Confluence of AutoCAD® Mobile, Desktop, and the Cloud

What feature(s) did you work on for AutoCAD 2013, or what are you working on now (if you can tell
us)?

In AutoCAD 2013 I
worked on integrating the C# ‘dynamic’ keyword with our .NET object model, startup
performance and other stuff that hasn’t shipped yet so I can’t talk about…

Tell us about the first computer you ever programmed?

Commodore Plus/4.

It was a nice little guy but I don’t remember much about it. Heck, I don’t even
remember what I had for dinner last night…

What’s your favorite programming language and why?

C#: it is a clean and flexible language with e
xcellent tooling. I spend most of my time reading/writing C++
code for work though.

What one piece of advice would you offer to someone who was starting to learn AutoCAD
programming?

Use the .NET API. It has the best balance between power and learnability.

What one piece of advice would you offer to someone who was already programming AutoCAD?

Convert your app to C#. Keep up with what’s happening in .NET. There are some nice productivity
boosters there every time you look.

AutoCAD® APIs: Meet the Experts

8


Don’t be a bigot: use the language

that works.

What’s your favorite beer?

I don’t have a favorite. I know what I don’t want: big international brands. I always want to drink the most
local one can get.

What’s your favorite pizza topping?

Bacon and pineapple.

What do you like to do to relax

when you’re not programming?

I’m blessed to live in an area where the sea and the mountains meet so I can wave ski in the morning and
go for a bicycle ride in the afternoon.


Kean Walmsley

Job title

Software Architect

Biography

Kean has been with Autodesk

since 1995, working for most of that time in a variety of roles


and in a
number of different countries


for the Autodesk Developer Network organization. Kean’s current role is
Software Architect for the AutoCAD family of products, and he continues to w
rite regular posts for his
popular development
-
oriented blog, “Through the Interface” (
http://blogs.autodesk.com/through
-
the
-
interface
). Kean currently lives and works in Switzerland.

What AU
classes are you presenting this year?

I was involved in 3 sessions prior to this one, today. I was a
panelist

on “
CP3573


AutoCAD
Programming Gurus Go Head to Head
”, I presented “
CP1914


Moving code to the cloud


it’s easier
than you think!
” and then ho
sted “
CP4342
-
R


Cloud and mobile developer round
-
table
”. Tomorrow I
have my second lecture
-
style class, “
CP1921


Developing a simple Metro
-
style application for Windows
8
”.

What feature(s) did you work on for AutoCAD 2013, or what are you working on now
(if you can tell
us)?

I was still in the ADN team for most of the 2013 product development cycle, but right now I’m busy acting
as the main internal contact for our vertical product teams.

Tell us about the first computer you ever programmed?

It might have

been the
BBC Micro Model B

or the
TRS
-
80 Model III



it’s hard to remember which came
first. On a side note, I’ve been having lots of fun getting em
ulators for these machines


and a number of
others I’ve used


on my
Raspberry Pi
. It’s mind
-
boggling that you can carry around multiple equivalent
machines


along with all their software


on such a small devi
ce. :
-
)

What’s your favorite programming language and why?

For general
-
purpose programming I prefer C#, although I also have a lot of time for C++, F#, Java &
Ruby. C# has evolved to provide really important programming language concepts


many have been
i
nspired by functional programming, for instance


and it’s this continued evolution that I find both
impressive and helpful on a day
-
to
-
day basis.

AutoCAD® APIs: Meet the Experts

9


What one piece of advice would you offer to someone who was starting to learn AutoCAD
programming?

Subscribe
to
my blog
. ;
-
) And work through “
My First Plug
-
In
” and check out some of the “
Pl
ug
-
Ins of the
Month
” on
Autodesk Labs
.

What one piece of advice would you offer to someone who was already programming AutoCAD?

The same! :
-
) In seriousness, to anyone with programming experience, don’t be afraid to broaden your
horizons. Try out coding in

another language for a few days: it’s not as painful as you might think, and the
confidence you get from being a polyglot will help you adapt to this world of increasingly rapid
technological change.

What’s your favorite beer?

Guinness.

What’s your favori
te pizza topping?

I’m a sucker for an egg in the middle of my pizza.

What do you like to do to relax when you’re not programming?

Lately I’ve been having *
lots
* of fun with the Raspberry Pi. It’s mostly not about programming


a lot of it
is installing or
building and configuring existing components


so I suppose
that counts as a valid answer
.
S
ort of.

I also enjoy


and find I need to play


sport on a regular basis. I’m not too fussy about the type of sport,
but floor hockey and soccer are among my favo
urites. And I read Sci
-
Fi on a near
-
daily basis.