Más

El objeto de asignaciones de campo no funciona con Merge_management


Estoy tratando de limitar la cantidad de campos cuando realizo una combinación a dos. A continuación se muestra el script que he creado para hacerlo. Sin embargo, la clase de entidad fusionada se transfiere a todos los campos, a pesar de mi uso de unafieldmappingsobjeto.

dies un diccionario con un tipo de forma ("polilínea", "polígono", etc.) como clave y una lista de Python de clases de entidad como valor. ¿Algunas ideas?

código relevante:

fms = FieldMappings () jnFm = FieldMap () sourceFm = FieldMap () jnFm.addInputField (fc, jobField) sourceFm.addInputField (outFcFullPath, "FC_SOURCE") fms.addFieldMap (jnFm) fms.addFmieldMap (jnFm) print " sourceFmieldMap" para shapeType en di: featureClasses = di [shapeType] mergeFC = os.path.join (outGDB, "All_" + shapeType) Merge_management (featureClasses, mergeFC, fms) imprimir "Creado: All_" + shapeType

He descubierto que para cada clase de entidad que estoy fusionando, necesito agregar los campos a los objetos del mapa de campo.

Código de funcionamiento:

fms = FieldMappings () jnFm = FieldMap () sourceFm = FieldMap () jnFm.addInputField (fc, jobField) jnFm.addInputField (outFcFullPath, jobField) #Nuevo código sourceFm.addInputField (fc, "FC_Nuevo código fuente") (outFcFullPath, "FC_SOURCE") fms.addFieldMap (jnFm) fms.addFieldMap (sourceFm) imprime " nMerging" para shapeType en di: featureClasses = di [shapeType] mergeFC = os.path.join (outGDB, "All_" + shapeType ) Merge_management (featureClasses, mergeFC, fms) imprimir "Creado: All_" + shapeType

Error al implementar campos estándar en Big Object

Estoy intentando implementar un objeto grande en Salesforce, pero hay algunos errores con los campos del objeto. El gran objeto se basa en un objeto estándar que ya existe en Salesforce y tiene algunos campos estándar que son del objeto original. Cuando elimino estos campos estándar del archivo de objeto, el paquete se implementa correctamente, pero cuando incluyo los campos estándar, aparece el siguiente error para cada campo: & ltfield name & gt debe terminar con: __c o __kav o __x o __b o __xo o __e o __p o __mdt

Archivo de objeto:

Los campos en cuestión aquí son Nombre, Propietario y LastModifiedBy. Por alguna razón, el campo CreatedBy se implementa con éxito a pesar de que es un campo estándar. ¿Qué podría estar causando los errores en los últimos tres campos?


Sintaxis

Los atributos de las entidades objetivo y los atributos de las entidades unidas se transfieren a la clase de entidad de salida. Sin embargo, se puede definir un subconjunto de atributos en el parámetro del mapa de campo.

Los atributos de las entidades de unión se unen a los atributos de las entidades de destino. Consulte la explicación del parámetro join_operation para obtener detalles sobre cómo la agregación de atributos combinados se ve afectada por el tipo de operación de combinación.

Una nueva clase de entidad que contiene los atributos de las entidades objetivo y de unión. De forma predeterminada, todos los atributos de las entidades de destino y los atributos de las entidades unidas se escriben en la salida. Sin embargo, el conjunto de atributos que se transferirán se puede controlar mediante el parámetro del mapa de campo.

Determina cómo se manejarán las uniones entre las entidades de destino y las entidades de unión en la clase de entidad de salida si se encuentran varias entidades de unión que tienen la misma relación espacial con una única entidad de destino.

  • JOIN_ONE_TO_ONE: si se encuentran varias entidades de unión que tienen la misma relación espacial con una única entidad de destino, los atributos de las múltiples entidades de unión se agregarán mediante una regla de fusión de mapa de campo. Por ejemplo, si una entidad de destino puntual se encuentra dentro de dos entidades de unión de polígono separadas, los atributos de los dos polígonos se agregarán antes de transferirse a la clase de entidad de punto de salida. Si un polígono tiene un valor de atributo de 3 y el otro tiene un valor de 7, y se especifica una regla de combinación de suma, el valor agregado en la clase de entidad de salida será 10. Este es el valor predeterminado.
  • JOIN_ONE_TO_MANY: si se encuentran varias entidades de unión que tienen la misma relación espacial con una única entidad de destino, la clase de entidad de salida contendrá varias copias (registros) de la entidad de destino. Por ejemplo, si una entidad de destino de un solo punto se encuentra dentro de dos entidades de unión de polígono separadas, la clase de entidad de salida contendrá dos copias de la entidad de destino: un registro con los atributos de un polígono y otro registro con los atributos del otro polígono. .

