5 votos

Los objetos de esta clase no puede ser actualizado fuera de una sesión de edición en el interior de ArcFM?

Estoy tratando de agregar una clase de entidad en ArcMap 10.2.1 que es un ArcFM Característica de la Clase mediante el uso de una secuencia de comandos de python.

Estoy trabajando en el interior de un ArcFM sesión, que es necesario para editar la capa con la que estoy trabajando, sin embargo se queja de mí, no estar en una sesión de...

Este es mi script:

import arcpy

# fc is a point feature class
#
fc = r"Database Connections\DATABASE.sde\ACE.Electric_Network_Features\ACE.Transformer"
cursor = arcpy.da.InsertCursor(fc, ["SHAPE@XY"])
xy = (22000,99000)

Aquí está mi excepción:

Runtime error 
Traceback (most recent call last):
File "<string>", line 9, in <module>
RuntimeError: Objects in this class cannot be updated outside an edit session [ACE.Transformer]

Me estoy perdiendo un paso? He tratado de buscar cómo hacer una sesión de edición para ArcFM en el código, pero no he tenido éxito en la búsqueda de esta información...

10voto

john Puntos 11

ArcFM hace secuencias de comandos de Python un poco de dolor.

Usted tendrá que incluir algunas secuencias de comandos adicionales que Scheider Electric proporciona con el fin de retirar una ArcFM de licencia antes de comenzar a editar.

Aquí hay un enlace para descargar los scripts.

Porque estás 10.2.1, usted sólo tendrá que descargar enumerations.py y ArcFMSampleUpdated.py. Y, como el enlace que menciona, usted también tendrá que instalar Python para Windows Extensions (pywin32).

Una vez que tienes los scripts descargado e pywin32 instalado, sugiero la creación de una carpeta raíz que alberga a su proyecto.

Así, usted necesitará:

root folder
--- yourscript.py
--- enumerations.py

Y a continuación, dentro de yourscript.py debe incluir:

import arcpy
from arcgisscripting import create
from win32com.client import Dispatch
gp = create(10.1)

app = Dispatch("Miner.Framework.Dispatch.MMAppInitializeDispatch")
au = Dispatch("Miner.Framework.Dispatch.MMAutoupdaterDispatch")
runtime = Dispatch("Miner.Framework.Dispatch.MMRuntimeEnvironmentDispatch")

from enumerations import mmRuntimeMode,mmLicensedProductCode,mmAutoUpdaterMode

runtime.RuntimeMode = mmRuntimeMode.mmRuntimeModeArcServer
app.Initialize(mmLicensedProductCode.mmLPArcFM)
au.AutoUpdaterMode = mmAutoUpdaterMode.mmAUMNoEvents

workspace = "your workspace"
arcpy.env.workspace = workspace

edit = arcpy.da.Editor(arcpy.env.workspace)
edit.startEditing(False, True)
edit.startOperation()

##############################
###### Your Script here ######
##############################

edit.stopOperation()
edit.stopEditing(True)

app.Shutdown
del app, runtime, au

El código anterior también aparece en la ArcFMSampleUpdated.py script que has descargado, pero me hizo añadir el arcpy.da.Editor() de la porción.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X