Brown University Swim Center Building Advanced Microsoft .NET User Interfaces for Use in Autodesk Products Mike King Structural Software Engineer Odeh Engineers, Inc.
Agenda 1 0-5 minutes 2 5-10 minutes 3 10-35 minutes 4 35-50 minutes 5 Introduction Who am I and what am I talking about? 2 5-10 minutes WPF Overview What is it? 3 10-35 minutes WPF Differentiators Lightning fast lesson in WPF 4 35-50 minutes WPF in Revit Launching WPF windows from Revit extensions 5 50-60 minutes Q&A What this class is – programming! (OK to leave) Mobile devices
Prior Art AutoCAD® .NET: UI Design Featuring WPF (Parts 1 & 2) Fenton Webb CP114-5 & CP118-2 (AU 2009) Time frame (Fenton Webb)
Content 1 hour 2 hour 3 hour Depth Time CAD Revit WPF Time frame (Fenton Webb) 1 hour 2 hour 3 hour Depth Time CAD Revit WPF
Content 1 hour 2 hour 3 hour Depth Time WPF Revit CAD Different backgrounds approach Expected background Programming experience Product experience Questions until the end (or email) 1 hour 2 hour 3 hour Depth Time WPF Revit CAD
Bio .NET Software Engineer Structural Engineering background Diverse development experience Talk about different development technologies (.NET, Visual LISP, ARX, VBA) as well as software platforms (AutoCAD & Revit). Talk about different types of applications (Intranet, Line of Business, Tablet PC, Networking, Design, Drafting, etc.)
Windows Presentation Foundation (WPF) Periscope What is WPF? What came before (Windows Forms, DCL, VBA, MFC, GDI, DirectX, etc.) What it allows
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)
WPF Advantages Separation of code and markup Improved tool support Expression Blend 4 (designers) Visual Studio 2010 (developers)
Markup Explained 1990 2004 XAML 2006
WPF Cautions Can increase development time Fewer experienced developers May have unfamiliar look and feel
Get the Tools Visual Studio 2010 (express is OK) Expression Blend 4 http://www.microsoft.com/express/Downloads/ Expression Blend 4 http://www.microsoft.com/expression/try-it/ Kaxaml http://kaxaml.com/ Autodesk SDK’s
Markup + Code Behind XAML Markup Code Behind (C#, VB.NET, etc.) User Interface
Layout Many choices Adapt to screen size / resolution / DPI Canvas Dock Panel Stack Panel Wrap Panel Grid Adapt to screen size / resolution / DPI Less code required Negotiation for size and position
Dock Panel TOP PANE LEFT PANE DEFAULT PANE
Stack Panel ITEM 3 ITEM 4 ITEM 1 ITEM 1 ITEM 2 ITEM 2 ITEM 3 ITEM 4
Wrap Panel ITEM 1 ITEM 2 ITEM 1 ITEM 2 ITEM 3 ITEM 4 ITEM 3 ITEM 5
Layout (demo) Controls Attached Properties
Data Binding Map data to user interface Represent business data visually More than just text Bind UI elements together Support for 2-way binding User Interface Business Object Database
Data Binding (demo)
WPF Rounded Corner Rectangle 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
Animations Animate Almost all WPF Classes Easy Parameterized Setup Path Based Motion Key Frame Recording Subtle or Dramatic
WPF with AutoCAD See Fenton Webb presentation for many examples Integration with Tool Palettes Modeless and Modal dialog boxes DataBinding to AutoCAD properties
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
Questions? 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.