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

Upload: brandon-hadder

Post on 31-Mar-2015

217 views

Category:

Documents


0 download

TRANSCRIPT

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?