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.