ArcGIS for Desktop

  • Documentation
  • Tarification
  • Support

  • My Profile
  • Aide
  • Sign Out
ArcGIS for Desktop

ArcGIS Online

La plateforme cartographique de votre organisation

ArcGIS for Desktop

Un SIG professionnel complet

ArcGIS for Server

SIG dans votre entreprise

ArcGIS for Developers

Outils de création d'applications de localisation

ArcGIS Solutions

Modèles d'applications et de cartes gratuits pour votre secteur d'activité

ArcGIS Marketplace

Téléchargez des applications et des données pour votre organisation.

  • Documentation
  • Tarification
  • Support
Esri
  • Se connecter
user
  • Mon profil
  • Déconnexion

Aide

  • Accueil
  • Commencer
  • Carte
  • Analyser
  • Gérer les données
  • Outils
  • Plus...

Inclure un multipatch

  • Récapitulatif
  • Utilisation
  • Syntaxe
  • Exemple de code
  • Environnements
  • Informations de licence

Récapitulatif

Crée des entités multipatch fermées dans la classe d'entités en sortie à l'aide des entités du multipatch en entrée.

Utilisation

  • Utilisez cet outil pour des entités multipatch conçues pour être fermées mais qui présentent des discontinuités géométriques qui les maintiennent ouvertes, telles que des bâtiments.

  • Toutes les entités multipatch sont évaluées pour déterminer lesquelles sont fermées. Les entités qui sont déjà fermées sont copiées vers le multipatch en sortie.

  • L'outil Fermeture 3D permet de déterminer si une classe d'entités multipatch contient des entités non fermées.

  • Cet outil est un opérateur 3D qui fournit des fonctions analytiques sur les entités 3D. Pour plus d'informations sur les opérateurs de jeu à utiliser et sur la manière de les utiliser, reportez-vous à la rubrique Utilisation d'opérateurs de jeu 3D.

Syntaxe

EncloseMultipatch_3d (in_features, out_feature_class, {grid_size})
ParamètreExplicationType de données
in_features

Entités multipatch utilisées pour créer des multipatchs fermés.

Feature Layer
out_feature_class

Entités multipatch fermées en sortie.

Feature Class
grid_size
(Facultatif)

Résolution qui sera utilisée pour créer des entités multipatch fermées. Cette valeur est définie à l'aide des unités linéaires de la référence spatiale de l'entité en entrée.

Double

Exemple de code

Exemple 1 d'utilisation de l'outil EncloseMultipatch (fenêtre Python)

L'exemple suivant illustre l'utilisation de cet outil dans la fenêtre Python.

import arcpy
from arcpy import env

arcpy.CheckOutExtension('3D')
env.workspace = 'C:/data'
arcpy.EncloseMultiPatch_3d('unclosed_features.shp', 
                          'enclosed_features.shp', 0.5)
Exemple 2 d'utilisation de l'outil EncloseMultipatch (script autonome)

L'exemple suivant illustre l'utilisation de cet outil dans un script Python autonome.

'''*********************************************************************
Name: Model Shadows For GeoVRML Models
Description: Creates a model of the shadows cast by GeoVRML models 
             imported to a multipatch feature class for a range of dates
             and times. A range of times from the start time and end 
             time can also be specified by setting the EnforceTimes 
             Boolean to True. This sample is designed to be used in a 
             script tool.
*********************************************************************'''
# Import system modules
import arcpy
from datetime import datetime, time, timedelta

#*************************  Script Variables  **************************
inFiles = arcpy.GetParameterAsText(0) # list of input features
spatialRef = arcpy.GetParameterAsText(1) # list of GeoVRML files
outFC = arcpy.GetParameterAsText(2) # multipatch from 3D files
inTimeZone = arcpy.GetParameterAsText(3) # time zone
startDate = arcpy.GetParameter(4) # starting date as datetime
endDate = arcpy.GetParameter(5) # ending date as datetime
dayInterval = arcpy.GetParameter(6) # day interval as long (0-365)
minInterval = arcpy.GetParameter(7) # minute interval as long (0-60)
enforceTime = arcpy.GetParameter(8) # minute interval as Boolean
outShadows = arcpy.GetParameterAsText(9) # output shadow models
outIntersection = arcpy.GetParameterAsText(10) # shadow & bldg intersection

# Function to find all possible date/time intervals for shadow modelling
def time_list():
    dt_result = [startDate]
    if dayInterval:
        if endDate: #Defines behavior when end date is supplied
            while startDate < endDate:
                startDate += timedelta(days=dayInterval)
                dt_result.append(startDate)
            dt_result.append(endDate)
        else: # Behavior when end date is not given
            daymonthyear = datetime.date(startDate)
            while startDate <= datetime(daymonthyear.year, 12, 31, 23, 59):
                startDate += timedelta(days=dayInterval)
                dt_result.append(startDate)
    return dt_result

try:
    arcpy.CheckOutExtension('3D')
    importFC = arcpy.CreateUniqueName('geovrml_import', 'in_memory')
    # Import GeoVRML files to in-memory feature
    arcpy.ddd.Import3DFiles(inFiles, importFC, 'ONE_FILE_ONE_FEATURE', 
                            spatialRef, 'Z_IS_UP', 'wrl')
    # Ensure that building models are closed
    arcpy.ddd.EncloseMultiPatch(importFC, outFC, 0.05)
    # Discard in-memory feature
    arcpy.management.Delete(importFC)
    dt_result = time_list()
    for dt in dt_result:
        if dt == dt_result[0]:
            shadows = outShadows
        else:
            shadows = arcpy.CreateUniqueName('shadow', 'in_memory')
        arcpy.ddd.SunShadowVolume(outFC, dt, shadows, 'ADJUST_FOR_DST', 
                                  inTimeZone, '', minInterval, 'MINUTES')
        if dt is not dt_result[0]:
            arcpy.management.Append(shadows, outShadows)
            arcpy.management.Delete(shadows)
    arcpy.ddd.Intersect3D(outFC, outIntersection, outShadows, 'SOLID')
    arcpy.CheckInExtension('3D')
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)

Environnements

  • Espace de travail courant
  • Etendue
  • Système de coordonnées en sortie
  • Transformations géographiques
  • Mot-clé CONFIG en sortie
  • Validation automatique
  • Domaine XY en sortie
  • Domaine Z en sortie

Informations de licence

  • ArcGIS for Desktop Basic: Requis 3D Analyst
  • ArcGIS for Desktop Standard: Requis 3D Analyst
  • ArcGIS for Desktop Advanced: Requis 3D Analyst

Thèmes connexes

  • Vue d'ensemble du jeu d'outils Entités 3D
  • A propos des entités 3D
  • Notions de base relatives au géotraitement avec l'Extension ArcGIS 3D Analyst
  • Utilisation d'opérateurs de jeu 3D
  • Procédure d'importation d'un modèle 3D existant dans une classe d'entités multipatch
  • multipatch
Vous avez un commentaire à formuler concernant cette rubrique ?

ArcGIS for Desktop

  • Accueil
  • Documentation
  • Tarification
  • Support

ArcGIS Platform

  • ArcGIS Online
  • ArcGIS for Desktop
  • ArcGIS for Server
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

A propos d'Esri

  • A propos de la société
  • Carrières
  • Blog des initiés
  • Conférence des utilisateurs
  • Sommet des développeurs
Esri
© Copyright 2016 Environmental Systems Research Institute, Inc. | Confidentialité | Légal