Entidades de reglas de CityEngine (3D Analyst)

Disponible con una licencia de 3D Analyst.

Resumen

Genera geometrías 3D a partir de entidades de entrada 2D y 3D existentes utilizando reglas creadas en ArcGIS CityEngine.

Uso

  • Las entidades de entrada pueden ser puntos, polígonos o multiparches. @StartRule en el archivo del paquete de reglas de CityEngine (.rpk) debe especificar el tipo de entidad de entrada que se espera: anotación de @InPoint para puntos, @InPolygon para polígonos o @InMesh para entidades multiparche. Si @StartRule no se anota con ninguna de ellas, se presupondrá que el tipo de entidad es polígono. Si se introduce un tipo de geometría inesperado, se mostrará un error.

  • Las entidades de entrada pueden ser capas de entidades simbolizadas mediante un procedimiento. Las reglas de CityEngine generalmente definen varias propiedades (llamadas attrs en CityEngine) que controlan cómo se generan los modelos 3D de salida a partir de las formas de entrada. Por ejemplo, una regla que genera un esqueleto de edificio podría tener un attr de tipo doble para BuildingHeight y un attr de tipo entero para FloorCount. Si la clase de entidad de entrada tiene un campo de atributo con el mismo nombre y tipo de datos que una propiedad de regla de CityEngine, los valores de ese campo de atributo se utilizan automáticamente para generar los modelos de salida. Esta coincidencia automática de las propiedades de las reglas de CityEngine para campos de atributos se denomina asignación de campos predeterminada.

    Si la capa de entidades de entrada está simbolizada con simbología de símbolo único cuyo símbolo contiene una capa de símbolo de procedimiento que hace referencia al mismo paquete de reglas que el paquete de reglas de entrada, la herramienta aplicará las invalidaciones configuradas en la capa de símbolo de procedimiento al crear la salida. De esta manera, la capa de símbolo de procedimiento se puede usar para configurar una asignación de campos personalizada en la que los nombres de campo asignados no coincidan exactamente con los nombres de atributo del paquete de reglas, o para invalidar un atributo del paquete de reglas utilizando un solo valor personalizado. Consulte Simbología controlada por atributos para obtener más información.

  • El valor de parámetro Paquete de reglas es un archivo CityEngine .rpk. Se trata de un archivo comprimido que contiene una regla compilada de CityEngine, así como activos asociados utilizados por dicha regla. El parámetro Exportar formas de hoja solo está disponible si en el paquete de reglas de entrada se indica que se admite esta operación incluyendo la siguiente anotación de CGA: @StartRule @Out (granularity=separatedShapes).

  • Cuando se generan formas de hoja con el parámetro Exportar formas de hoja, se crea un conjunto estándar de clases de entidad en la misma ubicación que la de la clase de entidad multiparche de salida principal y tiene los siguientes formatos de nombre: <outputFC_Points>, <outputFC_MPoints> y <outputFC_Lines>. Todas las clases de entidad de salida contienen un campo de atributo OriginalOID que hace referencia al ObjectID de la entidad de entrada desde la que se generó la salida. El campo OriginalOID se puede utilizar para unir la clase de entidad de salida con la clase de entidad de entrada. Si se generan informes con el parámetro Incluir informes, la clase de entidad de salida también obtendrá un atributo para cada informe.

  • Se agrega un campo OriginalOID a las clases de entidad de salida para que contenga el ObjectID de la entidad de entrada desde la cual se ha generado cada entidad de salida. Si en la clase de entidad de entrada ya hay un campo llamado OriginalOID, se incorpora el nuevo nombre de campo numéricamente, por ejemplo, OriginalOID2.

  • Los errores o advertencias detallados que se producen durante la conversión se escriben en un archivo de registro llamado ArcGISProLog<process ID and GUID>.xml (cuando la herramienta se ejecuta de forma interactiva en ArcGIS AllSource y el registro de diagnóstico está habilitado) o pythonLog<process ID and GUID>.xml (cuando se ejecuta la herramienta utilizando un script de Python independiente y si el registro de diagnóstico está habilitado) en el que <process ID and GUID> es un Id. de proceso y un nuevo GUID se incorpora al nombre del archivo de registro con cada ejecución de la herramienta, por ejemplo, ArcGISProLog-12300~1A9C1C2A-A2CB-41AF-BEB9-1F8CDC4F6D29.xml o pythonLog-2160~807AFBC8-CA35-4370-9F90-4EDB2F9238AE.xml. Este archivo se encuentra en <Install drive>:\Users\<user name>\Documents\ArcGIS\Diagnostics.