Determina si todas las entidades de destino se mantendrán en la clase de entidad de salida (conocida como unión externa) o solo aquellas que tengan la relación espacial especificada con las entidades de unión (unión interna).

  • KEEP_ALL: todas las características de destino se mantendrán en la salida (combinación externa). Este es el predeterminado.
  • KEEP_COMMON: solo las entidades de destino que tienen la relación espacial especificada con las entidades de unión se mantendrán en la clase de entidad de salida (unión interna). Por ejemplo, si se especifica una clase de entidad puntual para las entidades objetivo y se especifica una clase de entidad poligonal para las entidades de unión, con match_option = "WITHIN", la clase de entidad de salida solo contendrá aquellas entidades de destino que estén dentro de una unión poligonal. característica cualquier característica de destino que no esté dentro de una característica de unión se excluirá de la salida.

Controla qué campos de atributos estarán en la clase de entidad de salida. La lista inicial contiene todos los campos de las funciones de destino y las funciones de combinación. Los campos se pueden agregar, eliminar, renombrar o modificar sus propiedades. Los campos seleccionados de las entidades de destino se transfieren tal cual, pero los campos seleccionados de las entidades de combinación se pueden agregar mediante una regla de combinación. Para obtener detalles sobre el mapeo de campo, consulte Uso del control de mapeo de campo y Mapeo de campos de entrada a campos de salida. Se pueden especificar múltiples campos y combinaciones de estadísticas.

