Advanced deepclone API in AutoCAD®

Slides:



Advertisements
Similar presentations
© 2011 Autodesk AutoCAD LT ® 2012 Whats New. © 2011 Autodesk AutoCAD LT 2012 | Experience Productivity With AutoCAD LT ® 2012 software, incremental improvements.
Advertisements

© 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.
© 2012 Autodesk Using.NET in the Land of NOD James E. Johnson Application Developer for Synergis Software.
© 2011 Autodesk Charging on from Schematics to Panels in AutoCAD ® Electrical (MA4757-L) Todd Schmoock Solutions Engineer - Synergis Technologies, Inc.
© 2011 Autodesk Precast Concrete Industry Extensions for Autodesk® Revit® Structure 2012 Reinhard Lackner General Manager, IDAT.
© 2012 Autodesk Get Your Head into the Cloud: How to Make Digital Asset Management Work for You Oscar R. Cantu’ Topcon University.
© 2011 Autodesk Organize and Manage Your Intellectual Property with Autodesk® Vault Workgroup Projects Pascal Le Guellec Market Development Consultant,
Using Geotechnical Data in AutoCAD® Civil 3D
© 2012 Autodesk M5935-V Integrating SAP® with AutoCAD® Bill Svokos CIDEON consultant SAP PLM.
© 2012 Autodesk CP Autodesk® 3ds Max®.NET API Introduction and Techniques Kevin Vandecar Principal Developer Consulting Engineer – M&E Autodesk Developer.
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.
© 2012 Autodesk AutoCAD ® Map 3D 2013 What’s New Lynda Sharkey Technical Marketing Manager.
© 2011 Autodesk Suites and CAD Managers Jerry Milana Autodesk Consulting.
© 2010 Autodesk Autodesk Structural Curriculum 2013 Unit 1: Introduction to Structural BIM Building Information Modeling.
© 2011 Autodesk Automating Autodesk® Revit® Server Rod Howarth Software Development Manager – Bornhorst + Ward.
© 2012 Autodesk AC2724 – 2D Parametrics in AutoCAD® and Why You Need to Use Them Rick Ellis President, Cadapult Software Solutions
© 2011 Autodesk Publishing Infrastructure Data to Map Books GS3341 Andy Morsell, P.E. Consultant Autodesk Global Services Utilities & Telecom Consulting.
© 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.
© 2011 Autodesk Autodesk® Revit® MEP: Fast Families for Engineers David Butts BIM Specialist – Gannett Fleming.
© 2011 Autodesk CP Leveraging ActiveX® Libraries with AutoLISP® Lee Ambrosius – Autodesk, Inc. Sr. Technical Writer – PSEB User Assistance.
Scripting Components for AutoCAD Plant 3D
© 2011 Autodesk CP5239 Demand-Loading AutoCAD®.NET Plug-ins James E. Johnson Synergis Software Sr. CAD Developer.
© 2012 Autodesk Implementing Cloud-Based Productivity Solutions with the AutoCAD® ObjectARX® API Ravi Krishnaswamy Senior Software Architect.
© 2011 Autodesk SE4186: Getting Productive with Autodesk Revit ® Structure David Bleiman CEO, Rutherford & Chekene.
© 2011 Autodesk MA4299: A Sneak Peek into the Manufacturing Simulation Future Peter Maxfield Principal User Experience Designer.
© 2012 Autodesk Autodesk 360 Jerry Campbell VDC Consultant.
© 2011 Autodesk High-End Infrastructure Modeling with Low-Cost Tools: Introducing AutoCAD® Map 3D 2012 Bradford Heasley, GISP Vice President, Brockwell.
© 2011 Autodesk Making Dirt Look Good: Autodesk ® Civil View Kristina Bollin Technical Specialist, U.S. CAD.
© 2012 Autodesk BIM on an Etch a Sketch Jose Guia Janitor extraordinaire
© 2011 Autodesk CM D Standards : New Thinking Allan Chalmers – Kempe Engineering Kevin J. Smedley – Engineering Design Systems, Inc.
© 2011 Autodesk Mechanical Simulation in AutoCAD ® 2012 Craig A. Miller – Pennsylvania College of Technology CAD Technology Specialist.
© 2012 Autodesk Project Architect-Times-a-Changing: How to transition from yesterday to today Christopher Ozog Project Architect.
© 2011 Autodesk DM2480: Maximizing Autodesk ® Vault Verticals (Workgroup, Collaboration and Professional) Allen Gager KHS USA, Sarasota FL Image courtesy.
© 2012 Autodesk Dirty Laundry: Cleaning Up Your Sheets with AutoCAD® Sheet Set Manager Tim Douglas Boise Sales Manager at ProSoft.
© 2011 Autodesk Managing Your AutoCAD®/RealDWG® Model Memory Footprint for Better Performance Bill Adkison MarinCAD Software Engineering CP4286-U November.
© 2012 Autodesk Matthew Stuver, LEED AP BD+C BIM Manager Dynamix Engineering Ltd. MP1425-R: AU2012 AutoCAD® Revit® MEP Family Reunion.
Multi-Threading WPF Inside of AutoCAD
© 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.
© 2012 Autodesk Autodesk Structural Curriculum 2013 Unit 2: User Interface Autodesk® Revit® Structure Software User Interface.
© 2011 Autodesk MA5737 – Mechanical Advantage: Using AutoCAD Mechanical for 2D Legacy and 3D Model Documentation Mark Flayler Senior Application Expert.
© 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.
© 2011 Autodesk Managing Your Standards and Reusable Content with AutoCAD Tool Palettes – Revealed! Matt Murphy Director of Content Management and Development.
© 2012 Autodesk MP2005 Autodesk Revit Architecture Room Data and AutoCAD MEP: You Did What with the Xdata? Jeff Campbell Senior Applications Specialist,
© 2012 Autodesk AutoCAD® API.NET Tips and Tricks James E. Johnson Application Developer for Synergis Software.
© 2014 Autodesk What’s New in Autodesk ® Advance Steel 2015 Presenter Name Presenter Title.
© 2012 Autodesk From Nothing to Something using AutoCAD ® Electrical Todd Schmoock Solutions Engineer - Synergis Technologies, Inc.
© 2012 Autodesk Adding Instrumentation and Electrical Capabilities to Autodesk® Plant Design Suite Andy Bonfield.
© 2011 Autodesk Importing the Most Useful Data Into Survey in AutoCAD Civil 3D 2012 Russ Nicloy Civil Applications Engineer.
© 2013 Autodesk Autodesk Upgrade Discontinuation Presenter Name Presenter Title 2013.
Join us on Twitter: #AU2014. Class summary text goes here Class summary.
© 2011 Autodesk Showcase your Inventor Models David Edward Gaskill CAD Designer or
Join us on Twitter: #AU2013 Building Well-Performing Autodesk® AutoCAD® Applications Albert Szilvasy Software Architect.
© 2012 Autodesk Have a tablet? The handout is available for iBooks, Kindle, and Adliko.
© 2012 Autodesk Customizing AutoCAD P&ID David Wolfe Process and Power Specialist.
© 2012 Autodesk The Picture Says It All: Commercial Site Plan 3D Visualizations Using Autodesk® IDS John Sayre Civil Application Engineer.
© 2012 Autodesk Autodesk Structural Curriculum 2013 Unit 3: Modeling for Building Structures Building Information Modeling.
© 2012 Autodesk Collaboration Systems – It’s good to share Martin Duke Business Systems Manager.
© 2011 Autodesk Painless Productivity Programming with the AutoCAD Action Recorder – Revealed! Matt Murphy Director of Content Management and Development.
© 2012 Autodesk Gordon Luckett – Municipal Asset Management with Autodesk® Software Gordon Luckett GIS Consultant, Developer.
© 2012 Autodesk From CAD to Awesome: AutoCAD® and Autodesk® SketchBook® Designer Guillermo Melantoni Product Line Manager: Personal Design & Fabrication.
Developer Days Online Share.
MA9520 – Crossing the Rubicon: Migrating from AutoCAD to Autodesk Inventor Mark Flayler Senior Application Expert – IMAGINiT Technologies.
Check Out These ‘Suite’ Workflows
CM1847 Migrating AutoCAD Standards to Revit
Presentation transcript:

