I want to automate this really simple task:
1. MAPIMPORT a kmz file (with some info that goes into a block)
2. Go to paper space.
3. Go to viewport, zoom extents, use scale down 1:X.
4. Give it an aerial image (GEOMAP, A, GEOMAPIMAGE, V)
When searching the web, I end up with the regular AutoCAD Visual LISP API stuff, but nothing on MAP 3D API.
Am I looking in the wrong place for the answers?
Solved! Go to Solution.
Solved by O_Eckmann. Go to Solution.
This is a common task.
If you upload your KMZ/KML and your Block, the forum can give you step-by-step instructions.
There are too many (way, way, waaay too many) questions that must be asked (and answered by you with solid answers) to give simple a, b, c, .........type answer.
Some questions (not all questions) are:
<<Note: If your block is not suitable for this operation, then a new block will have to be designed or your existing block will need to be modified.>>
As you can see, it'll be faster (way, way faster) if you upload your KMZ and your block.
There is nothing wrong with the manual process, it totally works, I just can't find out how to automate it.
The block is attributed with the "kml_name" in lower case. I wish the block was attenuated, too, but that fix is about 15 seconds, so no big deal.
I guess I am asking if I use LISP for this and where is the API stuff for MAP 3D?
Also, am I looking in the correct area?
Of course there's a streamlined method, it's called MAPIMPORT. And the command (or procedure since it's several clicks and not just one) already exists. That procedure takes 'data' from the KMZ, assuming it's real data to begin with and not something else.
If you do it right, the KMZ's data is harvested (in your case the data it's kml_name) and the data is inserted into your block. Buuut......to insert it correctly you need to disclose whether your block has an attribute.....so the attribute's TAG (or the name of the attribute) can be populated by the correct KMZ data. In other words, HOW (or what settings do you need when running MAPIMPORT) for a specific block to get populated with THIS attribute and not THAT attribute.
The last thing you want is for your KMZ data to be inserted, but not inserted into the right block--blocks in NORTH locations might get populated by data that should be inserted to SOUTH blocks...and blocks in the WEST are being populated by data that belongs to blocks in the EAST.
The MapImport command can do all that and do it accurately with only a few clicks. Explaining HOW-TO is simply hard to explain in a Forum unless you upload a sample of the real-deal data and the actual block you plan to use.
You can even enhance your MapImport by limiting the location the imported data. If you have KMZ data covering 3-square miles, you may only want to limit the import to only 1-square mile and ignore the rest. You can define your 'area' by drawing a plain-vanilla rectangle or square.
You may also segregate your imported blocks by allocating them across several layers, e.g. you have 100 KMZ points and your data indicates 50 are existing utility poles, 40 are proposed utility poles, and 10 are poles to be removed/demolished. Your MapImport can insert and place your blocks on 3 separate layers: existing, proposed, and demo using the existing data.
This single command is flexible, it can be used with other data-rich formats too, such as SDF and shapefile. It can easily be used in four different ways so you wouldn't need four separate lisp routines (SMH!). With high level creativity you could add another dozen ways and with ultra-high-mega-super-duper creatively 2 more dozen on top of that.
Can you share some data?
thanks for this, i had a similar problem and my brain just wasn't braining.
Hi @mmendezJLGA9 ,
1. MAPIMPORT when you've saved your Import Profil
(command "_-MAPIMPORT" "OGCKML" "C:/DATA/FOLDER/FILE.KML" "_Y" "C:/DATA/PROFIL.IPF" "")
2. Go to paper space
(setvar "TILEMODE" 0)
3. Go to viewport, zoom extend, zoom 1:X
(command "_MSPACE")
(command "_ZOOM" "_E")
(command "_ZOOM" "1000/5000X")
4. Geocarte
(command "_GEOMAP" "_A")
(command "_GEOMAPIMAGE" "_V")
(command "_GEOMAP" "_O")
(command "_PSPACE")
Olivier Eckmann
@mmendezJLGA9 wrote:....Am I looking in the wrong place for the answers?
While you digest the other excellent feedback... you may have missed a built in tool that repeats your on screen steps for you that can be recalled and reused often on demand
https://www.autodesk.com/blogs/autocad/action-macros-in-autocad/
HTH
@ChicagoLooper I've been using the MAPIMPORT method for years and just found out about that secret Driver Options... button. Totally a time saver and error reducer.
@O_Eckmann If it was just me, I would totally do this. Also, what is this "OGCKML"?
@pendean I am probably going to try the Action Macro next week.
But...
Here is list of possible format to export
Commande: (command "_-mapimport" "?" "*")
_-mapimport Entrer type de fichier à importer ou ? pour obtenir la liste <ARCINFO>:? Entrer type(s) de fichier dans liste <*>:: * Types de fichier définis.
ASCII_POINT
FDO_SDF
E00
ARCINFO
SHP
FDO_GEN
MITAB
DGN_V7_V8
OGCKML
CITYGML
GML
MIF
SDTS
FDO_SQLITE
DNF
VPF
Olivier Eckmann
Can't find what you're looking for? Ask the community or share your knowledge.