概要
入力フィーチャクラスを使用して、クローズド マルチパッチの中に 3D フィーチャが含まれているかどうかを判定し、部分的または完全にマルチパッチの中にあるフィーチャを出力テーブルに記録します。
図
![[インサイド 3D (Inside 3D)] の図 [インサイド 3D (Inside 3D)] の図](GUID-0D3FC423-F05A-493B-8C44-63ECEDA78AA8-web.png)
使用法
- すべての入力フィーチャについて、そのジオメトリの一部として Z 情報が格納されている必要があります。2D フィーチャクラスに高さのフィールドがある場合、[属性でフィーチャを 3D に変換 (Feature to 3D By Attribute)] ツールを使用して、3D フィーチャクラスを作成できます。 
- 				この解析には、クローズド マルチパッチ ジオメトリが必要です。[クローズド 3D (Is Closed 3D)] ツールを使用すると、マルチパッチ フィーチャクラスにクローズド フィーチャが含まれているかどうかを判定できます。また、[クローズド マルチパッチの作成 (Enclose Multipatch)] ツールを使用すると、マルチパッチ フィーチャのギャップを除去できます。 
- [コンプレックス出力テーブル] オプションがオンの場合、所定の入力フィーチャが交差する各マルチパッチのレコードが作成されます。1 つのフィーチャが複数のクローズド マルチパッチ フィーチャ内に存在し、出力テーブルに複数のエントリがある場合があります。 
- 出力テーブルには、次のフィールドが存在しています。 - Target_ID - 入力フィーチャの一意の ID。
- Status - [Target_ID] フィールドで識別されるフィーチャが、マルチパッチの内側にあるか、部分的に内側にあるかを示します。
- Contain_ID - 入力フィーチャが内側または部分的に内側に存在しているマルチパッチの一意の ID を識別します。[コンプレックス出力テーブル] オプションがオンの場合のみ含まれます。
 
構文
arcpy.ddd.Inside3D(in_target_feature_class, in_container_feature_class, out_table, {complex_output})| パラメーター | 説明 | データ タイプ | 
| in_target_feature_class | 入力マルチパッチまたは 3D ポイント、ライン、ポリゴン フィーチャクラス | Feature Layer | 
| in_container_feature_class | 入力フィーチャのコンテナーとして使用するクローズド マルチパッチ フィーチャ | Feature Layer | 
| out_table | 閉じている [入力マルチパッチ フィーチャクラス] の内部または部分的に内部にある 3D の [入力フィーチャ] のリストを提供する出力テーブル。出力テーブルには、OBJECTID(オブジェクト ID)、Target_ID、および Status フィールドが含まれます。Status フィールドは、入力フィーチャ (Target_ID) がマルチパッチの内部にあるのか、部分的に内部にあるのかを示します。 | Table | 
| complex_output (オプション) | 入力フィーチャを含んでいるマルチパッチ フィーチャを特定する [Contain_ID] フィールドの作成を通じて、出力テーブルが、[入力フィーチャ] と [入力マルチパッチ フィーチャクラス] との間のリレーションシップを特定するかどうかを指定します。 
 入力フィーチャを含んでいるマルチパッチ フィーチャを特定する [Contain_ID] フィールドの作成を通じて、出力テーブルが、[入力フィーチャ] と [入力マルチパッチ フィーチャクラス] との間のリレーションシップを特定するかどうかを指定します。 
 | Boolean | 
コードのサンプル
Inside3D (インサイド 3D) の例 1 (Python ウィンドウ)
次のサンプルは、Python ウィンドウでこのツールを使用する方法を示しています。
import arcpy
from arcpy import env
arcpy.CheckOutExtension('3D')
env.workspace = 'C:/data'
arcpy.Inside3D_3d('inFeature.shp', 'sample.gdb/multipatch', 'sample.gdb/output_table')
Inside3D (インサイド 3D) の例 2 (スタンドアロン スクリプト)
次のサンプルは、スタンドアロン Python スクリプトでこのツールを使用する方法を示しています。
'''****************************************************************************
Name: Inside3D Example
Description: This script demonstrates how to use the
             Inside3D tool.
****************************************************************************'''
# Import system modules
import arcpy
import exceptions, sys, traceback
from arcpy import env
try:
    # Obtain a license for the ArcGIS 3D Analyst extension
    arcpy.CheckOutExtension('3D')
    # Set environment settings
    env.workspace = 'C:/data'
    # Set Local Variables
    inFC = 'Points_3D.shp' # the input feature
    inMP = 'Buildings.shp' # the input multi-patch
    # Ensure output has a unique name
    outTbl = arcpy.CreateUniqueName('Output_Table.dbf')
    
    # Execute Inside 3D
    arcpy.Inside3D_3d(inFC, inMP, outTbl)
except arcpy.ExecuteError:
    print arcpy.GetMessages()
except:
    # Get the traceback object
    tb = sys.exc_info()[2]
    tbinfo = traceback.format_tb(tb)[0]
    # Concatenate error information into message string
    pymsg = 'PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}'\
          .format(tbinfo, str(sys.exc_info()[1]))
    msgs = 'ArcPy ERRORS:\n {0}\n'.format(arcpy.GetMessages(2))
    # Return python error messages for script tool or Python Window
    arcpy.AddError(pymsg)
    arcpy.AddError(msgs)
環境
ライセンス情報
- Basic: 次のものが必要 3D Analyst
- Standard: 次のものが必要 3D Analyst
- Advanced: 次のものが必要 3D Analyst