Label | Explanation | Data Type |
Input Point Cloud
| The input LAS file or dataset containing point cloud data from which polyline features will be generated. | LAS Dataset Layer |
Output Line Features
| The polyline feature class that will be created to store features generated from LAS data. If no workspace is specified, the scratch workspace will be used. | Feature Class |
Coordinate System
(Optional) | The coordinate system of the input LAS data and the output polyline feature class. By default, the coordinate system that is defined in the LAS data for both horizontal and vertical coordinate systems will be used. | Spatial Reference |
Output Z Value
(Optional) | The z-value that will be assigned to the generated polyline features. The default is 0. You can specify a value in meters or feet. The tool will automatically convert the value to use the unit of measure of the vertical coordinate system of the data. | Linear Unit |
Simplify Lines
(Optional) | Specifies whether output polylines will be simplified during processing using a polyline compression algorithm to normalize generated polylines before removing extra vertices that are not necessary for retaining effective areas.
| Boolean |
Short Feature Tolerance
(Optional) | The tolerance in meters or international feet by which short features will be deleted. The default is 1 meter. Use a value of 0 to bypass preserving short features. | Linear Unit |
Z Ranges (Optional) | One or more z-ranges of the input point cloud. Points in the specified z-ranges will be analyzed when generating the output polyline features. If no value is specified, the full range of z-values present in the input point cloud data will be used. | Value Table |
Extent (Optional) | The extent of the data that will be evaluated.
When coordinates are manually provided, the coordinates must be numeric values and in the active map's coordinate system. The map may use different display units than the provided coordinates. Use a negative value sign for south and west coordinates. | Extent |
Summary
Creates a polyline feature class containing 2D polyline features generated from input point cloud data. The output of this tool can be refined and used as an input when populating an Indoors workspace with data to assist with creating floor-aware maps and scenes.
Usage
This tool accepts a LAS file as input and creates 2D polyline features that represent vertically-extended architecture such as walls, doors, and columns. Use this tool as part of a larger workflow to generate floor plans from point clouds.
You can refine the output polyline feature class created by the tool for use as input to the Import Features To Indoor Dataset tool.
When the input point cloud has a coordinate system defined, the Coordinate System parameter is automatically set. If the input point cloud has no coordinate system defined, use the Coordinate System parameter to specify one. If the input point cloud has an incorrect coordinate system defined, you can change it from the input point cloud's layer properties. The tool uses the specified coordinate system when processing the point cloud coordinates and when creating the output line features.
The tool processes one level from one facility per tool run. If the input point cloud data covers multiple facilities or levels (floors), use the following Processing Boundary parameters to limit the processing area:
- Use the Z Ranges parameter to limit processing to a single level or a subset of elevations on a level.
- Use the Extent parameter to limit processing to a single facility or a subset of a facility. The Extent parameter takes precedence over the Extent environment setting.
To improve the quality of the generated output, use the Z Ranges parameter to limit processing to a range of z-values that excludes most furniture, fixtures, lighting, and other objects that aren't room-bounding features. You can explore the point cloud data in a local scene to determine the optimal range of z-values to include. The following illustration shows how a processing z-range of 1-2 meters can avoid furniture and ceiling fixtures:
Use the Simplify Lines parameter to straighten generated output polylines and reduce the number of vertices. When this parameter is checked, a polyline compression algorithm is used to normalize generated polylines before removing extra vertices that are not necessary for retaining effective areas.
Use the Short Feature Tolerance parameter to delete short polyline features from the data. Features shorter than or equal to the specified tolerance will be removed unless they are within 0.05 meters of other features. Use a value of zero to avoid short features being removed, which can be helpful for visualizing wall positions in sparse point cloud data.
This tool may use the input point cloud's KeyPoint classification field during processing. If so, the tool will restore the field values to the original values at the end of the tool run.
Parameters
arcpy.indoors.GenerateFloorPlanFromPointCloud(in_point_cloud, out_line_features, {coordinate_system}, {output_z_value}, {simplify}, {short_feature_tolerance}, {z_ranges}, {extent})
Name | Explanation | Data Type |
in_point_cloud | The input LAS file or dataset containing point cloud data from which polyline features will be generated. | LAS Dataset Layer |
out_line_features | The polyline feature class that will be created to store features generated from LAS data. If no workspace is specified, the scratch workspace will be used. | Feature Class |
coordinate_system (Optional) | The coordinate system of the input LAS data and the output polyline feature class. By default, the coordinate system that is defined in the LAS data for both horizontal and vertical coordinate systems will be used. | Spatial Reference |
output_z_value (Optional) | The z-value that will be assigned to the generated polyline features. The default is 0. You can specify a value in meters or feet. The tool will automatically convert the value to use the unit of measure of the vertical coordinate system of the data. | Linear Unit |
simplify (Optional) | Specifies whether output polylines will be simplified during processing using a polyline compression algorithm to normalize generated polylines before removing extra vertices that are not necessary for retaining effective areas.
| Boolean |
short_feature_tolerance (Optional) | The tolerance in meters or international feet by which short features will be deleted. The default is 1 meter. Use a value of 0 to bypass preserving short features. | Linear Unit |
z_ranges [z_ranges,...] (Optional) | One or more z-ranges of the input point cloud. Points in the specified z-ranges will be analyzed when generating the output polyline features. If no value is specified, the full range of z-values present in the input point cloud data will be used. | Value Table |
extent (Optional) | The extent of the data that will be evaluated.
| Extent |
Code sample
The following Python window script demonstrates how to use the GenerateFloorPlanFromPointCloud function in immediate mode.
import arcpy
arcpy.indoors.GenerateFloorPlanFromPointCloud(r"C:\Indoors\PointcloudData\Floor1scan.LAS",
r"C:\Indoors\ExampleData.gdb\OutputPolylines",
"", "", "", "", "", "",
)
The following stand-alone script demonstrates how to use the GenerateFloorPlanFromPointCloud function.
#Name: Indoors_GenerateFloorPlanFromPointCloud_example2.py
#Description: Generates polyline floor plan features from LAS point cloud data
import arcpy
# Check Out Extensions
arcpy.CheckOutExtension('Indoors')
arcpy.CheckOutExtension('3D')
arcpy.CheckOutExtension('Spatial') # or 'ImageAnalyst'
# Set Local Variables
in_point_cloud = r"C:\data\Building L - All_Floors.las"
out_line_features = r"C:\data\FloorPlans.gdb\Building_L_East_Floor_1"
coordinate_system = 'PROJCS["NAD_1983_2011_StatePlane_California_VI_FIPS_0406",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],
PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],
PARAMETER["False_Easting",2000000.0],PARAMETER["False_Northing",500000.0],PARAMETER["Central_Meridian",-116.25],
PARAMETER["Standard_Parallel_1",32.78333333333333],PARAMETER["Standard_Parallel_2",33.88333333333333],PARAMETER["Latitude_Of_Origin",32.16666666666666],
UNIT["Meter",1.0],AUTHORITY["EPSG",6425]]'
output_z_value = "4.25 Meters"
simplify = "SIMPLIFY"
short_feature_tolerance = "25.4 Millimeters"
z_ranges = "1 1.8;2.2 3.2"
extent="DEFAULT"
# Call the function
arcpy.gp.GenerateFloorPlanFromPointCloud(
in_point_cloud,
out_line_features,
coordinate_system,
output_z_value,
simplify,
short_feature_tolerance,
z_ranges,
extent
)
# Check In Extensions
arcpy.CheckInExtension('Indoors')
arcpy.CheckInExtension('3D')
arcpy.CheckInExtension('Spatial')
Environments
Licensing information
- Basic: No
- Standard: No
- Advanced: Requires 3D Analyst and ArcGIS Indoors Pro or ArcGIS Indoors Maps. Also requires Spatial Analyst or Image Analyst