I'm hoping to use collector as an asset management tool and having some issues. We're looking to use it to assess the condition of watercourse trash screens, where inspections would be carried out on a regular basis. We already have the locations of the screens mapped out and have a performa detailed the questions to be asked in the pop-up. Ideally, we'd like to have it set up so that new inspections don't overwrite previous ones, and we'll essentially be creating a database of all the times the screens are inspected - hope this makes sesne! We've managed to get something basic set up using coded domains, but I only get the option to copy or edit the current feature - not what we'd like :(!
If this is possible, would anyone be able to provide a reasonably detailed guide on how to achieve this?
Thanks in advance!
We are doing something similar with catch basin inspections.
What we've done is to set up our geodatabase with a feature class to store catch basin locations and attributes and an inspections table that is related to the feature class with a geodb relationship class (1 to many, catch basins to inspections).
We then add both to Arcmap and use a definition expression to limit the catch basin feature class records to those that have not had a completed inspection within the last two years.
This is then published to our ArcGIS server as an editable feature service and we then include this service in a web map (we use Portal but I believe this would work with AGOL as well).
The inspector can then load the web map in Collector and as he completes a new inspection record (by creating a new related inspection record), the catch basin the inspection was completed on will be excluded by the definition expression as it now has a recent inspection record. Two years from the date the last inspection was completed, it will again be displayed on the map.
Its working pretty well for us. The only problem we've had is that creating a related inspection record does not automatically trigger a refresh of the catch basin layer so the item does not immediately disappear from the map. You need to sufficiently zoom in/out etc to trigger the catch basin layer to refresh.
Hope this helps!
In this case I would use related tables to the known feature locations. Each time the field crew does their assessment they can tap on the feature, open the popup and choose the option to create a new record. The field crew can then go through and complete their assessment without overriding the previous inspection.
To do this I would:
Create a feature class containing all the known locations. Make sure to add the GlobalID field.
Create a table that will be used to collect the inspections. Add a GUID field which will be used in the relationship class
Create a relationship class and have it set to 1 to Many and use the GlobalID to GUID field.
Then you can publish a feature service, enable editing and then bring it into your map and configure your popups.
This lesson might help you out and marks out something very similar to what you are doing.
The rest of the lesson can be found here:
Hope this helps.
Thanks for the prompt response!
I've tried working through the workflow, but I'm unable to create a relationship class - I don't get the option when I right click on the .gdb. I presume this is down to me missing a relevent extension? What extension do I need to create a relationship class, or is there something?
Thanks for the help,
Relationship classes can be both created and edited in ArcGIS for Desktop Advanced and ArcGIS for Desktop Standard, they are read-only in ArcGIS for Desktop Basic
One last question;
Is it possible to set up date fields that will autopopulate? We're keen to keep this as simple as possible for the inspectors.
We plan on using two date fields - 'Today's Date' & 'Next Inspection'. Would it be possible to have both fields autopopulate? Inspections should be carried out every two weeks.
Thanks in advance,
So I would use the Editor tracking fields for the automatic timestamp for todays date. The Creator field would probably be the one you would use in your model. The timestamp gets recorded when ever a new feature is created and then the editor timestamp field will get updated whenever that record is updated so the creator field is always preserved.
For the next inspection date you would enter in a default value for the field but that would be only one value set and you would have to manually go into JSON of the service or republish the service when you want that date changed. This field might be best left for manual input.
While probably not something recommended by Esri, we've done similar things using triggers on the feature class table. There are obviously many things to watch out for here and it depends on your database whether or not this is possible. For instance, triggers are supported by most enterprise database systems but wouldn't work in a file geodatabase.
If the intent is to then build a layer that showed items due for an inspection, perhaps you could just add a layer that uses a definition expression to show items whose last inspection was more than two weeks from the current date?
Feel like I've said this before, but I have another question...
We've managed to get this all operational and plan on going live with data collection tomorrow and we've started to move forward and try use the Operational Dashboard.
We'd like to move the inspection data (which is the related table) into the Operational Dashboard and have something simple set up for all the non-GIS users to use. We've tried doing this, but we can't seem to see the related table?