© 2012 Autodesk CP2177 - Autodesk® 3ds Max®.NET API Introduction and Techniques Kevin Vandecar Principal Developer Consulting Engineer – M&E Autodesk Developer.

Slides:



Advertisements
Similar presentations
Construction Documents and Details
Advertisements

© 2012 Autodesk SE2070 Unlimited Round-Tripping with the RISA-Revit® Link Matt Brown, P.E. RISA Technologies.
© 2012 Autodesk Presenter’s First and Last Name Presenter’s Title AutoCAD ® Architecture 2013 What’s New Image courtesy of Wilson Architects.
Debugging Python in Maya Cyrille Fauvel - ADN. About the Presenter Cyrille Fauvel - Autodesk Developer Network Cyrille is a member of the M&E workgroup.
© 2011 Autodesk Capitalize on Corridor Improvements in AutoCAD ® Civil 3D ® Don Quinn Civil Engineer / Eagle Point Product Specialist.
© 2012 Autodesk AV4676-V - Integrating Water Elements and Fountains into Architectural Renderings Using Particle Flow Steven Schain Autodesk Certified.
© 2012 Autodesk “Clash of The Design Teams” using Autodesk BIM 360 Glue & Revit Jason Jones Jason Waddell PES Structural Engineers The Beck Group BIM Program.
© 2011 Autodesk Precast Concrete Industry Extensions for Autodesk® Revit® Structure 2012 Reinhard Lackner General Manager, IDAT.
Introduction to 3ds Max Customization and Plug-in Development
© 2011 Autodesk Case Studies: Simulation Problem Solving for Industrial Machinery and Consumer Product Design Shakeel Mirza Technical Consultant, Simulation.
© 2011 Autodesk MA4712-P Simulation PowerTrack Working with Any CAD Format and Autodesk Simulation Luke Mihelcic Product Marketing Manager | Digital Simulation.
Understanding the Alignments and Profiles API in AutoCAD® Civil 3D®
© 2011 Autodesk Navigating Through the Corridor using AutoCAD® Civil 3D®.NET API Augusto Goncalves Senior Developer Consultant at Autodesk.
CP The 30,000-Foot View of Autodesk® 3ds Max® Customization and Plug-in Development Kevin Vandecar Principal Developer Consulting Engineer – M&E.
© 2011 Autodesk Suites and CAD Managers Jerry Milana Autodesk Consulting.
© 2012 Autodesk Conceptual and Design Workflows Using Autodesk ® 360 Integrated Applications Anirban Ghosh Principal User Experience Designer – DLS Mobile.
© 2011 Autodesk Single Job 1 Processor 1 Single Job 2 Single Job 3 Processor 2 Processor 3 Big Job 1 Big Job 2 Single Job 4 Processor 1 Single Job 5 Single.
© 2011 Autodesk Mechatronics-Taming the Beast Randy Brunette Consultant, Trainer, All Around Good Guy Brunette Technologies, LLC.
© 2012 Autodesk Dario Nicolini Product Manager Autodesk ® Inventor ® iLogic: a great Autodesk tool to improve Inventor features.
Scripting Components for AutoCAD Plant 3D
© 2012 Autodesk CI 3907: AIM to Please with Your Transportation Project - Part 1 Alan Gilbert, PE, LSI & Wes Newman Autodesk Transportation Technical Specialists.
© 2012 Autodesk Do More With Less ETO API’s Ishwar Nagwani Technical Consultant.
© 2011 Autodesk CP5239 Demand-Loading AutoCAD®.NET Plug-ins James E. Johnson Synergis Software Sr. CAD Developer.
© 2012 Autodesk Autodesk® Revit® Structure: From Design to Detailing and Fabrication to Construction Allen Levy Applications Specialist.
© 2012 Autodesk CI4820-V Feeling the Lay of the Land: Civil 3D and 3ds MAX Design for Landscape Architecture Robert Ward Landscape Architect LEED AP.
© 2011 Autodesk Making Dirt Look Good: Autodesk ® Civil View Kristina Bollin Technical Specialist, U.S. CAD.
© 2012 Autodesk AutoCAD ® Virtualized and Digitized michael trachtenberg - AE BackOffice Software Director.
© 2012 Autodesk BIM on an Etch a Sketch Jose Guia Janitor extraordinaire
© 2012 Autodesk The Devil Is In The Workflow Module 1: Successfully Plan and Implement BIM Luis Rojas Building Design Product Line Manager, Eagle Point.
Customizing Autodesk® Navisworks® 2013 with the .NET API
© 2012 Autodesk Effective Collaboration Techniques for the Architect & Construction Engineer Using Copy Monitor in Autodesk Revit Jason Jones PES Structural.
© 2012 Autodesk AutoCAD on Electrical Steroids Randy Brunette Electrical Subject Matter Expert (Autodesk)
© 2012 Autodesk How to Get the Most from Integrated Project Delivery (IPD) David J. Patera Team Project Manager & VDC Coordinator.
© 2012 Autodesk PL2731 Get the foundations right before you start building Adam Peter Customer Success Engineer - Autodesk.
© 2012 Autodesk Autodesk Structural Curriculum 2013 Unit 5: Advanced Structural Analysis & Coordination Advanced Structural Analysis & Coordination.
© 2011 Autodesk Converting Existing Piping Specs Ian Matthew Technical Marketing Manager, Autodesk.
© 2011 Autodesk Autodesk Inventor®: Client Graphics API exposed Philippe Leefsma Developer Consultant - Autodesk Developer Network.
© 2011 Autodesk Popular Design Patterns and How to Implement Them in.NET Gopinath Taget Senior Developer Consultant.
© 2012 Autodesk AutoCAD® API.NET Tips and Tricks James E. Johnson Application Developer for Synergis Software.
© 2012 Autodesk Rolling Your Own: Building Apps in Autodesk® PLM 360 Joseph Piggee Trung Nguyen.
© 2012 Autodesk Adding Instrumentation and Electrical Capabilities to Autodesk® Plant Design Suite Andy Bonfield.
© 2011 Autodesk Rain in the Plain: An Introduction to Autodesk® Storm and Sanitary Analysis Matthew Anderson, PE CFM QA Consultant – Autodesk. Inc. Lab.
© 2012 Autodesk Have a tablet? The handout is available for iBooks, Kindle, and Adliko.
© 2012 Autodesk Sweet Suite Collaboration Module 1: Suite Interoperability Veronica Lamb Technical Specialist, US CAD of Hawaii.
© 2012 Autodesk Customizing AutoCAD P&ID David Wolfe Process and Power Specialist.
© 2012 Autodesk AB1851 Optimizing the Design Development Stage using Revit Architecture Douglas Bowers, AIA, LEED AP BD+C Doug Bowers Consulting, LLC.
© 2011 Autodesk AC2182 P - Autodesk 3ds Max for Starters Create Stunning Renderings For All Situations Christopher Fernandez Senior Applications Specialist,
© 2012 Autodesk The Picture Says It All: Commercial Site Plan 3D Visualizations Using Autodesk® IDS John Sayre Civil Application Engineer.
© 2011 Autodesk The Suite Life of AutoCAD® Guillermo Melantoni Sr Product Manager: Workflows and Interoperability at Autodesk.
© 2012 Autodesk Autodesk® Civil 3D® 3D Studio Max Design®: Civil View For All Vincent Sheehan Sr. Designer, Timmons Group.
© 2012 Autodesk SM3595-R | Thinking of Design, Engineering, and Simulation Differently! Luke Mihelcic Product Marketing Manager | ISM – Simulation Industry.
© 2012 Autodesk Collaboration Systems – It’s good to share Martin Duke Business Systems Manager.
© 2012 Autodesk Autodesk ® Navisworks ® 2013 What’s New Presenter Name Presenter Title.
© 2011 Autodesk Publish Autodesk® Inventor® Building Components for Consumption in AutoCAD® MEP and Revit® MEP Jay Ayala Solutions Engineer.
Managing the Construction Administration Phase in Autodesk® Revit®
Applying the Top 10 New Features and Functions in AutoCAD® 2012
Are You STILL Not Using AutoCAD® Civil 3D ®?
Water! Water! Quenching Your Thirst for Water in AutoCAD® Civil 3D®
Creating Intelligent Details in Autodesk® Revit®
Check Out These ‘Suite’ Workflows
Using Scripts, AutoLISP® and
Using Quantity Takeoff and Linked Models in Revit to Estimate a Project as the Design Changes Kevin R. Miller, Brigham Young University Scott Davis & TJ.
CM1847 Migrating AutoCAD Standards to Revit
Are Your Buildings Floating in the Air
Autodesk Navisworks: Practical Tips and Tricks from Seven Years in the Construction Industry Josh Lowe Project Lead, TURIS Systems.
AB6105-V: Autodesk® Revit® Reality Check for Residential Construction
BIM for Interiors: Making Autodesk® Revit® Work for You
MP1483 Massing and using Architecture Models for Revit MEP 2013 Analysis Simon Whitbread Application Specialist.
Using Quantity Takeoff and Linked Models in Revit to Estimate a Project as the Design Changes Kevin R. Miller, Brigham Young University Scott Davis & TJ.
Beyond Massing: Conceptual Design in Autodesk® Revit® Architecture 2012 David Fano Partner | CASE Design, Inc |
Presentation transcript:

