Building Advanced Microsoft.NET User Interfaces for Use in Autodesk Products Mike King Structural...

25
Building Advanced Microsoft .NET User Interfaces for Use in Autodesk Products Mike King Structural Software Engineer Odeh Engineers, Inc. Brown University Swim Center

Transcript of Building Advanced Microsoft.NET User Interfaces for Use in Autodesk Products Mike King Structural...

Page 1: Building Advanced Microsoft.NET User Interfaces for Use in Autodesk Products Mike King Structural Software Engineer Odeh Engineers, Inc. Brown University.

Building Advanced Microsoft .NET User Interfaces for Use in Autodesk Products

Mike KingStructural Software EngineerOdeh Engineers, Inc.

Brown University Swim Center

Page 2: Building Advanced Microsoft.NET User Interfaces for Use in Autodesk Products Mike King Structural Software Engineer Odeh Engineers, Inc. Brown University.

Agenda

1 0-5 minutesIntroduction

Who am I and what am I talking about?

2 5-10 minutesWPF Overview

What is it?

3 10-35 minutesWPF Differentiators

Lightning fast lesson in WPF

4 35-50 minutesWPF in Revit

Launching WPF windows from Revit extensions

5 50-60 minutes Q&A

Page 3: Building Advanced Microsoft.NET User Interfaces for Use in Autodesk Products Mike King Structural Software Engineer Odeh Engineers, Inc. Brown University.

Prior Art

AutoCAD® .NET: UI Design Featuring WPF (Parts 1 & 2)Fenton WebbCP114-5 & CP118-2 (AU 2009)

Page 4: Building Advanced Microsoft.NET User Interfaces for Use in Autodesk Products Mike King Structural Software Engineer Odeh Engineers, Inc. Brown University.

ContentD

ep

th

Time

1 hour 3 hour2 hour

WPF

RevitCAD

Page 5: Building Advanced Microsoft.NET User Interfaces for Use in Autodesk Products Mike King Structural Software Engineer Odeh Engineers, Inc. Brown University.

ContentD

ep

th

Time

1 hour 3 hour2 hour

WPF Revit

CAD

Page 6: Building Advanced Microsoft.NET User Interfaces for Use in Autodesk Products Mike King Structural Software Engineer Odeh Engineers, Inc. Brown University.

Bio

.NET Software Engineer Structural Engineering background Diverse development experience

Page 7: Building Advanced Microsoft.NET User Interfaces for Use in Autodesk Products Mike King Structural Software Engineer Odeh Engineers, Inc. Brown University.

Windows Presentation Foundation (WPF)

Page 8: Building Advanced Microsoft.NET User Interfaces for Use in Autodesk Products Mike King Structural Software Engineer Odeh Engineers, Inc. Brown University.

WPF Advantages

One skillset, many capabilities

Control driven business apps (Windows Form, MFC, DCL) Rich document editing (PDF, RTF, XPS) 2d graphics and drawing (GDI+) 3d graphics (DirectX)

Page 9: Building Advanced Microsoft.NET User Interfaces for Use in Autodesk Products Mike King Structural Software Engineer Odeh Engineers, Inc. Brown University.

WPF Advantages Separation of code and markup Improved tool support

Expression Blend 4 (designers) Visual Studio 2010 (developers)

Page 10: Building Advanced Microsoft.NET User Interfaces for Use in Autodesk Products Mike King Structural Software Engineer Odeh Engineers, Inc. Brown University.

Markup Explained

XAML

1990 2004

2006

Page 11: Building Advanced Microsoft.NET User Interfaces for Use in Autodesk Products Mike King Structural Software Engineer Odeh Engineers, Inc. Brown University.

WPF Cautions

Can increase development time Fewer experienced developers May have unfamiliar look and feel

Page 12: Building Advanced Microsoft.NET User Interfaces for Use in Autodesk Products Mike King Structural Software Engineer Odeh Engineers, Inc. Brown University.

Get the Tools

Visual Studio 2010 (express is OK) http://www.microsoft.com/express/Downloads/

Expression Blend 4 http://www.microsoft.com/expression/try-it/

Kaxaml http://kaxaml.com/

Autodesk SDK’s

Page 13: Building Advanced Microsoft.NET User Interfaces for Use in Autodesk Products Mike King Structural Software Engineer Odeh Engineers, Inc. Brown University.

