• Visio中ArcGIS UML Semantics Checker 始终出现“This operation requires an ArcInfo or ArcEditor seat.”问题的解决


    在Visio使用UML对ESRI Geodatabase进行建模时,发现ESRI提供的UML语义检查器Semantics Checker总是报错:
    This operation requires an ArcInfo or ArcEditor seat.
    Use the ArcGIS Desktop Administration Utility to set your seat type.
    可是我的License在ArcCatalog或ArcMap里LicenseType明明已经显示为ArcInfo啊,郁闷,在Google里找了找,发现ESRI中国给了下面的解释:

      为什么Visio中应用ArcGIS的语义检查器Semantics Checker始终报错?
    编号: 000658 相关产品及版本: ArcInfo Desktop,ArcEditor  8.1-8.3,9.0,9.1 平台: N/A
    提交时间: 2005-12-19   修改时间: 2005-12-19 提交人: 王嘉彬
    错误描述
    Visio中应用ArcGIS的语义检查器Semantics Checker始终会报出“This operation requires an ArcInfo or ArcEditor seat. Use the ArcGIS Desktop Administrator Utility to set your seat type.”的错误来。
    导致原因
    这是一个众所周知的错误。(大家都明白呗)
    解决办法
    在ArcCatalog中来运行Semantics Checker。
    1.启动ArcCatalog.
    2.点击菜单“工具”->“定制”->“命令”
    3.选择 UIControls
    4.点击 New UIControl.
    5.选择 UI Button Control.
    6.点击 Create and Edit.
    7.当 Visual Basic 编辑窗口打开后,在 ‘Private Sub UIButtonControl1_Click()’ 下添加,
    umlsemcheck.SemChecker.StartChecker
    8.点击菜单“工具”->“引用”,选择 check ESRI UML Semantics Checker.
    9.保存
    10.关闭Visual Basic 编辑窗口
    11.点击菜单“工具”->“定制”->“命令”
    12.选择 UIControls
    13.从命令窗拖动 new UIControl 到工具条上,现在在ArcCatalog 上UML Semantics Checker 就可以使用了。
    虽然可以用了,心里还是不很舒服,因为总要在Visio和ArcCatalog之间切来切去的,实在不爽,因为这个语法检查助手事实上就是一段调用ESRI UML Semantics Checker类库里的一个静态方法,肯定是无法获取正确的License,看看了ArcGIS Develop Kit Help,看到有这么一个例子:
    Private Function GetDeploymentName() As String
      
    Dim pLicense As IESRILicenseInfo
      
    Set pLicense = New ESRILicenseInfo
      
    Select Case pLicense.DefaultProduct
      
    Case esriProductCodeViewer
        GetDeploymentName 
    = "ArcView"
      
    Case esriProductCodeEditor
        GetDeploymentName 
    = "ArcEditor"
      
    Case esriProductCodeProfessional
        GetDeploymentName 
    = "ArcInfo"
      
    End Select
      MsgBox GetDeploymentName 
    End Function
    先增加了一个ESRI System Object Library的引用,然后把这段代码放到里面一运行,提示"ArcView",难怪呢.好了,有这个信息就好办了,好了,说干就干,修改你现在Visio工程里的ESRI=>Semantics Checker宏代码如下:(最好把ESRI那个模版也修改一下,这样新的工程就都OK了)
    Private Function GetDeploymentName() As String
      
    Dim pLicense As IESRILicenseInfo
      
    Set pLicense = New ESRILicenseInfo
      
    Select Case pLicense.DefaultProduct
      
    Case esriProductCodeViewer
        GetDeploymentName 
    = "ArcView"
      
    Case esriProductCodeEditor
        GetDeploymentName 
    = "ArcEditor"
      
    Case esriProductCodeProfessional
        GetDeploymentName 
    = "ArcInfo"
      
    End Select
    End Function

    Sub Semantics_Checker()
        
    If GetDeploymentName() = "ArcView" Then
            
    Dim pAo As IAoInitialize
            
    Set pAo = New AoInitialize
            pAo.Initialize esriLicenseProductCodeArcInfo
            pAo.Shutdown
        
    End If
        StartChecker
    End Sub

    本人QQ1283205,欢迎大家交流,一起提高。
  • 相关阅读:
    Python3.7安装PyQt5的方法
    安装MySQLdb for Python3.7
    在Python中操作谷歌浏览器
    Python 安装pyautogui
    Python 安装selenium
    Python 安装urllib3
    Python使用SMTP发送邮件
    使用Python定时执行一任务,自动登录某web系统,生成报表,然后发送邮件给指定人员
    AutoHotKey 使用ADODB读取Excel 报ADODB.Connection 未找到提供程序,可能未提供
    绘制一个网格的程序
  • 原文地址:https://www.cnblogs.com/jans2002/p/556457.html
Copyright © 2020-2023  润新知