Parámetros

EtiquetaExplicaciónTipo de datos
Entidades de entrada

Las entidades de puntos, polígonos o multiparche de entrada. Las entidades de entrada pueden ser capas de entidades simbolizadas mediante un procedimiento. Se respetará la asignación de campos (propiedades de símbolo regidas por atributo).

Feature Layer
Paquete de reglas

El archivo (*.rpk) del paquete de reglas de CityEngine que contiene activos e información de reglas CGA. La regla anotada con @StartRule en el archivo .rpk debe estar anotada con @InPoint para un paquete de reglas destinado a entidades de puntos, con @InPolygon para un paquete de reglas destinado a entidades poligonales o con @InMesh para un paquete de reglas destinado a entidades multiparche. Si @StartRule no se anota con @InPoint, @InPolygon o @InMesh, se presupondrá que el tipo de entidad es polígono.

File
Entidades de salida

Clase de entidad de salida que contiene entidades multiparche con reglas CGA aplicadas. Se agrega un campo OriginalOID a las clases de entidad de salida para que contenga el ObjectID de la entidad de entrada desde la cual se ha generado cada entidad de salida.

Feature Class
Incluir campos existentes
(Opcional)

Especifica si la clase de entidad de salida incluirá los campos de atributos de la clase de entidad de entrada.

  • Activado: Los campos de atributos de la clase de entidad de entrada se incluirán en la clase de entidad de salida. Esta es la opción predeterminada.
  • Desactivado: los campos de atributos de la clase de entidad de entrada no se incluirán en la clase de entidad de salida. Esta opción se utilizará automáticamente si el parámetro Exportar formas de hoja está activado.

Boolean
Incluir informes
(Opcional)

Especifica si la salida incluirá campos de informe adicionales tal como se especifica en el paquete de reglas de procedimiento. En función de la forma en la que se haya creado el paquete de reglas, este puede contener una lógica que genere uno o varios informes a medida que se creen los modelos. Estos informes pueden contener una variedad de información acerca de las entidades. Un ejemplo es un paquete de reglas que informa del número de ventanas que se generan para cada modelo de edificio.

  • Activado: la clase de entidad de salida incluirá nuevos campos de atributos para incluir los valores informados para cada entidad tal como se define en la lógica de generación de informes del paquete de reglas. Se crea un atributo único para cada valor notificado.
  • Desactivado: los informes generados en el paquete de reglas se ignorarán y no se generarán atributos nuevos relacionados con los informes. Esta es la opción predeterminada.

Este parámetro se ignora si el paquete de reglas no contiene una lógica para generar informes.

Boolean
Exportar formas de hoja
(Opcional)

Especifica si cada entidad de entrada se convertirá en una única entidad multiparche fusionada o se convertirá en un conjunto de muchas entidades que pueden ser puntos, líneas o multiparches.

Los paquetes de reglas de CityEngine crean contenido al generar piezas de componentes y fusionarlas en un único objeto 3D. Sin embargo, estos componentes, o formas de hoja, también se pueden almacenar como entidades separadas. Esta opción puede ser especialmente importante a la hora de ejecutar operaciones de análisis utilizando subelementos de un objeto 3D, como las ventanas de un edificio.