Markup + Code Behind

XAML Markup

User Interface

Code Behind (C#, VB.NET, etc.)

Page 14: Building Advanced Microsoft.NET User Interfaces for Use in Autodesk Products Mike King Structural Software Engineer Odeh Engineers, Inc. Brown University.

Layout

Many choices Canvas Dock Panel Stack Panel Wrap Panel Grid

Adapt to screen size / resolution / DPI

Less code required

Negotiation for size and position

Page 15: Building Advanced Microsoft.NET User Interfaces for Use in Autodesk Products Mike King Structural Software Engineer Odeh Engineers, Inc. Brown University.

Dock Panel

TOP PANE

LEFT PANE

DEFAULT PANE

Page 16: Building Advanced Microsoft.NET User Interfaces for Use in Autodesk Products Mike King Structural Software Engineer Odeh Engineers, Inc. Brown University.

Stack Panel

ITEM 2

ITEM 3

ITEM 4

ITEM 5

ITEM 1 ITEM 2 ITEM 3 ITEM 4ITEM 1

Page 17: Building Advanced Microsoft.NET User Interfaces for Use in Autodesk Products Mike King Structural Software Engineer Odeh Engineers, Inc. Brown University.

Wrap Panel

ITEM 1 ITEM 2

ITEM 3 ITEM 4

ITEM 5

ITEM 1 ITEM 2

ITEM 3

ITEM 4

ITEM 5

Page 18: Building Advanced Microsoft.NET User Interfaces for Use in Autodesk Products Mike King Structural Software Engineer Odeh Engineers, Inc. Brown University.

Layout (demo)

Page 19: Building Advanced Microsoft.NET User Interfaces for Use in Autodesk Products Mike King Structural Software Engineer Odeh Engineers, Inc. Brown University.

Data Binding

Map data to user interface Represent business data visually More than just text Bind UI elements together Support for 2-way binding

Database Business Object User Interface

Page 20: Building Advanced Microsoft.NET User Interfaces for Use in Autodesk Products Mike King Structural Software Engineer Odeh Engineers, Inc. Brown University.

Data Binding (demo)

Page 21: Building Advanced Microsoft.NET User Interfaces for Use in Autodesk Products Mike King Structural Software Engineer Odeh Engineers, Inc. Brown University.

Graphics

Comprehensive 2d Graphics Support Vector Not Raster Brush Based Most Common Shapes + Paths Fully UI Integrated (Click, Mouse Over, etc.)

WPF Rounded Corner

Rectangle

Page 22: Building Advanced Microsoft.NET User Interfaces for Use in Autodesk Products Mike King Structural Software Engineer Odeh Engineers, Inc. Brown University.

Animations

Animate Almost all WPF Classes Easy Parameterized Setup Path Based Motion Key Frame Recording Subtle or Dramatic

Page 23: Building Advanced Microsoft.NET User Interfaces for Use in Autodesk Products Mike King Structural Software Engineer Odeh Engineers, Inc. Brown University.

WPF with AutoCAD

See Fenton Webb presentation for many examples Integration with Tool Palettes Modeless and Modal dialog boxes DataBinding to AutoCAD properties

Page 24: Building Advanced Microsoft.NET User Interfaces for Use in Autodesk Products Mike King Structural Software Engineer Odeh Engineers, Inc. Brown University.

WPF with Revit (demo)

Get the Revit 2011 SDK Creating a Revit project

Required Libraries RevitAPI.dll – core database functionality RevitAPIUI.dll – user interface integration

Implement Interface IExternalCommand – single command, run when clicked IExternalApplication – application, starts and ends with Revit

Register Extension revit.ini – initialization file (deprecated) *.addin – manifest file

Page 25: Building Advanced Microsoft.NET User Interfaces for Use in Autodesk Products Mike King Structural Software Engineer Odeh Engineers, Inc. Brown University.

Autodesk [and other] are registered trademarks or trademarks of Autodesk, Inc., and/or its subsidiaries and/or affiliates in the USA and/or other countries. All other brand names, product names, or trademarks belong to their respective holders. Autodesk reserves the right to alter product and services offerings, and specifications and pricing at any time without notice, and is not responsible for typographical or graphical errors that may appear in this document. © 2010 Autodesk, Inc. All rights reserved.

Questions?