Advanced deepclone API in AutoCAD® Cyrille Fauvel Autodesk Developer Network ADN Sparks Manager

Class Objective You learn We do not discuss and assume knowledge of AutoCAD deepClone API and cloning techniques Benchmarks, performance and implementation considerations Aspects of controlling cloning operations in AutoCAD We do not discuss and assume knowledge of How to program in .NET or ObjectARX The basics of the AutoCAD .Net or ObjectARX API AutoCAD product usage This is a class for programmers who already have some familiarity with both the .NET Framework, the AutoCAD .NET API and ObjectARX. We will be looking at using the AutoCAD deepClone API to work programmatically with objects.

About the Presenter Cyrille Fauvel Autodesk Developer Network Cyrille is a member of the M&E workgroup of the Autodesk Developer Network (ADN) team, providing developer support, training, and conference presentations on AutoCAD, RealDWG, Inventor, Maya, 3ds Max, FBX API. He joined Autodesk in 1994 as an AutoCAD developer based in Switzerland and California, USA. Later moved to the Developer Support group, and Consulting division. Cyrille graduated in Mechanics and Electronics in France, worked as a teacher and C++ developer for a 3rd party developer on AutoCAD. He is fluent in six programming languages, tries to learn Japanese which turns out to be more difficult than learning English, has two kids, plays the guitar and piano, likes reading, love sailing on oceans, sports, and especially hand-ball. I have been working with AutoCAD APIs for over twenty years. A key part of my job is to support communication between external plug-in developers and our engineering to help the later create the APIs that the former need to write really cool add-in applications. I learned programming by myself, because when I was young and bought my first computer, I was short of money to buy games. So I had to wrote them myself ;) Now it is like an hobby, can’t get rid of it,