Por ejemplo, una regla puede generar modelos de edificio sin interrupciones a partir de huellas de polígono de entrada, o bien crear entidades individuales para cada pared del apartamento, incluido un panel que mira hacia afuera, un punto central representativo y líneas que representan los bordes. En este ejemplo, los paneles del apartamento, los puntos centrales y los contornos se consideran formas de hoja.

  • Activado: se generarán clases de entidad de salida adicionales. Los campos de atributos de la clase de entidad de entrada no se incluirán en la clase de entidad de salida. La clase de entidad de salida contendrá un campo con el nombre OriginalOID, que hace referencia al ObjectID de la entidad de entrada desde la que se generó la salida.
  • Desactivado: no se generarán clases de entidad de salida adicionales, ni siquiera si se definen formas de hoja adicionales en la lógica de la regla. Toda la geometría estará contenida dentro de las entidades multiparche de salida. Esta es la opción predeterminada.

Boolean

Salida derivada

EtiquetaExplicaciónTipo de datos
Entidades de puntos de salida

Cuando se generan formas de hoja, se crea una clase de entidad de puntos de salida en la misma ubicación que la clase de entidad multiparche de salida principal.

Feature Class
Entidades de línea de salida

Cuando se generan formas de hoja, se crea una clase de entidad de polilíneas de salida en la misma ubicación que la clase de entidad multiparche de salida principal.

Feature Class
Entidades multipunto de salida

Cuando se generan formas de hoja, se crea una clase de entidad de polígonos de salida en la misma ubicación que la clase de entidad multiparche de salida principal.

Feature Class

arcpy.ddd.FeaturesFromCityEngineRules(in_features, in_rule_package, out_feature_class, {in_existing_fields}, {in_include_reports}, {in_leaf_shapes})
NombreExplicaciónTipo de datos
in_features

Las entidades de puntos, polígonos o multiparche de entrada. Las entidades de entrada pueden ser capas de entidades simbolizadas mediante un procedimiento. Se respetará la asignación de campos (propiedades de símbolo regidas por atributo).

Feature Layer
in_rule_package

El archivo (*.rpk) del paquete de reglas de CityEngine que contiene activos e información de reglas CGA. La regla anotada con @StartRule en el archivo .rpk debe estar anotada con @InPoint para un paquete de reglas destinado a entidades de puntos, con @InPolygon para un paquete de reglas destinado a entidades poligonales o con @InMesh para un paquete de reglas destinado a entidades multiparche. Si @StartRule no se anota con @InPoint, @InPolygon o @InMesh, se presupondrá que el tipo de entidad es polígono.

File
out_feature_class

Clase de entidad de salida que contiene entidades multiparche con reglas CGA aplicadas. Se agrega un campo OriginalOID a las clases de entidad de salida para que contenga el ObjectID de la entidad de entrada desde la cual se ha generado cada entidad de salida.

Feature Class
in_existing_fields
(Opcional)

Especifica si la clase de entidad de salida incluirá los campos de atributos de la clase de entidad de entrada. Este parámetro no se tiene en cuenta si se utiliza el parámetro in_leaf_shapes.

  • INCLUDE_EXISTING_FIELDSLos campos de atributos de la clase de entidad de entrada se incluirán en la clase de entidad de salida. Esta es la opción predeterminada.
  • DROP_EXISTING_FIELDSLos campos de atributos de la clase de entidad de entrada no se incluirán en la clase de entidad de salida. Esta opción se utilizará automáticamente si el parámetro in_leaf_shapes está establecido en FEATURE_PER_LEAF_SHAPE.
Boolean
in_include_reports
(Opcional)

En función de la forma en la que se haya creado el paquete de reglas, este puede contener una lógica que genere uno o varios informes a medida que se creen los modelos. Estos informes pueden contener una variedad de información acerca de las entidades. Un ejemplo es un paquete de reglas que informa del número de ventanas que se generan para cada modelo de edificio.

  • INCLUDE_REPORTSLa clase de entidad de salida incluirá nuevos campos de atributos para incluir los valores informados para cada entidad tal como se define en la lógica de generación de informes del paquete de reglas. Se crea un atributo único para cada valor notificado.
  • EXCLUDE_REPORTSLos informes generados en el paquete de reglas se ignorarán y no se generarán atributos nuevos relacionados con los informes. Esta es la opción predeterminada.

Este parámetro se ignora si el paquete de reglas no contiene una lógica para generar informes.

Boolean
in_leaf_shapes
(Opcional)