Define los criterios utilizados para hacer coincidir filas. Las opciones de coincidencia son:

  • INTERSECCIÓN: las entidades de las entidades de unión coincidirán si intersectan una entidad de destino. Este es el predeterminado. Especifique una distancia en el parámetro search_radius.
  • INTERSECT_3D: las entidades de las entidades de unión coincidirán si intersecan una entidad de destino en un espacio tridimensional (x, y, y z). Especifique una distancia en el parámetro search_radius.
  • WITHIN_A_DISTANCE: las entidades de las entidades de unión coincidirán si están a una distancia específica de una entidad de destino. Especifique una distancia en el parámetro search_radius.
  • WITHIN_A_DISTANCE_GEODESIC: igual que WITHIN_A_DISTANCE, excepto que se usa la distancia geodésica en lugar de la distancia plana. Elija esta opción si sus datos cubren una gran extensión geográfica o si el sistema de coordenadas de las entradas no es adecuado para los cálculos de distancia.
  • WITHIN_A_DISTANCE_3D: las entidades de las entidades de unión coincidirán si están a una distancia específica de una entidad de destino en un espacio tridimensional. Especifique una distancia en el parámetro search_radius.
  • CONTIENE: las funciones de las funciones de combinación coincidirán si una función de destino las contiene. Las entidades de destino deben ser polígonos o polilíneas. Para esta opción, las entidades de destino no pueden ser puntos y las entidades de unión solo pueden ser polígonos cuando las entidades de destino también son polígonos.
  • COMPLETELY_CONTAINS: las funciones de las funciones de unión se compararán si una función de destino las contiene por completo. Polygon puede contener completamente cualquier característica. El punto no puede contener completamente ninguna característica, ni siquiera un punto. La polilínea puede contener completamente solo polilínea y punto.
  • CONTAINS_CLEMENTINI: esta relación espacial produce los mismos resultados que COMPLETELY_CONTAINS con la excepción de que si la entidad de unión está completamente en el límite de la entidad de destino (ninguna parte está correctamente dentro o fuera) la entidad no coincidirá. Clementini define el polígono de límite como la línea que separa el interior y el exterior, el límite de una línea se define como sus puntos finales y el límite de un punto siempre está vacío.
  • DENTRO: las funciones de las funciones de combinación coincidirán si una función de destino está dentro de ellas. Es opuesto a CONTAINS. Para esta opción, las entidades de destino solo pueden ser polígonos cuando las entidades de unión también son polígonos. El punto puede ser una función de unión solo si el punto es el objetivo.
  • COMPLETELY_WITHIN: las funciones de las funciones de combinación coincidirán si una función de destino está completamente dentro de ellas. Esto es opuesto a COMPLETELY_CONTAINS.
  • WITHIN_CLEMENTINI: el resultado será idéntico a WITHIN, excepto que si la totalidad de la entidad en las entidades de unión está en el límite de la entidad de destino, la entidad no coincidirá. Clementini define el polígono de límite como la línea que separa el interior y el exterior, el límite de una línea se define como sus puntos finales y el límite de un punto siempre está vacío.
  • ARE_IDENTICAL_TO: las entidades de las entidades de unión coincidirán si son idénticas a una entidad de destino. Tanto la entidad de unión como la de destino deben tener el mismo tipo de forma: punto a punto, línea a línea y polígono a polígono.
  • BOUNDARY_TOUCHES: las entidades de las entidades de unión coincidirán si tienen un límite que toca una entidad de destino. Cuando las entidades de destino y de unión son líneas o polígonos, el límite de la entidad de unión solo puede tocar el límite de la entidad de destino y ninguna parte de la entidad de unión puede cruzar el límite de la entidad de destino.
  • SHARE_A_LINE_SEGMENT_WITH: las entidades de las entidades de unión coincidirán si comparten un segmento de línea con una entidad de destino. Las entidades de unión y de destino deben ser líneas o polígonos.
  • CROSSED_BY_THE_OUTLINE_OF: las entidades de las entidades de unión coincidirán si una entidad de destino está cruzada por su contorno. Las entidades de unión y de destino deben ser líneas o polígonos. Si se utilizan polígonos para la unión o las entidades de destino, se utilizará el límite (línea) del polígono. Las líneas que se cruzan en un punto coincidirán, no las líneas que comparten un segmento de línea.
  • HAVE_THEIR_CENTER_IN: las entidades de las entidades de unión coincidirán si el centro de una entidad de destino se encuentra dentro de ellas. El centro de la entidad se calcula de la siguiente manera: para polígono y multipunto, se usa el centroide de la geometría, y para la entrada de línea se usa el punto medio de la geometría. Especifique una distancia en el parámetro search_radius.
  • MÁS CERCANO: la característica de las características de unión que está más cerca de una característica de destino coincide. Consulte la sugerencia de uso para obtener más información. Especifique una distancia en el parámetro search_radius.
  • CLOSEST_GEODESIC: igual que CLOSEST excepto que se utiliza la distancia geodésica en lugar de la distancia plana. Elija esta opción si sus datos cubren una gran extensión geográfica o si el sistema de coordenadas de las entradas no es adecuado para los cálculos de distancia.

Las entidades de unión dentro de esta distancia de una entidad de destino se considerarán para la unión espacial. Un radio de búsqueda solo es válido cuando se especifica la relación espacial (opción de coincidencia) INTERSECT, WITHIN_A_DISTANCE, WITHIN_A_DISTANCE_GEODESIC, HAVE_THEIR_CENTER_IN, CLOSEST o CLOSEST_GEODESIC. El uso de un radio de búsqueda de 100 metros con la relación espacial WITHIN_A_DISTANCE unirá la entidad dentro de los 100 metros de una entidad objetivo. Para las tres relaciones WITHIN_A_DISTANCE, si no se especifica ningún valor para el radio de búsqueda, se usa una distancia de 0.

El nombre de un campo que se agregará a la clase de entidad de salida, que contiene la distancia entre la entidad de destino y la entidad de unión más cercana. Esta opción solo es válida cuando se especifica la relación espacial (opción de coincidencia) CLOSEST o CLOSEST_GEODESIC. El valor de este campo es -1 si ninguna característica coincide con un radio de búsqueda. Si no se especifica un nombre de campo, el campo no se agregará a la clase de entidad de salida.


Metodología y marco

