anderson.scottglen
2007-03-05, 11:46 PM
My company just got a few huge GIS base map file full of polylines and no text for a few counties. Navigating it for the linework you need is an ordeal, especially if you're not familiar with the area. There is data stored within the polylines however, I've attached an image of the properties pane to clarify. I'm not familiar with dictionary entities, but I don't think this applies. I did a (ssget '((0 . "DICTIONARY"))) and it returned nil, but I could still be wrong, sure.
What I would simply like to do is write a routine to prompt for a string (street name), wildcard search the STREETNAME field for matches, add those matches to a selection set and perform a zoom object on that set. That plan might need tweaking, but that's where I'd start.
An (entget (car (entsel))) on the polyline in the image returns this data, so I am unsure of how to proceed:((-1 . <Entity name: 7d4a6140>) (0 . "LWPOLYLINE") (5 . "6E1B0")
(102 . "{ACAD_XDICTIONARY") (360 . <Entity name: 7d4a6148>) (102 . "}") (330 .
<Entity name: 7bd9acf8>) (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 .
"PC_Roads") (100 . "AcDbPolyline") (90 . 17) (70 . 0) (43 . 0.0) (38 . 0.0) (39
. 0.0) (10 6.75329e+006 2.06806e+006) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10
6.75328e+006 2.06813e+006) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10 6.75328e+006
2.06815e+006) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10 6.75328e+006 2.06816e+006)
(40 . 0.0) (41 . 0.0) (42 . 0.0) (10 6.75328e+006 2.06818e+006) (40 . 0.0) (41
. 0.0) (42 . 0.0) (10 6.75328e+006 2.0682e+006) (40 . 0.0) (41 . 0.0) (42 .
0.0) (10 6.75328e+006 2.06822e+006) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10
6.75328e+006 2.06824e+006) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10 6.75328e+006
2.06826e+006) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10 6.75328e+006 2.06828e+006)
(40 . 0.0) (41 . 0.0) (42 . 0.0) (10 6.75328e+006 2.0683e+006) (40 . 0.0) (41 .
0.0) (42 . 0.0) (10 6.75328e+006 2.06833e+006) (40 . 0.0) (41 . 0.0) (42 . 0.0)
(10 6.75328e+006 2.06835e+006) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10
6.75328e+006 2.06837e+006) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10 6.75328e+006
2.06839e+006) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10 6.75328e+006 2.06841e+006)
(40 . 0.0) (41 . 0.0) (42 . 0.0) (10 6.75328e+006 2.06843e+006) (40 . 0.0) (41
. 0.0) (42 . 0.0) (210 0.0 0.0 1.0))
This leads me to believe this is beyond the capabilities of LISP, but I don't know where to look. That's all I'm asking for really. Thanks!
What I would simply like to do is write a routine to prompt for a string (street name), wildcard search the STREETNAME field for matches, add those matches to a selection set and perform a zoom object on that set. That plan might need tweaking, but that's where I'd start.
An (entget (car (entsel))) on the polyline in the image returns this data, so I am unsure of how to proceed:((-1 . <Entity name: 7d4a6140>) (0 . "LWPOLYLINE") (5 . "6E1B0")
(102 . "{ACAD_XDICTIONARY") (360 . <Entity name: 7d4a6148>) (102 . "}") (330 .
<Entity name: 7bd9acf8>) (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 .
"PC_Roads") (100 . "AcDbPolyline") (90 . 17) (70 . 0) (43 . 0.0) (38 . 0.0) (39
. 0.0) (10 6.75329e+006 2.06806e+006) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10
6.75328e+006 2.06813e+006) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10 6.75328e+006
2.06815e+006) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10 6.75328e+006 2.06816e+006)
(40 . 0.0) (41 . 0.0) (42 . 0.0) (10 6.75328e+006 2.06818e+006) (40 . 0.0) (41
. 0.0) (42 . 0.0) (10 6.75328e+006 2.0682e+006) (40 . 0.0) (41 . 0.0) (42 .
0.0) (10 6.75328e+006 2.06822e+006) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10
6.75328e+006 2.06824e+006) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10 6.75328e+006
2.06826e+006) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10 6.75328e+006 2.06828e+006)
(40 . 0.0) (41 . 0.0) (42 . 0.0) (10 6.75328e+006 2.0683e+006) (40 . 0.0) (41 .
0.0) (42 . 0.0) (10 6.75328e+006 2.06833e+006) (40 . 0.0) (41 . 0.0) (42 . 0.0)
(10 6.75328e+006 2.06835e+006) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10
6.75328e+006 2.06837e+006) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10 6.75328e+006
2.06839e+006) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10 6.75328e+006 2.06841e+006)
(40 . 0.0) (41 . 0.0) (42 . 0.0) (10 6.75328e+006 2.06843e+006) (40 . 0.0) (41
. 0.0) (42 . 0.0) (210 0.0 0.0 1.0))
This leads me to believe this is beyond the capabilities of LISP, but I don't know where to look. That's all I'm asking for really. Thanks!