© 2012 Autodesk CP Autodesk® 3ds Max®.NET API Introduction and Techniques Kevin Vandecar Principal Developer Consulting Engineer – M&E Autodesk Developer Network

© 2012 Autodesk bio: Kevin Vandecar Autodesk for over 18 years  all customization related  Experience with AutoCAD, AutoCAD Architecture, Revit  Five years as Software Engineer on AutoCAD Architecture API and Revit API  18 months focusing on 3ds Max customization in ADN M&E Workgroup  Based in Manchester, New Hampshire, US 

© 2012 Autodesk Class Summary Last year, with the release of the Autodesk® Subscription Advantage Pack for Autodesk 3ds Max 2012,.NET users gained access to significant enhancements in the Autodesk 3ds Max.NET SDK, enabling them to do more with Autodesk 3ds Max 2012 software. Now, these.NET APIs are available in the main product. In this class, we will introduce you to.NET API programming in 3ds Max. We will present using the C# language, but the techniques can apply to any.NET programming language, including Microsoft® Visual Basic®. We will cover how to create an assembly that will load into the 3ds Max environment. We will show how to interface with other.NET Framework features that will include the Windows Presentation Foundation (WPF) and other features such as LINQ functionality. This class will be organized for those who want an introduction to these new APIs, including practical techniques. You do not need to know 3ds Max programming, but some general programming experience will be helpful.

