@Cadguru42
Two options. First option uses MAPIMPORT with a plain vanilla AutoCAD annotative block. Second option maintains shapefile symbology and uses the shapefile's Style Editor. Neither option uses AutoLISP.
Option 1:
Use MAPIMPORT command. This command will convert the Shapefile objects into vanilla AutoCAD objects. Since your Feature Class is POINT, you can use a vanilla-ish AutoCAD BLOCK that'll replace the shapefile symbol. You can use an existing block or copy-and-paste one from another drawing (or from your personal block library). An existing block OR a block that's inserted right before MAPIMPORT will create a block definition in your dwg. Without a block definition, you won't be able to substitute an AutoCAD block that can stand-in for a feature class's symbology.
<<Don't confuse a BLOCK with a BLOCK DEFINITION. You may (or may not) delete the block after inserting it and this procedure will still work. Deleting the block doesn't remove the block definition, it merely removes the block symbol from modelspace. If you want to delete a block, first delete the block symbol, then use the PURGE command to delete the block definition.>>
Use MAPIMPORT to import the shapefile. Under the Data column, you may add Object Data (OD). Under the POINTS column, you may insert an annotative block by using 'Create as blocks' option. Then select your block from the dropdown menu. If the block isn't displayed in the dropdown then your drawing doesn't have that specific block definition.
101.jpg
Once MAPIMPORT has been executed, you won't see any blocks. Why? Because the blocks don't have an annotative scale. You'll need to manually give the blocks an annotative scale. When properly scaled, the blocks will react to the annotative scale of your drawing. If you Created Object Data (OD) during the MapImport procedure, you'll be able to see the (OD) when you select a single point and scroll to the bottom of the Properties Palette.
Select All (SA) then give all inserted blocks an annotative scale.
<<Alternatively you may manually insert a dummy block on the target layer=>Select the dummy block=>Right click=>Select similar=>All blocks on the layer will be selected=>Go to Properties Palette=>give all the blocks an annotative scale.>>
102.jpg
This option is the easiest, most straight forward option. It uses blocks instead of shapefile symbols. The size of the blocks are managed by the annotative scale in AutoCAD. If there's a drawback, it's the inability to store data. Yes, a block has attributes, but the shapefile has a database file (dbf) and it's still KING!! With the dbf, you can create a theme, use it to perform analysis, query the data to isolate or customize symbol appearance, and much more.
Option 2:
You can scale the shapefile symbol so it's the same size as your AutoCAD annotative block.
Example: I have an annotative block. The block is shaped like a circle with a radius of 0.05-feet. I would like the shapefile's symbol to be the same size as the annotative block. My modelspace has an annotative scale of 1:30. The calculation begins with the block's radius of 0.05-feet, or the radius used when the block was originally created. Additional variables include the width and height of the symbol that'll make it consistent with an annotative block and annotative scale assigned to modelspace.
Size context=Map
Units=Feet (your units may vary.) For Width and Height use an expression.
<<In a shapefile where points are represented by a circle, Map3D scales the circle using the diameter, not radius.>>
201.jpg
This method uses the symbology of the shapefile. It does NOT use an annotative block. What does this mean? It means the symbols (the circles) do NOT behave like annotative blocks. So.......If you change the drawing scale, for example from 1:30 to 1:80, you'll need to manually edit the FORMULA in the expression.
Chicagolooper
