Tengo Civil 3D 2012 con ArcGIS for AutoCAD 300. Quiero leer las extensiones de un polígono en el dibujo. Clase de entidad en A4A300 = Límites, la capa CAD es PROP-BNDY, solo hay un polígono en esa capa ya que es el perímetro del sitio. ¿Tengo que convertir el polígono a un shapefile temporal, leerlo y luego borrarlo? Voy a utilizar las extensiones del límite más una constante en todas direcciones para recortar imágenes ráster. El proceso no debe implicar la entrada del usuario. Tengo 30 directorios por los cuales voy a iterar, un archivo de dibujo en cada directorio y un polígono en cada dibujo. Tengo los rutinas en python para crear una lista de directorios que tienen los archivos *map.dwg adentro y estoy familiarizado con recortar los ráster, simplemente no puedo encontrar cómo leer las extensiones del polígono en el archivo dwg. ¡Se agradece mucho tu ayuda!
Respuestas
¿Demasiados anuncios?Como has sugerido, tendrás que convertir la característica de polígono CAD a una clase de entidad o capa de entidad GIS, luego puedes usar arcpy para obtener la extensión de la geometría.
Primero, para crear una capa temporal/en memoria puedes usar la función Make Feature Layer, mira el código de ejemplo abajo:
polyCAD = "C:\\Temp\\xyz.dwg\\Polygon"
lyr = "Polygon_Layer"
# Proceso: Crear una capa de entidad utilizando una expresión
arcpy.MakeFeatureLayer_management(polyCAD, lyr, "\"Layer\" = 'PROP-BNDY'")
Alternativamente, si quieres que la capa temporal sea convertida a un archivo temporal real podrías usar Feature Class to Feature Class.
Para ambos casos entonces puedes obtener la extensión de la capa utilizando el método getExtent():
lyr.getExtent()