© 2012 Autodesk Learning Objectives At the end of this class, you will be able to:  Create a.NET assembly compatible with 3ds Max  Use.NET API to solve common tasks through automation and customization  Create WPF style UI within 3ds Max using.NET API  Manipulate 3ds Max geometry using.NET API

© 2012 Autodesk Autodesk Developer Network  ADN Open  Blogs, Events, and other free education and support - develop3dsmaxdevelop3dsmax  ADN Membership  Access to almost all Autodesk software and SDK’s  Includes early access to beta software  Members-only website with thousands of technical articles  Unlimited technical support  Product direction through conferences  Marketing benefits  Exposure on autodesk.com  Promotional opportunities  One to three free API training classes

© 2012 Autodesk Microsoft.NET Framework

© 2012 Autodesk What is.NET?  Software architecture framework from Microsoft  Windows  Phone 7  Azure  Programs execute in CLR  Programs are “managed”  Memory Management via Garbage Collection provided C++/CLI Iron Python C# VB.NET Visual StudioCommon Language Specification

© 2012 Autodesk What is.NET?  Power of C++ with simplicity of scripting  Uses Simple Referencing  Language choices using same APIs  Reflection

© 2012 Autodesk What is.NET?  Many modern Foundation Technologies  Windows Communication Foundation (WCF)  (ASP.NET, Azure, etc.)  Windows Presentation Foundation (WPF)  (UI Data Binding, Silverlight, View Model, etc.)  Windows Workflow Foundation (WF)  Other Autodesk Products  AutoCAD  Revit  Inventor

© 2012 Autodesk 3ds Max.NET API

© 2012 Autodesk 3ds Max.NET API .NET API capability has been part of the 3ds Max SDK for a number of years now, but mainly UI oriented  Supported through MAXScript  C++/CLI allows mixed-mode functionality  New “Enhanced” version introduced in 2012  Subscription Advantage Pack  This “enhanced” version is a new assembly called Autodesk.Max.dll  A 1-to-1 wrapper of the native C++ APIs

© 2012 Autodesk Getting Started - Learning  The online Help for 3ds Max SDK now contains two distinct topics to help get started  3ds Max.NET SDK 3ds Max.NET SDK  describes the.NET SDK components  Lesson 7: Writing.NET Plug-ins Lesson 7: Writing.NET Plug-ins  part of the new learning path documentation  For 2012 SAP  See Christopher Diggin’s blog post  x_2012_subscription_advantage_pack x_2012_subscription_advantage_pack

