ACE Plugin Development & Customization 3 — Questions and Answers
Question 1: In AutoCAD's ObjectARX C++ SDK, which class serves as the base class for all custom entity types?
- AcDbEntity (Correct answer)
- AcRxObject
- AcDbObject
- AcGeCurve3d
Correct answer: AcDbEntity
AcDbEntity is the base class that provides drawing, selection, and database persistence behavior for all custom drawable objects in ObjectARX.
Question 2: When using the Autodesk Platform Services (APS) Viewer API, which method is called to load a derivative URN into the viewer?
- viewer.load(urn)
- viewer.loadDocumentNode(doc, viewables[0]) (Correct answer)
- viewer.openModel(urn)
- viewer.initialize(urn, options)
Correct answer: viewer.loadDocumentNode(doc, viewables[0])
loadDocumentNode is the correct method that takes a resolved Document object and a viewable node to display a model in the APS Viewer.
Question 3: In Inventor's iLogic, what language is used by default to write rule code?
- Python
- JavaScript
- VB.NET (Correct answer)
- C#
Correct answer: VB.NET
iLogic rules are written in VB.NET by default, though the environment also supports C# rules via the language selector.
Question 4: What is the role of a 'Ribbon Panel' class in AutoCAD .NET API UI customization?
- It manages the command line interface
- It groups related ribbon buttons and controls within a ribbon tab (Correct answer)
- It defines keyboard shortcuts for commands
- It controls the application's menu bar entries
Correct answer: It groups related ribbon buttons and controls within a ribbon tab
RibbonPanel is a container within a RibbonTab that holds rows of buttons, combo boxes, and other controls organized by functional group.
Question 5: Which APS Data Management API endpoint is used to upload a file to an OSS (Object Storage Service) bucket?
- PUT /oss/v2/buckets/:bucketKey/objects/:objectName (Correct answer)
- POST /data/v1/projects/:projectId/files
- PUT /dm/v1/buckets/:bucketKey/upload
- POST /oss/v2/buckets/:bucketKey/objects
Correct answer: PUT /oss/v2/buckets/:bucketKey/objects/:objectName
The PUT /oss/v2/buckets/:bucketKey/objects/:objectName endpoint uploads file content directly to the named object in the specified OSS bucket.
Question 6: In Revit API, what must be done before modifying a Revit element's parameter value inside a plugin?
- Call element.Unlock() first
- Wrap the modification inside an open Transaction (Correct answer)
- Request write access via Document.RequestWriteAccess()
- Set document.IsReadOnly to false
Correct answer: Wrap the modification inside an open Transaction
All Revit model modifications must occur within an active transaction opened with Transaction.Start() and committed with Transaction.Commit().
Question 7: What is 'throttling' in the context of Autodesk Platform Services REST API usage?
- Compressing API request payloads to reduce bandwidth
- Rate limiting where the server rejects requests exceeding a set quota per time window (Correct answer)
- Caching API responses to avoid duplicate server calls
- Encrypting API tokens before each request
Correct answer: Rate limiting where the server rejects requests exceeding a set quota per time window
Throttling is when the APS API returns HTTP 429 errors because a client has exceeded the allowed number of requests within a defined rate limit window.
In AutoCAD's ObjectARX C++ SDK, which class serves as the base class for all custom entity types?