La literatura relevante se revisa de forma sistemática y organizada en 5 pasos. Primero, el alcance de la revisión se determina como extracción y descubrimiento de conocimiento basado en BIM. En consecuencia, las búsquedas en la literatura existente en la base de datos académica se realizan combinando palabras clave como TITLE-ABS-KEY (("industria de la construcción") O ("BIM") O ("AEC") O ("gestión de la construcción")) Y TÍTULO-ABS-CLAVE ((“ontología *”) O (“web semántica”) O (“conocimiento”) O (“datos vinculados”)). Dada la base de datos sin procesar, los estudios menos relevantes se filtran examinando el título y el resumen manualmente. Luego, resuma los autores, revistas y palabras clave más citados, seguido del estudio en profundidad de la literatura principal para resumir los temas de investigación de vanguardia y las direcciones futuras.

Alcance de la investigación

Para centrarse en la extracción y el descubrimiento de conocimiento basado en BIM, esta revisión cubre principalmente los estudios en una estrecha relación con BIM, web semántica, ontología, marco de descripción de recursos, lenguaje de ontología web, gestión del conocimiento, etc. En particular, la combinación de El dominio del conocimiento y BIM ha traído grandes cambios a las industrias AEC [13]. A principios del siglo XXI, las tecnologías semánticas basadas en conocimientos de dominio se introdujeron en las industrias AEC [14]. Por ejemplo, Pan et al. [15] y Elghamrawy y Boukamp [16] discutieron los valores extra que la web semántica beneficiaría a los proyectos de construcción. Al mismo tiempo, algunas revisiones recientes discutieron el conocimiento de BIM [17] y su aplicación al diseño de arquitectura, simulación energética, optimización inteligente, gestión de seguridad [18], diseño y análisis de espacios de la ciudad, integración de BIM y sistema de información geográfica, cumplimiento de códigos de diseño [19], gestión de instalaciones [20], etc. Estos temas se resumieron de acuerdo con el Análisis Semántico Latente (LSA) de los temas. Debido a que BIM en sí mismo enfatiza la información dentro de un modelo digital, los estudios revisados ​​se enfocaron principalmente en cómo proporcionar información esencial para cumplir con los requisitos de dominios o aplicaciones específicos. Para organizarlos, los estudios se dividen en 5 temas principales, es decir, descripción del conocimiento, descubrimiento del conocimiento, almacenamiento y gestión del conocimiento, inferencia del conocimiento y aplicación del conocimiento como se enumera en la Tabla 1.

Cada tema de investigación enumerado anteriormente se basa en la información del edificio en forma particular y algunos de ellos incluso se basan en información de diferentes fuentes de datos. La tecnología BIM es capaz de proporcionar el marco de información, incluido el estándar de datos, la gestión de datos y la plataforma de datos para integrar estos datos esenciales. Mientras tanto, la web semántica proporciona un marco técnico para la descripción del conocimiento, el lenguaje de consulta y el motor de inferencia para la extracción y el descubrimiento de conocimiento desde la plataforma de datos basada en BIM. Por lo tanto, la integración de estas dos tecnologías tiene un potencial significativo como se resume en la Figura 1 para la ingeniería del conocimiento en las industrias AEC.

Marco de extracción y descubrimiento de conocimientos sobre el modelado de información de construcción

Estadísticas de la literatura

Esta investigación examina principalmente la literatura publicada de 2009 a 2019 en la base de datos Web of Science (WoS) [21] y Scopus [22]. El número de artículos revisados ​​se ilustra en la Figura 2. En general, el número de artículos en el campo está creciendo año tras año, especialmente después de 2014, lo que implica que la gestión del conocimiento basada en BIM se convierte en una tendencia importante que atrae a académicos relacionados con las tecnologías de la información en las industrias AEC. .

Números de literatura de la base de datos de WoS y Scopus de 2009 a 2019

De acuerdo con la literatura filtrada, los académicos más citados y, por lo tanto, los más influyentes, como C. Eastman, J. Beetz y P. Pauwels, y las revistas académicas internacionales como Automation in Construction y Advanced Engineering Informatics se resumen en la figura 3. Figura 4 muestra que las palabras clave más activas incluyen BIM, ontología y web semántica, etc.

a Top10 autores y B Los 10 principales editores relacionados con la extracción y el descubrimiento de conocimientos sobre el modelado de información de construcción

Palabras clave relacionadas con la extracción y el descubrimiento de conocimientos sobre el modelado de información de edificios


Los enlaces en los comentarios son la respuesta, pero como hice una imagen, ¿por qué no publicarla de todos modos?

