Объекты из правил CityEngine (3D Analyst)

Доступно с лицензией 3D Analyst.

Сводка

Создает 3D геометрию из существующих 2D и 3D входных объектов с помощью правил, установленных в ArcGIS CityEngine.

Использование

  • Входными объектами могут быть точки, полигоны или мультипатчи. @StartRule в файле CityEngine пакета правил (.rpk) должен указывать ожидаемый тип входного объекта: @InPoint аннотация для точек, @InPolygon для полигонов или @InMesh для объектов-мультипатч. Если @StartRule не указан как один из типов, перечисленных выше, то типом объекта будет считаться полигон. Если входными данными является не ожидаемый тип геометрии, возникает ошибка.

  • Входные объекты могут быть слоями объектов с условными знаками, созданными с помощью правил. Правила CityEngine обычно включают ряд параметров (также называемых attrs в CityEngine), которые управляют тем, как выходные 3D-модели будут создаваться на основе входных форм. Например, правило, которое создает каркас здания, может иметь attr типа double для BuildingHeight и attr типа integer для FloorCount. Если у входного класса объектов есть поле атрибутов с тем же именем и типом данных, как у правила CityEngine, то значения из него будут автоматически использоваться для создания выходных моделей. Это автоматическое сопоставление свойств правил CityEngine с полями атрибутов называется сопоставлением полей по умолчанию. Если условные знаки входного слоя настроены по правилам, то наследуются пользовательские значения поля и свойства символов, указанные в слое символов по правилам. Можно применить пользовательские значения полей для замещения значений поля по умолчанию, которое задается пакетом правил.

  • Входной Пакет правил – это пакет правил CityEngine (.rpk). Это сжатый файл, содержащий скомпилированное правило CityEngine и элементы, связанные с ним. Параметр Экспорт геометрии листов доступен, только если входной пакет правила сообщает, что он поддерживает эту операцию, с помощью следующей аннотации CGA: @StartRule @Out (granularity=separatedShapes).

  • Когда геометрия листов генерируется с использованием параметра Экспорт геометрии листов, создается стандартный набор классов объектов в том же местоположении, где находится первичный выходной класс объектов-мультипатч, при этом используются следующие соглашения о наименовании: <outputFC_Points>, <outputFC_MPoints> и <outputFC_Lines>. Все выходные классы объектов содержат атрибутивное поле с именем OriginalOID, которое ссылается на ObjectID входного объекта, на базе которого был создан выходной объект. Поле OriginalOID может использоваться для соединения выходного класса объектов с входным. Если отчеты строятся с использованием параметра Включить отчеты, выходной класс объектов также будет получать атрибут для каждого отчета.

  • Поле с именем OriginalOID добавляется к выходным классам пространственных объектов, чтобы содержать ObjectID входного объекта, из которого создан каждый выходной объект. Если входной класс пространственных объектов уже содержит поле с именем OriginalOID, то к новому имени поля прибавляется число, например, OriginalOID2.

  • Подробная информация по ошибкам и предупреждениям, возникшим при конвертации, записывается в файл журнала с именем PRT#.txt (где # является числом, которое возрастает при каждом запуске этого инструмента). Этот файл находится в <Install drive>:\Users\<user name>\AppData\Local\ESRI\GeoProcessing.

Синтаксис

arcpy.3d.FeaturesFromCityEngineRules(in_features, in_rule_package, out_feature_class, {in_existing_fields}, {in_include_reports}, {in_leaf_shapes})
ParameterОбъяснениеТип данных
in_features

Входные объекты: точечные, полигональные или мультипатчи. Входные объекты могут быть слоями с условными обозначениями, построенными по правилам. При этом наследуется соответствие полей (настройки условных обозначений на основе атрибутов).

Feature Layer
in_rule_package

Файл пакета правил CityEngine (*.rpk), содержащий данные о правиле CGA и элементы. Правило, связанное c @StartRule в файле пакета правил CityEngine (.rpk) должно быть связано @InPoint с пакетом правил, предназначенных для точечных объектов, @InPolygon с пакетом правил, предназначенных для полигональных объектов, или @InMesh с пакетом правил, предназначенных для объектов-мультипатчей. Если @StartRule не связано с @InPoint, @InPolygon или @InMesh, тип объекта будет принят как полигон.

File
out_feature_class

