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 2 3 0-5 minutes 5-10 minutes 10-35 minutes 4 35-50 minutes 5 50-60 minutes Introduction Who am I and what am I talking about? WPF Overview What is it? WPF Differentiators Lightning fast lesson in WPF WPF in Revit Launching WPF windows from Revit extensions Q&A Prior Art AutoCAD® .NET: UI Design Featuring WPF (Parts 1 & 2) Fenton Webb CP114-5 & CP118-2 (AU 2009) Depth Content 1 hour 2 hour CAD WPF 3 hour Revit Time Content Depth 1 hour 2 hour 3 hour Time WPF Revit CAD Bio .NET Software Engineer Structural Engineering background Diverse development experience Windows Presentation Foundation (WPF) 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 2004 1990 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/expression/try-it/ Kaxaml http://www.microsoft.com/express/Downloads/ http://kaxaml.com/ Autodesk SDK’s Markup + Code Behind XAML Markup Code Behind (C#, VB.NET, etc.) User Interface 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 Dock Panel TOP PANE LEFT PANE DEFAULT PANE Stack Panel ITEM 1 ITEM 2 ITEM 3 ITEM 4 ITEM 5 ITEM 1 ITEM 2 ITEM 3 ITEM 4 Wrap Panel ITEM 1 ITEM 3 ITEM 5 ITEM 2 ITEM 4 ITEM 1 ITEM 3 ITEM 4 ITEM 5 ITEM 2 Layout (demo) 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 Data Binding (demo) 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 Implement Interface RevitAPI.dll – core database functionality RevitAPIUI.dll – user interface integration 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.