Autodesk Developer Network 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 Based on user level www.autodesk.com/joinadn Some of you may be unfamiliar with ADN. The Autodesk Developer Network is a program providing professional support to programmers writing add-in applications for Autodesk software. If you think the program benefits listed here would be useful to you, then visit this URL and read more about it. You don’t have to be a commercial software developer to join ADN.

Agenda 1 2 3 4 5 Overview Basics API A concrete example Cloning! What is it? Why should I care? 2 Basics Shallow Clone, deep Clone & wblock Clone Who is using cloning? 3 API Cloning and ID Translations ObjectARX or .Net? 4 A concrete example Modify the default AutoCAD behavior 5 Additional information Inspect, spy, learning more

Overview Cloning! What is it? Why should I care?

Cloning Cloning in biology is the process of producing similar populations of genetically identical individuals that occurs in nature when organisms such as bacteria, insects or plants reproduce asexually. Cloning in biotechnology refers to processes used to create copies of DNA fragments (molecular cloning), cells (cell cloning), or organisms. The term also refers to the production of multiple copies of a product such as digital media or software. The term clone is derived from κλῶνος, the Greek word for "trunk, branch", referring to the process whereby a new plant can be created from a twig. In horticulture, the spelling clon was used until the twentieth century; the final e came into use to indicate the vowel is a "long o" instead of a "short o". Since the term entered the popular lexicon in a more general context, the spelling clone has been used exclusively.

Cloning (disambiguation) Cloning is the process of making an identical copy of something. Cloning may also refer to: Cloning (programming), the copying of a programming object Disk cloning, the copying of the contents of a computer hard disk to a storage medium or file Phone cloning, the transfer of identity between one mobile telephone and another Reduplication, aka "cloning", in linguistics refers to a process by which the root or stem of a word is repeated Molecular cloning, the process of identifying and isolating a specific gene

Cloning Clone is not Copy For this presentation Clone = make a new instance of an object which has the same property’ values of the original object Copy = copy the value of an object property

First user is AutoCAD AutoCAD uses deepClone and/or wblock Copy, Mirror, Array operations Wblock operations Insert operations Explode operation Copy & Paste Entity drag operation Reference editing … Any other plug-ins which want to control cloning operations to: Prevent clones Make sure objects required for a clone will be present Maintain the integrity of a user defined structure across AutoCAD commands