Выходной класс пространственных объектов, содержащий объекты-мультипатчи, обработанные правилами CGA. Поле с именем OriginalOID добавляется к выходным классам пространственных объектов, чтобы содержать ObjectID входного объекта, из которого создан каждый выходной объект.

Feature Class
in_existing_fields
(Дополнительный)

Управляет сохранением в выходном классе объектов атрибутивных полей из входного класса. Этот параметр не учитывается, если используется параметр in_leaf_shapes.

  • INCLUDE_EXISTING_FIELDSАтрибутивные полей из входного класса объектов будут включены в выходной класс. Используется по умолчанию.
  • DROP_EXISTING_FIELDSАтрибутивные полей из входного класса объектов не будут добавляться в выходной класс. Эта опция будет использоваться автоматически, если параметр in_leaf_shapes задан как 'FEATURE_PER_LEAF_SHAPE'.
Boolean
in_include_reports
(Дополнительный)

В зависимости от способа создания пакета правил, он может содержать логику, которая генерирует один или несколько отчетов в процессе создания моделей. Эти отчеты могут содержать разнообразную информацию об объектах. Примером является пакет правил, содержащий отчеты о количестве окон, построенных для каждой модели здания. Этот параметр игнорируется, если пакет правил не содержит логику для генерации отчетов.

  • INCLUDE_REPORTSВ выходном классе объектов создаются новые атрибутивные поля, содержащие значения отчетов для каждого объекта, как задано логикой генерации отчетов пакета правил. Для каждого значения отчета создается уникальный атрибут.
  • EXCLUDE_REPORTSОтчеты, созданные в пакете правил, игнорируются, новые атрибуты, относящиеся к этим отчетам, не генерируются. Используется по умолчанию.
Boolean
in_leaf_shapes
(Дополнительный)

Пакеты правил CityEngine создают ресурсы с помощью генерации частей компонентов и их объединения в один 3D объект. Однако можно также хранить эти компоненты, или геометрию листов, как отдельные объекты. Эта опция может быть особенно важной при выполнении анализа субэлементов 3D объекта, например, окон здания.

Этот параметр определяет, является ли каждый входной объект одним из следующих:

  • Конвертированным в один, слитый объект-мультипатч
  • Становится набором из нескольких объектов, которые могут быть точками, полигонами или мультипатчами.

Например, правило может генерировать бесшовные модели зданий по входным полигонам контуров, или оно может создать отдельные объекты для каждой стены квартиры, включая внешние панели, представление центральной точки и линий границ. В этом примере, стены квартиры, центральные точки и контуры рассматриваются как геометрия листов.

  • FEATURE_PER_LEAF_SHAPEГенерируются дополнительные выходные классы объектов. Используется по умолчанию. Атрибутивные полей из входного класса объектов не будут включены в выходной класс. Выходной класс объектов содержит поле с именем OriginalOID, которое ссылается на ObjectID входного объекта, на базе которого был создан выходной объект.
  • FEATURE_PER_SHAPEДополнительные классы объектов не генерируются, даже если дополнительные геометрии листов заданы логикой правила. Вся геометрия содержится в выходных объектах-мультипатч.
Boolean

Производные выходные данные

NameОбъяснениеТип данных
out_points

При создании геометрии листов выходной класс точечных объектов создается в том же местоположении, что и основной выходной класс объектов-мультипатч.

Класс объектов
out_lines

При создании геометрии листов выходной класс полилинейных объектов создается в том же местоположении, что и основной выходной класс объектов-мультипатч.

Класс объектов
out_multipoints

При создании геометрии листов выходной класс полигональных объектов создается в том же местоположении, что и основной выходной класс объектов-мультипатч.

Класс объектов

Пример кода

FeaturesFromCityEngineRules, пример (окно Python)

В следующем скрипте окна Python показано, как использовать инструмент FeaturesFromCityEngineRules в режиме прямого запуска:

import arcpy
from arcpy import env
arcpy.CheckOutExtension("3D")
env.workspace = "C:/data"
arcpy.FeaturesFromCityEngineRules_3d("in_polygons", 
                                     "rules.rpk", 
                                     "out_multipatches")

Environments

Этот инструмент не использует параметры среды геообработки

Информация о лицензиях

  • Basic: Требуется 3D Analyst
  • Standard: Требуется 3D Analyst
  • Advanced: Требуется 3D Analyst

Связанные разделы