En lugar de deformar el objeto directamente, deforma una pila de tris. Luego, empareje su objeto de destino (el cilindro en este ejemplo) con el objeto deformado y habilite duplifaces para los tris en Propiedades >> Objeto >> Duplicación.

Solo asegúrese de que el objeto que desea duplicar tenga su escala aplicada o habrá deformaciones.


Objeto de directiva de grupo no aplicado a la computadora cliente

Asumiré toda nuestra gestión basada en Microsoft, esto incluye nuestros servidores AD, GPO, etc.

Entonces, dicho esto, no sé todo sobre cómo está configurada esta configuración. Sin embargo, he notado que parece que tenemos muchos problemas basados ​​en permisos con GPO o con usuarios que no pueden cambiar sus propios atributos en su cuenta. Creo que el problema se debe a que SYSVOL es inaccesible según la herramienta de administración de políticas de grupo, pero no estoy seguro. El propio SYSVOL está disponible según la "cuota neta".

No conozco una forma segura de pasar y verificar automáticamente los permisos "básicos" en las cuentas, para verificar que tengan acceso, sin embargo, he verificado que el grupo "Usuarios autenticados" tiene al menos permisos de lectura en todos los GPO . He ejecutado dcdiag y repadmin. Los resultados de dcdiag que se pueden encontrar aquí:

Los resultados de repadmin muestran que todo se completó correctamente. No hay errores en ninguno de los servidores.


Para asegurarse de que siempre funcione, debe agregar una restricción al método:

Esto asegurará que TInput sea un tipo de referencia.

No tiene sentido llamarlo en estructuras. Para ellos, ¿necesita otra sobrecarga con una restricción diferente y algunas? signos de interrogación:

Alguien puede preguntar en este punto: pero ¿por qué necesitamos dos extensiones si teóricamente una sola también hace el trabajo?

Con una sola extensión, debe usar la propiedad .Value para tipos que aceptan valores NULL. Con dos extensiones obtienes un valor limpio, así que simplemente lo haces

¿Pero no es esto solo una conveniencia? Por supuesto que es. ¿No escribimos extensiones exactamente por esa razón?

De hecho, yo mismo uso un código similar:

pero puede crear una versión simplificada de su método y combinarlo con el IIf


7 respuestas 7

La NullReferenceException básicamente te dice: lo estás haciendo mal. Nada más y nada menos. No es una herramienta de depuración completa, al contrario. En este caso, diría que lo estás haciendo mal porque

  • hay una NullReferenceException
  • no lo previno de una manera que sabe por qué / dónde sucedió
  • y también tal vez: un método que requiere 20 objetos parece un poco fuera de lugar

Soy un gran fanático de verificar todo antes de que las cosas empiecen a salir mal y de brindar buena información al desarrollador. En resumen: escriba cheques usando ArgumentNullException y los me gusta y escriba el nombre usted mismo. He aquí una muestra:

También puede consultar los contratos de código, tiene peculiaridades, pero funciona bastante bien y le ahorra algo de escritura.

Realmente debería mostrar exactamente lo que está tratando de llamar. Es como decir "Hay un problema. Necesitas solucionarlo. Sé lo que es. No te lo voy a decir. Ve a resolverlo" Un poco como la mitad de las respuestas en este Desbordamiento de pila, irónicamente.

Entonces, ¿qué tan útil sería, por ejemplo, si obtuviera esto?

. Tener que entrar en el código, recorrerlo paso a paso y averiguar que lo que está tratando de llamar es nulo está bien, pero ¿por qué no simplemente ayudarnos un poco?

Estoy de acuerdo que es por lo general Es útil recorrer el código para llegar a la respuesta (porque probablemente encontrará más), pero a menudo se ahorraría mucho tiempo y frustración si el texto NullReferenceException fuera más como el ejemplo anterior.

Su registro debe incluir un seguimiento de la pila, que generalmente le da una pista sobre qué línea del método tiene el problema. Es posible que deba hacer que su versión de lanzamiento incluya símbolos PDB para tener una idea de en qué línea se encuentra el error.

Por supuesto, no te ayudará en este caso:

El principio de decir no preguntar puede ayudar a evitar este tipo de código.