Basics Shallow Clone, Deep Clone & Wblock Clone Who is using cloning?

Cloning methods Shallow Cloning Deep Cloning Wblock Cloning Copy of a singleton ObjectARX C++ object AcRxObject::clone() RTTI and C++ object copy copyFrom() to copy properties Deep Cloning clones an object and its hard/soft ownership references but do not clone hard/soft pointer referenced objects however, copies the pointer reference values Wblock Cloning clones an object and its hard owner and hard pointer references but ignores any soft references and reset non cloned references to null

First user is AutoCAD AutoCAD uses deepClone and/or wblock Copy operations deepClone Wblock operations wblock Insert operations deepClone (insert) Copy & Paste Wblock & deepClone (insert) Entity drag operation …

'Ownership' and 'Pointer References' 4 types Combination of [ Hard or Soft ] and [ Ownership or Pointer ] Hard Reference required for the object to survive in a database Soft Reference not required (can be ignored depending of the context) Ownership Parent – Child relation ship Pointer Cooperative object the object is referencing for its definition

References ObjectARX .Net No custom objects in .Net AcDbHardOwnershipId AcDbSoftOwnershipId AcDbHardPointerId AcDbSoftPointerId .Net ObjectId No custom objects in .Net Use overrules instead Cloning reference logic follows reference found in the filing protocol dwgInFields() / dwgOutFields()

Object ownership Object Object’ Ext. Dict. Hard Owner Soft Owner Dictionary Object Dictionary Object Object Object Object Hard Owner Soft Owner Hard Pointer Soft Pointer

Entity ownership Entity Sub Entity Sub Entity Sub Entity Sub Entity Hard Owner Soft Owner Hard Pointer Soft Pointer

Can we get things more complicated? Entities are objects Entity or BTR Ext. Dict. Sub Entity Object’ Sub Entity Object’ Ext. Dict. Sub Entity Object’ Sub Entity or Entity Object’ Dictionary Object Dictionary Ext. Dict. Ext. Dict. Ext. Dict. Object Object Object Object Dictionary Dictionary Dictionary Object Object Object Dictionary Dictionary Dictionary Hard Owner Object Object Object Object Object Object Soft Owner Object Object Object Object Object Object Hard Pointer Soft Pointer

A DWG database DWG Block Tbl Layer Tbl … NOD BTR LTR … Dictionary BTR Object Dictionary Entity Entity Object Entity Object Entity Object Object Hard Owner Soft Owner Hard Pointer Soft Pointer

Extension dictionary Using extension dictionary can simplify a lot cloning operations, because: The object hard ‘owns’ it extension dictionary versus having to reference an object in the NOD deepClone will find & clone it Wblock will find & clone it as well The extension dictionary hard ‘owns’ its elements deepClone will clone its elements Wblock will clone them as well Sounds a good solution to avoid to think about cloning. Well consider the following: Each DWG object is about ~300b footprint An object with an extension dictionary and an 1 object in it is ~ 1k Make a DWG 3 times bigger with no useful data in yet

Cloning phases Default cloning phase Application cloning phase AutoCAD clones objects by following the ID references Application cloning phase AutoCAD may give control to a plug-in to do additional cloning and will follow the ID references as required ID translation phase AutoCAD translate clone IDs to new ID & handles for object in ‘Flux’

In Flux Clones in ‘Flux’ mode, means object being cloned, versus created and mapped to an original object Requires ID translation You cannot intervene during this ID translation process process Use the AcRxEventReactor class for monitoring activities and steps

Primary object If the key object is part of the primary set of objects cloned An object can tell if it's being cloned by referencing or not That's what the isPrimary flag is all about

