ADN Developer Days 2011 Connecting the Pieces
Connecting the Pieces
Connecting the Pieces The whole is greater then the parts The parts are increasingly not viable on their own
AutoCAD Civil 3D – “JayPeak”
Today’s Agenda Highlights of new Features and Functionalities. Migration to AutoCAD Civil 3D "JayPeak" API Enhancements Image courtesy of Harmonix Music Systems, Inc.
Nondisclosure Agreement Today’s discussion is covered under your ADN Agreement with Autodesk. The information we will be providing is highly confidential, and is to be shared within your company on “need to know basis” and to no one outside your company. Autodesk makes no guarantees that anything presented or discussed will actually appear in the future. Remember – all the information in this presentation is covered by the confidentiality clauses in your ADN contract. It shouldn’t be shared with anyone outside your company, and if you tell anyone else in your company then you must make sure they also understand that it is confidential.
Autodesk may make statements regarding planned or future development efforts for our existing or new products and services. These statements are not intended to be a promise or guarantee of future delivery of products, services or features but merely reflect our current plans, which may change. Purchasing decisions should not be made based upon reliance on these statements. Autodesk assumes no obligation to update these forward- looking statements to reflect events that occur or circumstances that exist or change after the date on which they were made.
Civil 3D ‘JayPeak’ Highlights Next release of AutoCAD Civil 3D is focused on several themes including: Expand Model Creation for Civil Infrastructure Disciplines Data Migration and Interoperability Quality, Usability and Performance Visualization, Simulation and Analysis Here is the broad theme line of Civil 3D JayPeak release :
Pressure Pipes Provide pipe layout and modeling for force main and yard systems Enhances capabilities for Water projects Enhances Transportation solution with below road pipe design and coordination This is the single most big feature coming in next release of Civil 3D – modeling Pressure Pipe Networks. This new feature will provide tools that enable customers to accurately model non-gravity underground pipe networks.
Pressure Pipes Provide pipe layout and modeling for force main and yard systems There will be a new command and UI for “Pressure Network creation tool”. And there will be a New Ribbon related to Pressure Network modeling and Not a Layout tool bar like we saw in the past e.g. in Pipe Network creation tools.
Performance, Quality, & Scalability Provide robust production level solution for large projects Performance Our goal is to Allow users to work on very large Transportation projects (50KM corridors, 4M point TINs, 2B pt. point clouds) in Civil 3D with satisfactory performance and no impact on product stability. This includes smooth 3D orbit/navigation, real-time pan and zoom, and file open etc.
Benchmark Results – Drawing Open
Benchmark Results - Regen
Benchmark Results – Editing 60%
Benchmark Results – Volume Calculation 80%
Basemap creation and Point Cloud improvements Extend Civil 3D as survey tool in civil infrastructure market Enhancements for DOT survey workflow Improve Civil 3D for basemap creation Improve survey data -> design consistency and accessibility Survey industry midway through a dramatic change in workflow, based on technology advancements including laser scanning, image mapping, traditional survey for data acquisition and machine control for physical construction and project management of the project. We are looking forward to Provide a simple yet intelligent “field to finish” workflow that addresses the needs of historical survey methods and new technologies that are actively becoming mainstream. This includes import of field captured survey information; creation of basemaps that include existing geometry, surfaces and key features; and delivery of base data that can be used for design, analysis and submittal.
Survey Feature Enhancements Survey Figure Extended Properties are now supported Survey Query Builder LandXML properties and User defined properties are now supported for Survey Figure. There is a new “Survey Query Builder” Interface for Points and Figures to Query the Survey Database and get the required Points and Figures in the Drawing area. Functionalities for Figure label and table styles implemented in this release.
New APIs and Application Migration Now let’s focus into the New API features and application migration issues for Civil 3D ‘JayPeak’
Install Locations COM Libraries (shared location) C:\Program Files\Common Files\Autodesk Shared\Civil Engineering 10.0 .NET Assemblies Civil 3D: C:\Program Files\AutoCAD Civil 3D 2013 Before we get to know the new API features, let’s take a quick look into the ‘JayPeak’ API assemblies location and version number change.
Installer Change Increment major version number 9.0 -> 10.0 The other change to mention is the usual registry change. This is a binary incompatible release, so the major version number has been incremented.
Migration issues Binary incompatible release DWG format change API compatibility break AutoCAD Version number R18.2 -> R19.0 ObjectARX and .NET plug-ins will require changes Demo videos available on ADN Beta Portal In the morning sessions where we talked about AutoCAD Jaws, the migration issues are discussed in length. In this session I would like to remind you that Civil 3D is built on top of AutoCAD and migration issues related to AutoCAD Jaws are relevant to AutoCAD Civil 3D ‘JayPeak’. This is a binary incompatible release, which means that we’re moving to a new DWG format and there will be API changes that require you to refactor and rebuild your apps. Because we’re breaking binary compatibility, the AutoCAD major version number is changing - we’re moving from R18.2 to R19.0. Rather unusually this year, the binary compatibility break means .NET apps have to be migrated as well as ObjectARX apps. .NET programmers were pretty well shielded from the last binary break between AutoCAD 2009 and 2010. But the migration steps are quite straightforward. We’ve posted a couple of videos with the AutoCAD Jaws downloads on the ADN Beta portal to show you what you need to do.
Migration steps – ObjectARX Visual Studio 2010 sp1 required General Properties Platform Toolset = V100 Target Extension must be same as Output Filename (e.g. .arx) Preprocessor definitions Min value for _WIN32_WINNT is now NTDDI_WINXP (NTDDI_WINXPSP3 recommended) Easiest way - #define WINVER NTDDI_WINXPSP3 Linker All *18.lib must be updated to *19.lib Add accore.lib, ac1st19.lib Optional Enable standard RTTI (C/C++->Language section) ObjectARX first. For completeness, this slide summarizes all the steps demonstrated in the video I mentioned – so you can use it as a reference when you download the DevDays presentations from the ADN extranet. The most important steps are: - You’ll be using Visual Studio 2010 service pack 1 (and the VC10 compiler) to build your apps. All the old ‘18’ lib versions have changed to ‘19’ versions. You have to reference two additional libs – accore.lib and ac1st19.lib. [Optional – If you have time, you could migrate a simple ARX app to Jaws. Fenton used a 2007 SDK sample app in his demo because the use of inherited propertysheets in the newer SDKs. Or use an ARX Wizard generated app.] [If someone asks: ARX/CRX separation is not required to work with Big Split. What matters is which libs or assemblies you reference. However, recommendation is to have CRX module for commandline version, and ARX for UI. .NET are all just called DLL.]
Migration steps - .NET Target Framework 4 Reference AcCoreMgd.dll Some properties converted to Extension methods DocumentExtension DocumentCollectionExtension EditorExtension WindowExtension Some methods/properties renamed Build Test The changes for .NET are mostly due to the Big Split work we’ve talked about for the last couple of years. We have talked about AutoCAD Big Split in the morning AutoCAD API sessions. I am not going to go through all those here – in short it means Acad.exe has now been split into two – acad.exe (which is mostly the UI-related functionality) and accore.dll (which holds most of the AutoCAD logic). As a result of this, you must now reference an additional assembly – AcCoreMgd.dll - in your .NET projects. We’ve also converted some properties to Extension methods. Extension methods are a way of extending the functionality of an existing class in .NET with new methods. Search for ‘extension methods’ on MSDN for more information. The existing classes (e.g. Document) are now in AcCoreMgd.dll, and the Extension classes are contained in AcMgd.dll. An example of the change is that the Document.StatusBar property has become the DocumentExtension.GetStatusBar() method. As well as this refactoring to use extension methods, we’ve also taken advantage of the binary compatibility break to rename some methods and properties to be more descriptive. You’ll find these changes listed in the ObjectARX readme posted with the ObjectARX SDK on the ADN Beta portal. Updating your app should be pretty straightforward (it took me less than 10 minutes to migrate MgdDbg, which is a very comprehensive sample). Then you just have to build and test your app – and report any problems to us. [Recommended – Migrate MgdDbg source to Jaws (as in the posted video). If you don’t have time, just mention the video again, or do a partial migration.] [Additional info: Extension method example - Autodesk.AutoCAD.ApplicationServices.Document.StatusBar becomes Autodesk.AutoCAD.ApplicationServices.DocumentExtension.GetStatusBar() To use extension methods – In VB.NET – Add Import for Autodesk.AutoCAD.ApplicationServices.DocumentExtension (for example) In C# - Just ‘using Autodesk.AutoCAD.ApplicationServices;’ is required. If you’ve defined an alias (e.g. ‘using acap = Autodesk.AutoCAD.ApplicationServices;’), then you must also add the ‘using Autodesk.AutoCAD.ApplicationServices;’ . ]
.NET API Adding new Features to the existing .NET API “JayPeak” Focus Areas Adding new Features to the existing .NET API Refactor DBX/ARX code to support .NET API implementation There are two distinct focus area for this release of Civil 3D - Adding new Features to the existing .NET API to make the .NET API features more complete. Refactor DBX/ARX code to support .NET API implementation - These changes will be invisible to the user. Nothing on civil split will affect API users / developers.
API Wishlist Survey Results : 2011 Developer requests are driving our priorities This slide shows the result of Civil 3D API wishlist survey done in this year. Some of you or All of you present here, might have participated in the Survey response. If anyone missed it, I would request do participate in this and let us know what you want to see in Civil 3D API features. It’s clear from this year’s Survey result, Points and Labels were among the most requested API features and we are trying to address both these areas in this particular release of Civil 3D. Part of the Labels APIs were already exposed in 2012 release of Civil 3D; in this release we are trying to add the missing Labels related functionalities.
New API Features .NET API COGO Points Labels Additional Surface Interfaces Namespace Simplification Feature area removed from namespace. Before (Pre ‘JayPeak’) : Autodesk.Civil.Land.DatabaseServices Now : Autodesk.Civil.DatabaseServices This slide shows an overview of New API Features and Changes in Civil 3D .NET API. I am going to talk about the individual features in the subsequent slides.
JayPeak API Changes Migrating Civil 3D applications Feature area removed from namespace. Before (Pre ‘JayPeak’) : Autodesk.Civil.Land.DatabaseServices Now : Autodesk.Civil.DatabaseServices In Jaypeak, we removed all the feature/domain levels(Land, Pipenetwork, Corridor, etc) from all the namespaces. The purpose is to eliminate questions about where specific types should be implemented. Certain types may be used by more than one feature, and some new features might rise the question whether a new namespace should be created or an existing one reused. The new structure will eliminate this kind of questions.
New .NET API Features COGO Point Object Point Group Object COGO Points COGO Point Object Point Group Object Point Group Queries User Defined Properties for Points COGO Point object (CogoPoint class) : Coordinate Geometry (COGO) points are now exposed. You can access/modify all COGO point properties, including styles and labels. Point Groups (PointGroup class): Point Groups are now exposed. You can access/modify all point group properties. CivilDocument.PointGroups is the collection of all point groups in the drawing. CogoPoint.PrimaryPointGroupId indicates the point group a CogoPoint belongs to. Point Group Queries: Standard and custom point group queries are exposed: StandardPointGroupQuery and CustomPointGroupQuery classes. User Defined Properties User-defined properties are exposed. You can create/modify UDPs, and they can be set on CogoPoint objects. The collection of all user-defined properties defined in a drawing is accessed via the CivilDocument.PointUDPs property. Description Keys: Description keys are exposed with the PointDescriptionKey class. The collection of all point description key sets in a drawing is accessed with the static PointDescriptionKeySetCollection.GetPointDescriptionKeySets() method.
New .NET API Features Sampleline&Section&SectionView Label Labels : Sampleline&Section&SectionView Label General Label Intersection Label Parcel Label PipeNetwork Label Plan Product Label Catchment Label Some of the New Labels related API functionalities are : Sampleline, Section, and SectionView labels: SectionViewDepthLabel, SectionViewOffsetElevationLabel, SectionProjectionLabel, SectionLabelSetItem, SectionSegmentLabelGroup, SectionGradeBreakLabelGroup, SectionDataBandLabelGroup, SectionSegmentBandLabelGroup, SampleLineLabelGroup. General labels: NoteLabel, GeneralSegmentLabel Intersection Label: IntersectionLocationLabel Pipe labels are exposed: PipeLable, SpanningPipeLable, PipeProfileLabel, PipeSectionLabel, SpanningPipeProfileLabel, StructureLabel, StructureProfileLabel and StructureSectionLabel classes. Catchment labels are exposed: CatchmentAreaLabel and FlowSegmentLabel. Parcel Area Labels are exposed (ParcelAreaLabel class). These labels are obtained from the Parcel.GetAvailableParcelAreaLabelIds() method.
New .NET API Features CivilDocument Civil Document Improvements : New method that will allow us to access a CivilDocument object from a Database object. Database db = Application.DocumentManager.MdiActiveDocument.Database; CivilDocument civildoc = CivilDocument.GetCivilDocument(db); In Jay Peak, we will expose a new method that will allow you to access a CivilDocument object from a Database object, which will simplify the way you can write code that needs to access multiple documents. Something like: Database db = Application.DocumentManager.MdiActiveDocument.Database; CivilDocument civildoc = CivilDocument.GetCivilDocument(db);
More Code Samples Additional Samples Planned for FCS Use of Surfaces Use of Points
Civil 3D Exchange Store Using the same mechanism of AutoCAD Deploy at ApplicationPlugins folder Rules defined by PackageContents.xml Compatible with applications Do not yet support subassemblies, templates, etc Compatible with 2012+ Online submission of applications
Civil 3D API – Developer Center and Blog I am sure all of you are aware of the Civil 3D Developer Center Page which we update periodically. In the recent past we have added new API training videos and Civil Database snoop tools. This year, one of our colleagues from Civil 3D engineering team – Isaac Rodriguez has started a Blog on Civil 3D API and he shares some insight and posts useful topics. Here is a screenshot of the “Civilized Development” blog page. You can visit http://civilizeddevelopment.typepad.com for more details.
Beta Release Plan Timeline Beta Availability November (end) Beta 1 January Beta 2 January (end) / Feb. Beta 3 March RTM / RC April FCS
Nondisclosure Agreement Today’s discussion is covered under your ADN Agreement with Autodesk. The information we will be providing is highly confidential, and is to be shared within your company on “need to know basis” and to no one outside your company. Autodesk makes no guarantees that anything presented or discussed will actually appear in the future.
Connecting the Pieces The whole is greater then the parts The parts are increasingly not viable on their own
Connecting the Pieces
Autodesk, AutoCAD, Alias, Autodesk Inventor, Inventor, Maya, Mudbox, and 3ds Max are registered trademarks or trademarks of Autodesk, Inc., and/or its subsidiaries and/or affiliates in the USA and/or other countries. Academy Award and Oscar are registered trademarks of the Academy of Motion Picture Arts and Sciences. mental ray is a registered trademark of mental images GmbH licensed for use by Autodesk, Inc. 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. © 2011 Autodesk, Inc. All rights reserved.