Especifica si cada entidad de entrada se convertirá en una única entidad multiparche fusionada o se convertirá en un conjunto de muchas entidades que pueden ser puntos, líneas o multiparches.

Los paquetes de reglas de CityEngine crean contenido al generar piezas de componentes y fusionarlas en un único objeto 3D. Sin embargo, estos componentes, o formas de hoja, también se pueden almacenar como entidades separadas. Esta opción puede ser especialmente importante a la hora de ejecutar operaciones de análisis utilizando subelementos de un objeto 3D, como las ventanas de un edificio.

Por ejemplo, una regla puede generar modelos de edificio sin interrupciones a partir de huellas de polígono de entrada, o bien crear entidades individuales para cada pared del apartamento, incluido un panel que mira hacia afuera, un punto central representativo y líneas que representan los bordes. En este ejemplo, los paneles del apartamento, los puntos centrales y los contornos se consideran formas de hoja.

  • FEATURE_PER_LEAF_SHAPESe generarán clases de entidad de salida adicionales. Los campos de atributos de la clase de entidad de entrada no se incluirán en la clase de entidad de salida. La clase de entidad de salida contendrá un campo con el nombre OriginalOID, que hace referencia al ObjectID de la entidad de entrada desde la que se generó la salida.
  • FEATURE_PER_SHAPENo se generarán clases de entidad de salida adicionales, ni siquiera si se definen formas de hoja adicionales en la lógica de la regla. Toda la geometría estará contenida dentro de las entidades multiparche de salida. Esta es la opción predeterminada.
Boolean

Salida derivada

NombreExplicaciónTipo de datos
out_points

Cuando se generan formas de hoja, se crea una clase de entidad de puntos de salida en la misma ubicación que la clase de entidad multiparche de salida principal.

Feature Class
out_lines

Cuando se generan formas de hoja, se crea una clase de entidad de polilíneas de salida en la misma ubicación que la clase de entidad multiparche de salida principal.

Feature Class
out_multipoints

Cuando se generan formas de hoja, se crea una clase de entidad de polígonos de salida en la misma ubicación que la clase de entidad multiparche de salida principal.

Feature Class

Muestra de código

Ejemplo 1 de FeaturesFromCityEngineRules (ventana de Python)

El siguiente script de la ventana de Python demuestra cómo utilizar la función FeaturesFromCityEngineRules de modo inmediato.

import arcpy

arcpy.CheckOutExtension("3D")
arcpy.env.workspace = "C:/data"
arcpy.ddd.FeaturesFromCityEngineRules("in_polygons", 
                                      "rules.rpk", 
                                      "out_multipatches")
Ejemplo 2 de FeaturesFromCityEngineRules (script independiente)

El siguiente script de la ventana de Python demuestra cómo habilitar el registro de diagnóstico al utilizar la función FeaturesFromCityEngineRules en un script independiente de Python.

import arcpy
import ctypes
from arcpy import env

def enableDiagnostics(enable: bool = True):
  pro = arcpy.GetInstallInfo()['InstallDir']
  dll = ctypes.CDLL(f'{pro}/bin/DADFLib.dll')
  if enable:
    dll.EventLogEnable()
  else:
    dll.EventLogDisable()

def setLogLevel(level: int = 2):
  pro = arcpy.GetInstallInfo()['InstallDir']
  dll = ctypes.CDLL(f'{pro}/bin/DADFLib.dll')
  dll.EventLogSetLogLevel(level)

enableDiagnostics(True) #enable diagnostic logging
# Setting a log level (0 == error, 1 == warning, 2 == information, 3 == debug)
# will get that level and everything below it. 0 is only errors, 1 is warnings and errors etc.
setLogLevel(3) # Max diagnostic log level 

arcpy.CheckOutExtension("3D")
env.workspace = r"C:\data"
arcpy.ddd.FeaturesFromCityEngineRules(r"geometry.gdb\in_polygons", 
                                      "rules.rpk", 
                                      r"geometry.gdb\out_multipatches")

Entornos

Esta herramienta no utiliza ningún entorno de geoprocesamiento.

Temas relacionados