Cloning contexts kDcCopy / _COPY, _MIRROR, _ARRAY, Drag’n Drop kDcExplode / _EXPLODE kDcBlock / _BLOCK kDcXrefBind / _XREF, _-BIND kDcSymTableMerge / _IGESIN, _DXFIN, _XREF, _-ATTACH kDcInsert / _INSERT, _PASTECLIP, Drag’n Drop kDcWblock / _WBLOCK, _COPYCLIP, _DXFOUT kDcObjects / _BLOCK, _REFEDIT, _REFCLOSE kDcXrefInsert / _XREF _-INSERT kDcInsertCopy kDcWblkObjects / _REFEDIT, _REFCLOSE

AcDbObject::deepClone() AcDbObject::wblockClone() Never use AcDbObject::deepClone() or AcDbObject::wblockClone() directly You are missing the context But you can call them in custom object implementation or reactors Instead use Within the same database AcDbDatabase::deepCloneObjects() Across databases AcDbDatabase::wblockCloneObjects() AcDbDatabase::wblock() AcDbDatabase::insert()

API Cloning and ID Translations ObjectARX or .Net?

AcDbDatabase Autodesk.AutoCAD.DatabaseServices.Database ObjectARX and .Net Use these to start a cloning operation void abortDeepClone(AcDbIdMapping&); Acad::ErrorStatus deepCloneObjects(AcDbObjectIdArray&, AcDbObjectId&, AcDbIdMapping&, bool); void forceWblockDatabaseCopy(); Acad::ErrorStatus insert(AcDbObjectId&, const ACHAR*, AcDbDatabase*, bool); Acad::ErrorStatus insert(AcDbObjectId&, const ACHAR*, const ACHAR*, AcDbDatabase*, bool); Acad::ErrorStatus insert(const AcGeMatrix3d&, AcDbDatabase*, bool); Acad::ErrorStatus wblock(AcDbDatabase*&); Acad::ErrorStatus wblock(AcDbDatabase*&, AcDbObjectId); Acad::ErrorStatus wblock(AcDbDatabase*&, const AcDbObjectIdArray&, const AcGePoint3d&); Acad::ErrorStatus wblock AcDbDatabase*, const AcDbObjectIdArray&, const AcGePoint3d&, AcDb::DuplicateRecordCloning); Acad::ErrorStatus wblockCloneObjects(AcDbObjectIdArray&, AcDbObjectId&, AcDbIdMapping&, AcDb::DuplicateRecordCloning, bool);

AcRxEventReactor / AcEditorReactor Autodesk. AutoCAD. DatabaseServices AcRxEventReactor / AcEditorReactor Autodesk.AutoCAD.DatabaseServices.Database ObjectARX and .Net void beginDeepClone(AcDbDatabase*, AcDbIdMapping&); void beginWblockObjects(AcDbDatabase*, AcDbIdMapping&); void beginInsert(AcDbDatabase*, const AcGeMatrix3d&, AcDbDatabase*); void beginInsert(AcDbDatabase*, const ACHAR *, AcDbDatabase*); void beginWblock(AcDbDatabase*, AcDbDatabase*); void beginWblock(AcDbDatabase*, AcDbDatabase*, AcDbObjectId); void beginWblock(AcDbDatabase*, AcDbDatabase*, const AcGePoint3d*&); void wblockNotice(AcDbDatabase*); void otherInsert(AcDbDatabase*, AcDbIdMapping&, AcDbDatabase*); void otherWblock(AcDbDatabase*, AcDbIdMapping&, AcDbDatabase*); void beginDeepCloneXlation(AcDbIdMapping&, Acad::ErrorStatus*); void endDeepClone(AcDbIdMapping&); void endWblock(AcDbDatabase*); void abortDeepClone(AcDbIdMapping&); void abortWblock(AcDbDatabase*); void abortInsert(AcDbDatabase*); Acad::ErrorStatus veto();

RefEdit RefEdit uses the wblock() mechanism Checkout Checkin Only modified objects will be clones in checkin See the AcApLongTransactionReactor class void beginCheckOut(AcDbLongTransaction&, AcDbObjectIdArray&); void endCheckOut(AcDbLongTransaction&); void beginCheckIn(AcDbLongTransaction&); void endCheckIn(AcDbLongTransaction&); void abortLongTransaction(AcDbLongTransaction&); Acad::ErrorStatus veto();

