I created an ObjectDBX for a custom circle, which is derived from AcDbCircle. I have a DWG which contains my custom circle. When I opened this DWG in Navisworks, it only displays the base geometry, circle. The custom geometry is missing. What is going on?
When Navisworks displays AutoCAD entities, it checks if a given object is a AutoCAD entity type. If a custom entity is derived from AutoCAD basic geometry, such as AcDbCircle and AcDbLine, Navisworks identify them as AutoCAD entity, and the custom geometry is ignored: e.g. a custom circle derived from AcDbCircle will be identified as a Circle only. When an OE is NOT loaded successfully, Navisworks uses proxy graphics, which may show the expected graphics.
If the custom entity derives from the abstract entity such as AcDbCurve, AcDbEntity, Navisworks can identify it as a proxy entity, displaying the custom geometry.
Sample DBX Project:
We have attached sample projects that contains a DBX and an ARX modules. There are 4 types custom entities that are derived from AcDbEntity, AcDbCurve, AcDbLine and AcDbCircle.. ARX module has a command “OETest” which creates instances of each custom entity.
When the OE is not loaded correctly, Navisworks displays them and reports the error: Fig.1 and 2.
Figure 1: geometry displayed in Navisworks when OE is not loaded successfully
Figure 2: Scene statistics when OE is not loaded successfully
When the OE is loaded successfully, Navisworks displays them as below and will not report the error: Fig 3 & 4.
Figure 3: geometry displayed in Navisworks when OE is loaded successfully
Figure 4: Scene statistics when OE is loaded successfully
Please refer to the sample for more details. It is written in VS2008 + SP1 and has been tested with AutoCAD 2011.