En cuanto a por qué no se incluye la información, no estoy seguro; sospecho que al menos en una compilación de depuración, si realmente quisieran, podrían resolverlo. Hacer un volcado por caída y abrir en WinDBG puede ayudar.

Se han creado excepciones como una herramienta para señalar excepcionales no fatal condiciona la cadena de llamadas. Es decir, no están diseñados como una herramienta de depuración.

Si una excepción de puntero nulo fuera una herramienta de depuración, abortaría la ejecución del programa en el acto, permitiendo que un depurador se conecte, apuntándolo directamente a la línea incriminatoria. Esto le daría al programador todas la información de contexto que está disponible. (Que es más o menos lo que hace un Segfault debido a un acceso de puntero nulo en C, aunque un poco burdamente).

Sin embargo, la excepción de puntero nulo está diseñada como una condición de tiempo de ejecución válida que se puede lanzar y capturar en el flujo normal del programa. En consecuencia, se deben tener en cuenta las consideraciones de rendimiento. Y cualquier personalización del mensaje de excepción requiere que se creen, concatenen y destruyan objetos de cadena en tiempo de ejecución. Como tal, un mensaje estático es indiscutiblemente más rápido.

Sin embargo, no estoy diciendo que el tiempo de ejecución no pueda programarse de una manera que produzca el nombre de la referencia incriminatoria. Eso podría hacerse. Simplemente haría que las excepciones fueran incluso más lentas de lo que son. Si a alguien le importara lo suficiente, tal característica podría incluso cambiarse, de modo que no ralentizaría el código de producción, pero permitiría una depuración más fácil, pero por alguna razón a nadie parece importarle lo suficiente.


No estoy seguro de cuál es exactamente el problema, pero esta es mi suposición. Necesitas disminuir la masa de la bandera. Por defecto es bastante pesado.

He descubierto que la tela parece necesitar "caer" por completo antes de que se vea afectada por el viento. Probé un avión colgando del borde superior y como ya estaba en la posición de "caída", se animó de inmediato con una fuerza de viento de 2000 a 9000 y aleteó muy bien, 10000 lo hizo volverse loco. Lo intenté con una capa a continuación, mucho más compleja, y después de fijarla, me tomó 100 cuadros antes de que obtuviera algunas ondas con una fuerza de viento de 9000

Tuve un problema similar y mi bandera comenzó a reaccionar a la fuerza del viento una vez que la escalé 10 veces.

Cuanto más grande era la bandera (en Unidades Blender), más reaccionaba a la fuerza del viento.

También comprobar Poder de caída
(mi problema era: resistencia demasiado baja y potencia de caída demasiado grande).

El tamaño de la escena importa. Si su ropa no reacciona a las fuerzas: vaya a la pestaña de propiedades de la escena y amplíe las Unidades. Después de hacerlo, vaya a las propiedades físicas de su tela y notará que la masa del vértice ha cambiado. Disminuye la masa del vértice y comienza la simulación.


Obtenga un ID de elemento de lista de SharePoint de una lista donde el campo & # 39Title & # 39 es un valor específico en JavaScript

Estoy tratando de extraer el identificador de ListItem de una lista en la que NO estoy actualmente en función de un valor de campo en esa lista. No puedo encontrar nada que explique cómo hacer esto.

Entonces, para explicar. Tengo una lista personalizada llamada 'Departamento'. Tengo otra lista personalizada llamada 'Artículo'. Tengo un campo en el 'Artículo' Lista que es una búsqueda del 'Título' campo en el 'Departamento' Lista

Tengo algo de JavaScript que lee el DispForm de un 'Artículo' en la 'Lista de artículos' y saca el Departamento como una cadena de texto. Ahora, usando esta cadena de texto, quiero usar JavaScript para buscar en la lista 'Departamento', buscar el valor del campo 'Título' que coincida con la cadena de texto (por ejemplo, Finanzas) y devolver el ID de artículo de este artículo de lista.

Todas las soluciones que puedo encontrar en la web se conectan a la Lista usando el método 'getItemById', pero no sé la ID, ya que es lo que estoy tratando de devolver (por ejemplo, a continuación)

¿Alguien puede indicarme la dirección correcta sobre cómo haría esto?


Ver el vídeo: Ms. Project - Asignar Recursos Trabajo, Material y Costo (Octubre 2021).