リプレゼンテーションを適用してフィーチャ レイヤーをマップに追加

'リプレゼンテーションを適用してフィーチャ レイヤをマップに追加

'Add a Feature Class with Representations Programmatically
'http://help.arcgis.com/en/sdk/10.0/vba_desktop/conceptualhelp/index.html#//00010000003q000000
Public Sub AddRepresentationClass()
  On Error GoTo errorhandler
      
  Dim pWorkspaceFactory As IWorkspaceFactory
  Dim pFeatureWorkspace As IFeatureWorkspace
  Dim pFeatureLayer As IFeatureLayer
  Dim pMxDocument As IMxDocument
  Dim pMap As IMap
  Dim pRC As IRepresentationClass
  Dim pGeoFL As IGeoFeatureLayer
  Dim pRepRend As IRepresentationRenderer
  Dim pRendPropPage As IRendererPropertyPage
  
  'Create a new AccessWorkspaceFactory object and open a personal geodatabase
  Set pWorkspaceFactory = New FileGDBWorkspaceFactory
  Set pFeatureWorkspace = pWorkspaceFactory.OpenFromFile("C:\Programs\ArcGIS\ArcTutor\Representations\Exercise_5\Representations_5.gdb", 0) 'ジオデータベース ワークスペース
  
  'Get the representation workspace extension from workspace
  Dim pExtManager As IWorkspaceExtensionManager
  Dim pRepWE As IRepresentationWorkspaceExtension
  Dim pUID As IUID
  Set pExtManager = pFeatureWorkspace
  Set pUID = New UID
  pUID.Value = "{FD05270A-8E0B-4823-9DEE-F149347C32B6}"
  Set pRepWE = pExtManager.FindExtension(pUID)
  Set pRC = pRepWE.OpenRepresentationClass("RoadP_Rep") 'リプレゼンテーション クラス名(フィーチャクラス プロパティ → リプレゼンテーション タブから確認)
  
  'Create a new FeatureLayer and assign the feature class to it
  Set pFeatureLayer = New FeatureLayer
  Set pFeatureLayer.FeatureClass = pRC.FeatureClass
  pFeatureLayer.Name = pFeatureLayer.FeatureClass.AliasName
  'Add the FeatureLayer to the focus map
  Set pMxDocument = Application.Document
  Set pMap = pMxDocument.FocusMap
  pMap.AddLayer pFeatureLayer
  
  'Use representation renderer to draw the features
  Set pRepRend = New RepresentationRenderer
  Set pRepRend.RepresentationClass = pRC
  Set pGeoFL = pFeatureLayer
  Set pGeoFL.Renderer = pRepRend
  Set pRendPropPage = New RepresentationRulesPropertyPage
  pGeoFL.RendererPropertyPageClassID = pRendPropPage.ClassID
  'Refresh map drawing and update table of contents (TOC)
  pMxDocument.ActiveView.Refresh
  pMxDocument.UpdateContents
  Exit Sub
errorhandler:
    MsgBox Err.Description, vbInformation, "AddRepresentationClass"
End Sub