Is it possible to automatically populate text element contents to properties using Dynamic Feature Scoring (DFS)? Is there more detailed documentation(except delivered help) how these rules are defined?
Thanks, Oto.
This helped a lot.
Regards,
Holger
Greetings Jeff,
this sounds great. I'll send you an pn.
Can you please explain in more details how this feature scoring works and is evaluated? As for all examples I have seen that scoring is always set to 100.
Also mentioned C++ example would be great.
Greetings Holger,
First some background. In Bentley Map the Dynamic Feature Scoring (DFS) technology is similar to that of the "ATTACH BEST FEATURE" command from the MicroStation GeoGraphics product in which various element criteria was evaluated in order to meet (or exceed) a "minimum score" before feature tagging selected elements. A similar element evaluation and scoring system is implemented in DFS with the most significant difference being that all evaluations are made at runtime (as opposed to a batch method) and no persisted feature tags are required.
Since Bentley Map is a feature based system, DFS is used to "infer" what "feature class" an element might represent. If an element has traditional RDBMS linkages, then DFS will infer the attached business properties. However there is currently no attempt to infer text string or text node values as business properties. As Dan mentioned there are a couple of VBA applications such as text2xfm which simply converts MicroStation text elements to XFM feature instances and sets a business property using the text string values.
If you are able to develop using C/C++ then you can implement a more integrated and robust solution using the Bentley Map API and application owned business properties. I've developed an example C++ application that seamlessly extends the business properties for all Bentley Map session data, including adds properties containing text and text node strings, cell names, XY coordinate positions, LAT/LON coordinate positions and other MicroStation element information. It does all of this w/o changing anything about the element or XFM feature (e.g. nothing is written on the element or into the design file). The best part is that with this approach all of these extended business properties are available for use in Bentley Map applications such as the Data Browser, Interoperability and Map Manager.
Please contact me directly if you are interested in developing a Bentley Map external property handler extension.
Jeff Bielefeld [Bentley]
There are some notes. At least XML example is in text format and can be copied.
<FeatureScoringRules minScore="100"><Feature useCriteria="" name="tax_proposed"><Rule type="cexpr" score="100">XFMHasDBLink(2,150)||XFMCompareElementLevelName("tax proposed")</Rule></Feature><Feature useCriteria="" name="Pole"><Rule type="DBLink" score="100" entity="2" mslink="130"/></Feature><Feature useCriteria="" name="Wire"><Rule type="DBLink" score="100" entity="2" mslink="130"/><Rule type="FeatureDef" score="100" levelName="true" cellName="false">Wire</Rule></Feature><Feature useCriteria="" name="Cable"><Rule type="DBLink" score="100" entity="2" mslink="80"/><Rule type="Element" score="100" levelName="Cable" cellName="Cable" elementType="2" checkZeroLengthLineElementType="false"/></Feature></FeatureScoringRules>
<FeatureScoringRules minScore="100">
<Feature useCriteria="" name="tax_proposed">
<Rule type="cexpr" score="100">XFMHasDBLink(2,150)||XFMCompareElementLevelName("tax proposed")</Rule>
</Feature>
<Feature useCriteria="" name="Pole">
<Rule type="DBLink" score="100" entity="2" mslink="130"/>
<Feature useCriteria="" name="Wire">
<Rule type="FeatureDef" score="100" levelName="true" cellName="false">Wire</Rule>
<Feature useCriteria="" name="Cable">
<Rule type="DBLink" score="100" entity="2" mslink="80"/>
<Rule type="Element" score="100" levelName="Cable" cellName="Cable" elementType="2" checkZeroLengthLineElementType="false"/>
</FeatureScoringRules>