04-09-2019 04:52 AM
I successfully connected the intersect features operator with the summarize related features operator.
But the whole thing only works if a features output operator is placed in between. Otherwise, the geometry of the intersected features is not available.
Is there a way to avoid the use of the features output operator?
Solved! Go to Solution.
04-09-2019 05:08 AM
I'm not sure why it works with FDO operator in the middle, but just this week we discovered a problem with the Expression dialog that probably explains what you're seeing. We are accidentally filtering out geometry fields of type Vector (v. Area, Line, Point), which is the type that the Intersect Features operator produces. This will be resolved with 16.6 later this year, but you can work around it now. This limitation is only apparent in the attribute list on the dialog itself. If you hand-enter the expression, my understanding is that it will work properly. E.g. try building the syntax through the dialog and entering the geometry fieldname yourself. See if that works? - Hal
04-09-2019 06:12 AM
I tried to enter the expression by hand, but the following error comes up "The attribute DetailFeatures.Geometry is missing".
The Output type field is never filled which signals that something goes wrong.
If I add the FeaturesOut Operator my syntax is accepted: SUM(LENGTH(DetailFeatures.Geometry; MeasType.TrueMeas; Unit.Kilometer))
04-09-2019 10:24 AM - edited 04-09-2019 10:26 AM
Did you change the default primary geometry field name coming out of Intersect Features? If you didn't then I would expect the syntax to be something like
SUM(LENGTH(DetailFeatures.FA_IntersectFeatures; MeasType.TrueMeas; Unit.Kilometer))
04-10-2019 12:03 AM
So I grab the GeometryFieldName from the properties panel? I've never realized this possibility.
04-10-2019 07:13 AM
Yes, that would be one way. You can set whatever name you want the new Primary Geometry field to be called in the Intersect Features operator's Properties Panel (or on the port itself by double-clicking the port) so you then know what to use downstream. If in doubt you can always (temporarily) hook up a Features Information operator to the stream to see what the name of the Primary Geometry field is at any point of the model. Hook up the Features Information operator where you want it, select it, right-click and select Run Just This to see information about the stream at that point in the model.
Hope that helps.
04-10-2019 07:44 AM
Thanks, Ian, for shepherding Ruth through that.
Ruth, note that you actually control the name of the output primary geometry field name through a (hidden) port, so in this case it's not so much about figuring out what it is, but stating what it should be :-). You can make the GeometryFieldName port visible on the canvas by checking the Show column for that port in the Properties panelfor Intersect Features (and many other operators), if you wish to override the default name.
Another interesting possibility for this specific scenario, that I share just because I know your curiosity with functional attributes , is that you can turn the Vector geometry field generated by Intersect Features into a more precisely typed geometry field using Generate Functional Attributes. For this use one of 3 geometry type filtering functions, FILTERPOINT, FILTERLINEAR, FILTERAREAL. Depending on the nature of your data and the spatial relationship you've chosen, you may know that in fact only areas (for example) are in that vector field, and wish to have it redeclared as such. Or you may be aware that lines and points are in there, but you want to filter out everything except areas, only passing those through.