I have a building footprints layer with the name and other data about the building. I have a table which details "work requests" such as maintenance requests from users of these buildings. The work request data details the TYPE of request (electrical, mechanical etc) and the date and building name. I am trying to associate these work requests to matching buildings accordingly so that i may display each request as a dot on top of the building. The purpose is to create a time lapse video of all the different work requests that occur throughout the year. I do not want to manually create each feature (over 1000) and place on top of each building. I want something that can be updated year after year.

I've looked into make a query table..and also relationship classes.

  • Where is the source data stored @pacificglass? The Make Query Table should work for you along with the time properties - but the query to join the two tables may depend on the type of data source. – kes Mar 14 '16 at 16:45
  • Source data is stored in a gdb. I don't know why the SQL expression won't work. It says "An unexpected error occurred.." and something about either layers/tables. All i did was make building names equal each other. – pacificglass Mar 14 '16 at 18:53

Here is one option:

  1. Create a point centroid point feature class (fc) from the building polygon layer (only do this once or whenever new building is added, changed, or removed)
  2. Use Add XY Coordinates to to create centroid X and Y table fields (only do this once or whenever new building is added, changed, or removed)
  3. Join (by building name field) building centroid fc to the work request table
  4. Export a new table from the joined table

Two options for representing the coincident points at each building:

  1. Create a point feature class from the X/Y fields and use representation method to disperse the features (does not change the original x/y point locations)

How to scatter stacked or clustered marker symbols for point features

  1. Add or subtract random numbers to x/y field using this Q/A as a reference, and then create the point fc from the modified x/y fields using Make XY Event layer:

Adding "noise" to overlapping X,Y coordinates so no longer in EXACT same place?

  • I've actually started on the first four steps. I am trying to convert to representations now and it keeps crashing ArcMap. I'll keep trying. Although it's converted to representations will it still display w/ time lapse? – pacificglass Mar 14 '16 at 18:50
  • This method worked just great. I used the 1st option of dispersing the points. Simple and repeatable. No coding needed. Thanks. – pacificglass Mar 14 '16 at 19:05

If you need the precise location of work within a building's footprint, you're doomed without a specific X/Y. But if you just want a point to be displayed, anywhere on the footprint, so that the time-lapse video looks like the buildings coming down with acne as work requests pile up, you might use an arcpy Geometry object to get each building's extent rectangle, and then place each request as a point randomly within that rectangle.

Here's how I'd structure the loops to work on this:

SearchCursor cycling through requests

Gets building name from requests

uses building name to locate building feature

generate extent rectangle

create XY point object at random within extent rectangle

Add Point object to list, maybe with request's attributes

After the first loop is done, the second loop goes:

for loop cycling through the list of Point objects

generate row object from XY coordinates and attributes

InsertCursor inserts them into empty point field

delete InsertCursor
  • I am not great at Python or any coding unfortunately. Appreciate the help though. – pacificglass Mar 14 '16 at 18:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.