© 2012 Autodesk Getting Started - Learning  For the Wrapper Assembly – Autodesk.Max.dll  Use the C++ Reference and Programmers guide as main form of documentation.  Keep in mind it is version ‘1’  Use an assembly browser  Object Browser, ILSpy, Reflector, etc.  Make sure to use all the assemblies as necessary  Some provide the same support

© 2012 Autodesk Assemblies  Assemblies:  Autodesk.Max.dll  AssemblyLoader.dll  CSharpUtilities.dll  ExplorerFramework.dll  ManagedServices.dll  MaxCustomControls.dll  SceneExplorer.dll  Assemblies:  Autodesk.Max.dll  AssemblyLoader.dll  CSharpUtilities.dll  ExplorerFramework.dll  ManagedServices.dll  MaxCustomControls.dll  SceneExplorer.dll  UiViewModels.dll

© 2012 Autodesk Assemblies  Autodesk.Max.dll  The “enhanced functionality”  Autodesk.Max is the root namespace  Use the IGlobal Interface, and Interface14  Functions with zero arguments and name begin with “Get” are mapped to properties  IGlobal contains Create method for types that can be instanced  Class IDs are required to identify object types.

© 2012 Autodesk Assemblies  UiViewModels.dll  Contains the Cui functionality  Cui for 2012 was in MaxCustomControls.dll  AssemblyLoader.dll  Contains the Loader class  Has default loader entry point  Allows loading other assemblies from another location

© 2012 Autodesk Assemblies  CSharpUtilities.dll  ManagedServices.dll  MaxCustomControls.dll  Each contains various utilities  Worth exploring when needing 3ds Max utilities  Windows handling  Etc.

© 2012 Autodesk Assemblies  ExplorerFramework.dll  Abstract explorer framework classes upon which the Scene Explorer is built. It can be used for creating a new node traversal for arbitrary scene explorers  SceneExplorer.dll  Specification of the ExplorerFramework components for the SceneExplorer with bindings to 3ds Max data demo

© 2012 Autodesk Creating a Project demo

© 2012 Autodesk Two ways to be loaded/run  Cui Action facility  Easily hook into the UI using the Action system and Customize User Interface  UiViewModel.dll  Assembly Loader  Allows loading and operations similar to the C++ Global Utility Plug-in (GUP)  AssemblyLoader.dll

© 2012 Autodesk Using Cui Action system 1. Derive from CuiActionCommandAdapter, or implement the ICuiActionCommand interface class  2012: MaxCustomControls assembly  2013: UiViewModels assembly 2. Implement the necessary functions  Mostly strings to identify the action to 3ds Max  Implement Execute to run the code demo

© 2012 Autodesk Using the new Autodesk.Max.dll wrapper functionality  Contains the entire C++ SDK as “crude”.NET wrappers  Autodesk.Max is the root namespace  Use the IGlobal Interface, and IInterface14

© 2012 Autodesk Using the new Autodesk.Max.dll wrapper functionality  Functions with zero arguments and name begin with “Get” are mapped to properties  IGlobal contains Create method for types that can be instanced Class IDs are required to identify object types  Make sure to use IInterface.CreateInterface for constructing new instances of typical objects  Not IGlobal.CreatInstance

© 2012 Autodesk What can you do?  Automate tasks  Interop with MAXScript  Interop via C++/CLI to full SDK plugin  Create nice UI elements  WPF  Use other.NET API components  Lync

© 2012 Autodesk What to avoid

© 2012 Autodesk Tips/Tricks  When using CuiActionCommandAdapter  make a custom abstract base class  category and other requirements implemented with defaults  derive from it, and simply implement Execute() and ActionText() and any other overrides you want demo

© 2012 Autodesk Tips/Tricks  Use VS tools  Implement abstract, etc,  Use Object Browser  Error check:  Try and Catch exceptions!  Check return values!  Mix assembly functionality where appropriate  ManagedServices  CSharpUtilities

Some Examples

3ds Max Customization Resources  Autodesk AREA     Autodesk 3ds Max Developer Center   Autodesk Developer Network 

Q&A Feel free to contact me later:  Thank You!

© 2012 Autodesk Autodesk, AutoCAD* [*if/when mentioned in the pertinent material, followed by an alphabetical list of all other trademarks mentioned in the material] 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. © 2012 Autodesk, Inc. All rights reserved.