Custom objects ObjectARX Only API Sealed in ARX now AcDbObject Autodesk.AutoCAD.DatabaseServices.DBObject .Net implements these method, but you cannot override them You can call them in a cloning context/operation API Sealed in ARX now Acad::ErrorStatus deepClone(AcDbObject*, AcDbObject*&, AcDbIdMapping&, Adesk::Boolean) const; Acad::ErrorStatus wblockClone(AcRxObject*, AcDbObject*&, AcDbIdMapping&, Adesk::Boolean) const; Use the subXXX() version instead Acad::ErrorStatus subDeepClone(AcDbObject*, AcDbObject*&, AcDbIdMapping&, Adesk::Boolean) const; Acad::ErrorStatus subWblockClone(AcRxObject*, AcDbObject*&, AcDbIdMapping&, Adesk::Boolean) const;

Overrule API Overrules registered on per class basis Can ‘modify’ PEX protocol See ‘CP230-1V - .Net Overrule API’ for details Can ‘modify’ Draw aspect, Grips, Avoid the need of a custom object

Available overrules PropertiesOverrule DrawableOverrule OsnapOverrule TransformOverrule GripOverrule SubentityOverrule HighlightOverrule GeometryOverrule ObjectOverrule

Overrule API ObjectARX and .Net AcDbObjectOverrule Acad::ErrorStatus deepClone(const AcDbObject*, AcDbObject*, AcDbObject*&, AcDbIdMapping&, Adesk::Boolean); Acad::ErrorStatus wblockClone(const AcDbObject*, AcRxObject*, AcDbObject*&, AcDbIdMapping&, Adesk::Boolean); Autodesk.AutoCAD.DatabaseServices.ObjectOverrule DBObject DeepClone(DBObject, DBObject, IdMapping, [MarshalAs(UnmanagedType.U1)] bool); DBObject WblockClone(DBObject, RXObject, IdMapping, [MarshalAs(UnmanagedType.U1)] bool);

A concrete example Modify the default AutoCAD behavior

ARXCloning sample CLONE1 command CLONE2 command CLONE3 command Performs a shallow clone of a non-database resident object. CLONE2 command Performs a shallow clone of a database resident object into the same database CLONE3 command Performs a shallow clone of a database resident object to another DWG database Very basic code one simple object such as a line or circle.

OPLine project OPLine1 OPLine2 OPLine3 Custom entity derived from AcDbPolyline And a companion custom object derived from AcDdBObject stored in the NOD OPLine2 Try to replicate the above structure without custom object but using reactors instead OPLine3 Same but using the new overrule API

Bonus The deepClone Inspector tool Monitors deepClone activity in AutoCAD Record object status and cloning steps Shows primary and secondary clones Displays a diagram of the structures (original and clones) Displays differences between the original and target databases

Additional information Inspect, spy, learning more

Learning more CP230-1V - .Net Overrule API CP240-2V AutoCAD .NET: Practical Examples of Customizing AutoCAD Entity Behavior Stephen Preston – Autodesk, Inc.

Learning more AutoCAD API Online Help, Developer's Guide and SDK Samples AutoCAD Developer Center http://www.autodesk.com/developautocad Free DevTV for .NET API Webcasts and Trainings on Programming and News http://www.adskconsulting.com/adn/cs/api_course_sched.php > AutoCAD API Through the Interface http://through-the-interface.typepad.com

Materials Handout Presentation Sample code and models AU10_CP220-3C_ARX_Cloning_2011_API.docx Presentation AU10_CP220-3C_ARX_Cloning_2011_API.pptx Sample code and models AU10_CP220-3C_ARX_Cloning_2011_API.zip

Thank you! cyrille.fauvel@autodesk.com

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.

DWG Block Tbl Layer Tbl … NOD BTR LTR … Dictionary BTR LTR … Object Entity Entity Object Entity Object Entity Object Object Object Entity Object’ Ext. Dict. Sub Entity Sub Entity Sub Entity Sub Entity Dictionary Object Dictionary Hard Owner Soft Owner Object Object Object Hard Pointer Object Soft Pointer