Доступно с лицензией 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.
| Boolean |
in_include_reports (Дополнительный) | В зависимости от способа создания пакета правил, он может содержать логику, которая генерирует один или несколько отчетов в процессе создания моделей. Эти отчеты могут содержать разнообразную информацию об объектах. Примером является пакет правил, содержащий отчеты о количестве окон, построенных для каждой модели здания. Этот параметр игнорируется, если пакет правил не содержит логику для генерации отчетов.
| Boolean |
in_leaf_shapes (Дополнительный) | Пакеты правил CityEngine создают ресурсы с помощью генерации частей компонентов и их объединения в один 3D объект. Однако можно также хранить эти компоненты, или геометрию листов, как отдельные объекты. Эта опция может быть особенно важной при выполнении анализа субэлементов 3D объекта, например, окон здания. Этот параметр определяет, является ли каждый входной объект одним из следующих:
Например, правило может генерировать бесшовные модели зданий по входным полигонам контуров, или оно может создать отдельные объекты для каждой стены квартиры, включая внешние панели, представление центральной точки и линий границ. В этом примере, стены квартиры, центральные точки и контуры рассматриваются как геометрия листов.
| Boolean |
Производные выходные данные
Name | Объяснение | Тип данных |
out_points | При создании геометрии листов выходной класс точечных объектов создается в том же местоположении, что и основной выходной класс объектов-мультипатч. | Класс объектов |
out_lines | При создании геометрии листов выходной класс полилинейных объектов создается в том же местоположении, что и основной выходной класс объектов-мультипатч. | Класс объектов |
out_multipoints | При создании геометрии листов выходной класс полигональных объектов создается в том же местоположении, что и основной выходной класс объектов-мультипатч. | Класс объектов |
Пример кода
В следующем скрипте окна 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