<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://communities.bentley.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Utilities Example for ElementSensor</title><link>https://communities.bentley.com/products/products_generativecomponents/f/generativecomponents---forum/61494/utilities-example-for-elementsensor</link><description>I recently got a request for an example of using Element Sensor. I have posted something to the group files area. 
 3D Utilities Using ElementSensor 
 This “tubes up” a water/sewer network based upon a single-line model that has diameter as business</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>Re: Utilities Example for ElementSensor</title><link>https://communities.bentley.com/thread/172868?ContentTypeID=1</link><pubDate>Sun, 29 May 2011 13:59:44 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:c9a982a8-a4d3-4332-816e-3c39c00e1ef0</guid><dc:creator>dominic Seah</dc:creator><description>&lt;p&gt;Hi Xun,&lt;br /&gt;
&lt;br /&gt;
Apologies for the big lag in replying.&lt;br /&gt;
&lt;br /&gt;
4. I think the Catia global variables are accessible. The parameter collections
can be iterated through to find and access them using VB. See the examples on
this &lt;a href="http://v5vb.wordpress.com/"&gt;site&lt;/a&gt;. They are also accessible
via the Knowledge Advisor dialog boxes.&lt;br /&gt;
&lt;br /&gt;
The Catia examples raises a few questions for me: The way that Catia&amp;#39;s VB needs
to loop thru the &lt;a href="http://v5vb.wordpress.com/2010/03/04/navigating-parameter-collections/"&gt;&amp;#39;parameter
collection&amp;#39;&lt;/a&gt; and compare and match names sounds very slow and low tech. Surely,
there are better ways of accessing user parameters? Houdini replaced its HScript
with a &lt;a href="http://www.sidefx.com/docs/houdini9.1/hom/"&gt;Houdini Object Model&lt;/a&gt;
couple of years ago. Surely, it we need to access a parameter, we should just
have access it via an object interface, and not have to write loops.&lt;br /&gt;
&lt;br /&gt;
Houdini and a lot of other animation apps seem to be moving to Python. Even GH now
has a Python &lt;a href="http://python.rhino3d.com/"&gt;plugin&lt;/a&gt;. One supposed
advantage of Python is that it&amp;#39;s more object-oriented and has &lt;a href="https://spreadsheets.google.com/pub?key=p7efJLoHuYE-iw6JxBmpSQg&amp;amp;hl=en"&gt;dynamic typing&lt;/a&gt;.
ACAD&amp;#39;s new AssocFramework also uses something called &lt;a href="http://through-the-interface.typepad.com/through_the_interface/object_properties/page/2/"&gt;protocol
extensions&lt;/a&gt;, which also allows the user to extend the pre-compiled types or
classes when using its Parametric Drawing API. See AU2010 CP316 online. &amp;nbsp;ACAD&amp;#39;s
Overule API also allows the user to extend the behavior of the standard
entities using dotNET. I think the &lt;a href="http://communities.bentley.com/products/products_generativecomponents/f/360/p/63329/161080.aspx#161080"&gt;Stickman&lt;/a&gt;
example would benefit from dynamic typing. Will GC support dynamic typing, objects,
extension methods etc in the future? &lt;/p&gt;
&lt;p&gt;Hosts+ Aliases: interesting perspective. Do you mean like
the containers + pointers that Makai mentioned previously, when the new school
GC was introduced? Sounds very similar to ACAD&amp;#39;s AssocFramework Dependency Bodies?
These are containers for linking and defining constraints and parametrics that
link raw elements together.&lt;br /&gt;
&lt;br /&gt;
3. GC v EC Properties: EC classes and properties sound like they are designed
to be used in an OO setting. But hopefully not just as statically typed objects
only? &lt;a href="http://communities.bentley.com/products/geospatial/desktop/f/5924/p/50640/172218.aspx#172218"&gt;XFM&lt;/a&gt;
seems to cater for Inferred as well as Native Features, using EC. Like XFM, &lt;a href="http://communities.bentley.com/products/plant/design___engineering/w/plant_design_and_engineering__wiki/oppid-how-to-use-the-class-editor-mapping-extension-for-the-plant-project-database-tn.aspx"&gt;OpenPlant&lt;/a&gt;
has a lot of stuff that maps classes to databases schemas. I think scripting,
by its nature, will need a lot of dynamically typed stuff/attributes/parameters
made up by the user, that will need to interact with the class/schemas and
state info that Mstn or GC provide? &lt;/p&gt;
&lt;p&gt;XFM data apparently does not require an &lt;a href="http://communities.bentley.com/products/products_generativecomponents/f/360/products/geospatial/desktop/f/5924/p/50640/172218.aspx#172218"&gt;external
DB&lt;/a&gt;. So, how or what manages the dependencies, transactions, consistency/integrity
and even performance issues? GC+LINQ?&amp;nbsp; I
suppose GC can already use Excel as a solver, and draw the results, so using an
external DB as a &amp;#39;node&amp;#39;, where the input and output parameters are &lt;a href="http://www.grasshopper3d.com/forum/topics/how-do-i-add-inputs-and"&gt;managed&lt;/a&gt;
by GC, shouldn&amp;#39;t not a problem. Looks like GH is also looking at working to
provide &lt;a href="http://www.grasshopper3d.com/forum/topics/rhinocommongrasshopper-a-new"&gt;user
data&lt;/a&gt; / dictionaries, in addition to Data Trees. And MS has helped here with things like
LINQ, which should allow better DB access from scripts.&lt;/p&gt;
&lt;p&gt;I think definitely worth looking at simulation world, which
has been dealing with problems of dataflow computing AND &lt;a href="http://www.google.co.uk/url?sa=t&amp;amp;source=web&amp;amp;cd=1&amp;amp;ved=0CCAQFjAA&amp;amp;url=http%3A%2F%2Frsg.informatik.uni-kl.de%2Fpublications%2Fdatarsg%2FBaBS11.pdf&amp;amp;rct=j&amp;amp;q=Data-Flow%20Analysis%20of%20Extended%20Finite%20State%20Machines&amp;amp;ei=mPfhTa--Kc2JhQeD5YTzBw&amp;amp;usg=AFQjCNHDHs"&gt;state
machines&lt;/a&gt; for a &lt;a href="http://www.cs.cmu.edu/%7ECompose/paper_abstracts/making_choices.html"&gt;while&lt;/a&gt;,
including what role functional languages can play. The &lt;a href="http://www.google.co.uk/url?sa=t&amp;amp;source=web&amp;amp;cd=1&amp;amp;ved=0CC0QFjAA&amp;amp;url=http%3A%2F%2Fwww.usenix.org%2Fevent%2Ftapp10%2Ftech%2Ffull_papers%2Fbuneman.pdf&amp;amp;rct=j&amp;amp;q=A%20graph%20model%20of%20data%20and%20workflow%20provenance&amp;amp;ei=CPnhTfbzJoOWhQeasMnqBw&amp;amp;usg=AFQjCNFfukU"&gt;graph
based&lt;/a&gt; approach has long been established in the simulation world, where
solvers are strung together as nodes in a controlled state machine, using &lt;a href="http://www.google.co.uk/url?sa=t&amp;amp;source=web&amp;amp;cd=2&amp;amp;ved=0CCoQFjAB&amp;amp;url=http%3A%2F%2Fciteseerx.ist.psu.edu%2Fviewdoc%2Fdownload%3Fdoi%3D10.1.1.77.742%26rep%3Drep1%26type%3Dpdf&amp;amp;rct=j&amp;amp;q=Advances%20in%20the%20data%C2%AFow%20computational%20model&amp;amp;ei=2frhTfSkAc6xhQe"&gt;configurable&lt;/a&gt;
(like an improved Catia relational modeling?!) electric circuit board-like ports
or gateways. &lt;br /&gt;
&lt;br /&gt;
2. The future read/write functionality sounds good. How would it work? It
sounds like GC would either write to an EC class/instance or a Mstn class/instance,
similar to VBA&amp;#39;s use of COM (hopefully without the 32bit limitation).
Converting between GC and EC properties: I guess Mstn and GC already provide
the classes, metadata as part of dotNET assemblies for Interops/ P-Invoke? How
will user generated classes be handled dynamically? Design++ frame based
classes/properties seem a lot more flexible and dynamic compared to GFT. Combine
with XFM API for a GC/FS/DDD version of Geospatial Adminstrator?&lt;br /&gt;
&lt;br /&gt;
Ideally, scripting should be able to directly access the underlying native code
&lt;a href="http://communities.bentley.com/products/microstation/microstation_v8i/w/microstation_v8i_programming_wiki/developing-code-in-vba.aspx"&gt;libraries
and data&lt;/a&gt; as much as possible. Currently, it seems that we need to switch to
C#, to get to various functions and bit more speed. &amp;nbsp;This does not compare
well to apps like MotionBuilder, where there is tight integration between Python
and its C++ library &lt;a href="http://gware.blogspot.com/2009/10/speeding-up-takes-opening-with.html"&gt;OpenReality&lt;/a&gt;,
and no &amp;#39;inbetween&amp;#39; language to learn. &amp;nbsp;Under dotNET, even C# is still only
interpreted not compiled. Some consider C# over glorified scripting because of
this (I think this not necessarily all bad). Will GCScript and C# converge? As you
know, this is one alleged advantage of DScript. &lt;/p&gt;
&lt;p&gt;Apparently, in F#, the programmer can select a block of code
and run it without compiling, even though F# is statically typed, making it
very much like scripting. &lt;a href="http://communities.bentley.com/products/microstation/microstation_v8i/b/microstation_v8i_programming_blog/archive/2010/08/12/linqpad.aspx"&gt;LINQPAd&lt;/a&gt;
has similar &amp;#39;scratchpad&amp;#39; functionality. This is one of the big advantages(?) of
scripting, besides not needing to think about resource management. NB: using C# doesn&amp;#39;t guarantee that there won&amp;#39;t be &lt;a href="http://communities.bentley.com/other/old_site_member_blogs/bentley_employees/b/mdanes_blog/archive/2011/04/20/idisposable.aspx"&gt;problems&lt;/a&gt;
here, either.&lt;br /&gt;
&lt;br /&gt;
1. &amp;nbsp;ElementSensor GC Properties v EC
Properties: I suppose this will be the same thing at some point, when GC becomes
pervasive? Bentley has been working on &lt;a href="http://www.caduser.com/reviews/reviews.asp?a_id=85"&gt;Engineering Component
Modeling&lt;/a&gt;, since Project + ComponentBank and CustomObjects, ie the 90&amp;#39;s. Hopefully,
Joe User will start to see more zip, soon. Tipping point: V9?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Re: Utilities Example for ElementSensor</title><link>https://communities.bentley.com/thread/171072?ContentTypeID=1</link><pubDate>Wed, 11 May 2011 01:25:18 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:784c5d99-35cd-41d2-bbda-4efb49609fe0</guid><dc:creator>Xun Zhou</dc:creator><description>&lt;p&gt;Dominic,&lt;/p&gt;
&lt;p&gt;Thanks for the replying. Your information always takes me days to digest :). &lt;/p&gt;
&lt;p&gt;(1) Right now, the ElementSensor GC Properties is designed intentionally to be of the same structure as EC Properties. This will help to eliminate any inconsistency between two worlds. As for if &amp;quot; Is EC designed for data flow apps like GC to scan large amounts of elements&amp;quot;, I am not an expert on its design. But according to what I know of where EC has been used so far (for plant, civil and etc), it should have taken large amount of element data into design consideration. &lt;/p&gt;
&lt;p&gt;(2) It might be because that we didn&amp;#39;t see many user cases (request) on element writter. At least, not as urgent as element sensor for bringing in raw element is essential but writting out raw element is not (can always use feature hosted element). Eventually, it will be there just as Excel feature that has both ReadValue and WriteValue methods.&lt;/p&gt;
&lt;p&gt;(3) The Notation property obj type is a problem when it is written to EC Property. &amp;nbsp;We will need explicit conversion between the GC Property and EC Property. If the Notation property is of obj type and is actually an instance of GC class, then we will need to find the right description of such class in EC and then convert it. In the published release, we now only have support several primitive types such as string, int, and etc but not obj.&lt;/p&gt;
&lt;p&gt;(4) The publishinig mechanism is very interesting to know. It feels a bit like alias mechanism and gft is similar to it other than the input output names are given by GC and unchangable. I haven&amp;#39;t had any chance to use Catia yet except looked at only the introduction texts. It seems that in Catia, everything that can be published will have a host. For example, the plane to be published has its owner as Part1 and is identified as Part1\Geometry Set.1\Plane.2. Not sure if Catia allows the global variables to be published or it is directly accessible? Also, from Microstation station point of view, is it just like create another ECClass and ECInstance(ECProperty) and make sure the ECProperty is calculated from (or referencing) the part of or the whole raw element?&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;-Xun&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Re: Utilities Example for ElementSensor</title><link>https://communities.bentley.com/thread/170048?ContentTypeID=1</link><pubDate>Sat, 30 Apr 2011 18:04:21 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:142aa13b-2c24-44a7-bb2b-d1529c877e0f</guid><dc:creator>dominic Seah</dc:creator><description>&lt;p&gt;Hi Xun,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1. Deep fetch: I was referring to the Mstn side of things. It
sounded like because the EC info was buried too deep and GC would be slowed
down when trying to get access? The GC user would not see any change. Is EC
designed for data flow apps like GC to scan large amounts of elements, or only
for manual individual editing in the Elem Info panel?&lt;/p&gt;
&lt;p&gt;2. Element Writers: Wonder why it did not make the list? GC
needs to communicate with raw and other non-GC smart objects. Element Sensors
provides an input &amp;#39;portal&amp;#39; to GC, so an output mechanism should be next, I would have thought.
I can&amp;#39;t see making GC little informational &amp;#39;dead end&amp;#39; spurs helping
anyone.&amp;nbsp;GC elements will tend carry more design intent, and should be
designed to drive dumb geometry. Information is always increasing, hence also
the need to manage it. This means using the few(smart) to drive the many(raw), and working
at higher or multiple levels of &amp;#39;abstraction&amp;#39;.&lt;/p&gt;
&lt;p&gt;3.&amp;nbsp;Notation: Yes, I see that there is a right-click menu
for attaching &amp;quot;notation property to all features of this type&amp;quot;. The options are
Boolean, double, int, object and string. Object sounds most interesting. What
objects are available? There doesn&amp;#39;t seem very much in the documentation, if at
all. EC Properties/Schemas are pretty complex and go beyond notation. Will GC be able to dynamically discover EC objects in the model and read/write to them? Dictionary? The &lt;a href="http://communities.bentley.com/products/products_generativecomponents/f/360/products/products_generativecomponents/f/360/p/3536/8560.aspx#8560"&gt;examples
I found on the forum&lt;/a&gt; focus on tagging structural &amp;#39;knowledge representation&amp;#39;
info like &amp;#39;nodes/member&amp;#39;, or materials tags. Didn&amp;#39;t find it in the
documentation, but I assume the notation functions are available for scripting
as well. &lt;/p&gt;
&lt;p&gt;Hopefully, the &amp;#39;object&amp;#39; option means that things like local
coordinate systems used and generated by the script can exposed/published when
the geometry is &amp;#39;exported or &amp;#39;instanced&amp;#39; elsewhere. Eg: it should be standard
practice to include local CS info with -say- any cladding panels generated.
This would allow the follow-on detailing team to hook their working planes on
to something, instead of having to guess and reconstruct their ACS&amp;#39;s, refs etc
with every iteration. &lt;/p&gt;
&lt;p&gt;4. Publishing: in Catia, you can &lt;a href="http://www.maruf.ca/files/catiahelp/cfyugprt_C2/cfyugprtpublish.htm"&gt;publish&lt;/a&gt;
any kind of geometry or &lt;a href="http://v5vb.wordpress.com/2010/03/04/navigating-parameter-collections/"&gt;parameter&lt;/a&gt;. Like most MCAD apps, Catia allows geometry
to be linked/referenced across models. This is very powerful but leads to a lot
of regen problems when the referenced/linked part(s) are changed. &lt;/p&gt;
&lt;p&gt;Publishing allows the user to name the referenced geometry, and &amp;#39;duplicates&amp;#39;
it in the part or assembly model specification tree. There is some control as
to where the published info is &amp;#39;declared&amp;#39;. &lt;/p&gt;
&lt;p&gt;When a published part is changed, Catia searches out the
dependent models and updates/checks the dependencies... I guess this &amp;#39;pushy&amp;#39;
method is better than waiting for the referencing model to &amp;#39;pull&amp;#39; the changes
on loading, and potentially running into regen problems asynchronously. As mentioned
elsewhere, trying to rebuild dependencies after the fact is a real pain.&amp;nbsp;In
V5, only the loaded models are checked. The onus is on the user to ensure that
the new geometry is compatible with the &amp;#39;published&amp;#39; geometry that will
interface with the connecting models. There are some tools to bypass or replace
failed or missing portions of the &amp;#39;history tree&amp;#39;. PTC&amp;#39;s WF5 apparently made a lot of changes here, and is probably a lot
better at this... currently. Not sure how Catia V6 handles this.... in the cloud?&lt;/p&gt;
&lt;p&gt;Publishing also allows some end-user structuring of the dependencies/variables.
Inter-model constraints tend to be published at the overarching &amp;#39;context&amp;#39; or
container model level. This allows the solver to prioritize and breakdown the
constraint sets in a way that is aligned with the design intent. This also allows
certain geometry or parameters to be exposed/published without&amp;nbsp;having to
load and synchronise the whole script/history tree. This saves a lot of time.
Inventor&amp;#39;s Derived Components goes further, and allows the user to pick which
bits are to be published with &amp;#39;full intelligence&amp;#39;. It could be something as
simple as exposing certain local coordinate systems or parameters/constraints to
participate in the loaded model, without forcing the system to &amp;#39;play through&amp;#39;
all the subservient solid modeling transactions. &lt;/p&gt;
&lt;p&gt;Catia has a scan mode that can display the product hierarchy/structure
or the history/update sequence.&amp;nbsp;The sequence in which the dependencies are
processed (dataflow) is not necessarily the same as the model &amp;#39;assembly:part&amp;#39; hierarchy
(structure). Visualising the dependencies is key to effective info-model
management.&lt;/p&gt;
&lt;p&gt;As a result, most MCAD models are based on &amp;#39;skeleton&amp;#39; modeling,
where the model &amp;#39;structure&amp;#39; and &amp;#39;dataflow&amp;#39; hierarchy is fairly closely aligned,
and top down in character. At the top, there is a &amp;#39;skeleton&amp;#39; model that
contains all the key geometry/parameters and solved at that level, before
propagating the changes downwards/downstream. &lt;/p&gt;
&lt;p&gt;A variation of this is &amp;#39;adaptor&amp;#39; modeling, where there are some lateral dependencies in what is still mainly a top down &amp;#39;tree&amp;#39;
hierarchy. This is found a lot in automotive body/surface models, where links
across the car body parts are required/unavoidable. &lt;/p&gt;
&lt;p&gt;There is also something called &amp;#39;Functional Modeling&amp;#39; which is a
lot less hierarchical. Catia&amp;#39;s Imagine and Shape workbench uses this. DS demo&amp;#39;d
a BIM app based on this called &lt;a href="http://www.youtube.com/watch?v=3xAVJD5sJac&amp;amp;feature=related"&gt;Live Buildings&lt;/a&gt;. Pretty &lt;a href="http://www.youtube.com/watch?v=3dHLYQN6jRk&amp;amp;feature=related"&gt;powerful stuff&lt;/a&gt;. I suspect that publishing is
still useful here but will need more behind the scenes management. &lt;/p&gt;
&lt;p&gt;So, to answer your question: I think publishing would apply to both
the &amp;#39;graph variables&amp;#39; which tend to be at the root or input end of the script(s),
as well as the dependent parameters downstream &amp;#39;in the leaves&amp;#39;. &lt;/p&gt;
&lt;p&gt;Root or input variables may need to drive other scripts in the
same model. So publishing them is kinda like what Revit does with &amp;#39;shared
parameters&amp;#39;. PCS also allows for certain parameters to be &amp;#39;booted up&amp;#39; to the
top level so that they can be referenced by multiple components, and accessed after
the component is inserted/instanced in Mstn/BA.&lt;/p&gt;
&lt;p&gt;I suppose publishing &amp;#39;root&amp;#39; or &amp;#39;leaf&amp;#39; variables/geometry are really
just like the GFT&amp;#39;s input and output properties. In the real engineering world, there will
be multiple scripts that need to talk to each other in a robust way. The
individual script needs to be encapsulated and participate through &amp;#39;published&amp;#39;
interfaces/ports with other &amp;#39;scripts&amp;#39;, non-GC smart geometry and lots of dumb
geometry, and the user with his pesky model based manipulations.... or not?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Regards&lt;/p&gt;
&lt;p&gt;Dominic&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Re: Utilities Example for ElementSensor</title><link>https://communities.bentley.com/thread/169774?ContentTypeID=1</link><pubDate>Thu, 28 Apr 2011 00:04:01 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:1c9c2ce2-bb1b-44ee-8f5f-6d3b05ac1ee8</guid><dc:creator>Xun Zhou</dc:creator><description>&lt;p&gt;Dominic:&lt;/p&gt;
&lt;p&gt;1. Deep fetch: &amp;nbsp;... &amp;quot;Or, is it a &amp;#39;simple&amp;#39; case of getting Platform to change the BSpline EC data structure/interface so that the DGeometry is &amp;#39;shallow&amp;#39;?&amp;quot; &lt;/p&gt;
&lt;p&gt;On GC side when we interpret EC properties, we could potentially make the EC data to be shallower but first it may confuse user and second we will have to rely on a never-could-be-perfect strategy to do so.&lt;/p&gt;
&lt;p&gt;2. Can Element Sensors also be used to write to raw geometry using EC properties? &amp;nbsp;&lt;/p&gt;
&lt;p&gt;I was once thinking of this and could possibly call it Element Writer (Element Sensor is guaranteed to be non-intrusive). But it was never made to the high priority list.&lt;/p&gt;
&lt;p&gt;3. Is GC capable of writing or publishing EC Properties, to be included with the geometry it generates? &lt;/p&gt;
&lt;p&gt;Yes, if you create notation property(s) for a feature(s), the notation property value is/are written to the underneath element(s) as EC Properties. You may check it with a simple test to create a GC line feature with notation property and see the corresponding EC properties of the line element in element info dialog.&lt;/p&gt;
&lt;p&gt;4. I need more of your explanations of &amp;quot;Publishing variables&amp;quot;. &amp;nbsp;Is it relatively equivalent to GC graph variable? Must it be the root of graph/sub-graph or it could be the leaf of a graph?&lt;/p&gt;
&lt;p&gt;Cheers&lt;/p&gt;
&lt;p&gt;-Xun&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Re: Utilities Example for ElementSensor</title><link>https://communities.bentley.com/thread/169449?ContentTypeID=1</link><pubDate>Sat, 23 Apr 2011 18:24:57 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:be07559e-edb0-4156-8561-0c6f3a7d113f</guid><dc:creator>dominic Seah</dc:creator><description>&lt;p&gt;Hi Xun,&lt;/p&gt;
&lt;p&gt;Probably questions for the platform guys, not GC, but I&amp;#39;ll ask anyway:&lt;/p&gt;
&lt;p&gt;EC Properties: &lt;/p&gt;
&lt;p&gt;1. Deep fetch: Is there anyway to publish/pre-fetch or de-nest etc the information that GC needs? This reminds me of Maya 2011&amp;#39;s published &lt;a href="http://area.autodesk.com/blogs/stevenr/maya_2011_highlight_assets_updates_and_improvements_part_2"&gt;Assets&lt;/a&gt;, which exposes/unhides variables contained in an inserted Asset for use in &amp;#39;master&amp;#39; model. I guess, Mstn&amp;#39;s B-Spline schema would need to allow for, and synchronise duplicate properties? Or just some pointers? Or, is it a &amp;#39;simple&amp;#39; case of getting Platform to change the BSpline EC data structure/interface so that the DGeometry is &amp;#39;shallow&amp;#39;?&lt;/p&gt;
&lt;p&gt;Actually, publishing itself as a tool is interesting. &lt;/p&gt;
&lt;p&gt;2. Can Element Sensors also be used to write to raw geometry using EC properties?&amp;nbsp; The user can already edit raw geometry properties in the Elem Info panel like x,y,z, rotation etc, and see Mstn update the element on screen. Should be easy for GC to do this as well? Element Censors :-) I can see the ability to keep raw &amp;#39;non-algorithmic&amp;#39; geometry out of the &amp;#39;script&amp;#39; while retaining control of some of their properties, being very valuable. Maybe even a way to drive (or interact with) &amp;#39;medium-raw&amp;#39; elements like Feature Solids / DDD? &lt;/p&gt;
&lt;p&gt;3. Is GC capable of writing or publishing EC Properties, to be included with the geometry it generates? There would be a lot of info that would be useful for the follow-on workflows (both manual and automated) to hook into. Even relatively simple things like just including some semantic clues i.e. naming, or embedding some local coordinate systems / LOD attributes, would help the downstream &amp;#39;post-script&amp;#39; work a lot. &lt;/p&gt;
&lt;p&gt;It&amp;#39;s a pretty sure bet that some of this &amp;#39;downstream&amp;#39; geometry would end up being used to feed other GC graphs via ES&amp;#39;, maybe even resulting in some &amp;#39;interrupted&amp;#39; cyclical graphs.&lt;/p&gt;
&lt;p&gt;4. Publishing variables are often used in MCAD to help to prioritise or layer constraints solving, change propagation graphs. Constraints solving is expensive, so keeping the number of variables at the &amp;#39;top&amp;#39; table of expressions to the published ones, seems like a good thing to do. I guess this wouldn&amp;#39;t matter in the initial stages, where there might only be one script/graph in the model. But, as things progress, there will be inevitably be multiple graphs, tons of raw geometry/annotation etc, smart geometry from others etc, that will all need propagation management. &lt;/p&gt;
&lt;p&gt;Catia&amp;#39;s Knowledege Advisor seems to use a central &amp;#39;expressions table&amp;#39; to manage/synchronise all its variables. I think most of the variables are still contained in the individual graph/objects, that may be changed by manual mods to the objects or thru Reactions. But, there is also the option to use Rules, whereby the &amp;#39;triggers&amp;#39; are not dependent on having the all the &amp;#39;graphs&amp;#39; active with all their contained variables loaded/live/reactive. &lt;/p&gt;
&lt;p&gt;This &amp;#39;top level&amp;#39; expressions table driving/triggering rules-based changes also reminds me of MS researcher Erik Meijer&amp;#39;s &amp;#39;&lt;a href="http://channel9.msdn.com/shows/Going+Deep/E2E-Erik-Meijer-and-Wes-Dyer-Reactive-Framework-Rx-Under-the-Hood-2-of-2/"&gt;marble diagramme&lt;/a&gt;&amp;#39;. I doubt Catia or Inventor&amp;#39;s iLogic uses MS&amp;#39; Rx Framework or functional reactive programming, but a lot of the &amp;#39;push&amp;#39;-based, asynchronous, event-based techniques associated with &amp;#39;cloud computing&amp;#39; seem equally applicable to making dataflow apps like GC more event-aware / useful.&lt;/p&gt;
&lt;p&gt;The &amp;#39;push/pull&amp;#39; &amp;#39;&lt;a href="http://channel9.msdn.com/shows/Going+Deep/E2E-Erik-Meijer-and-Wes-Dyer-Reactive-Framework-Rx-Under-the-Hood-1-of-2/"&gt;mathematical duals&lt;/a&gt;&amp;#39; style of programming is also intriguing. I wonder if it can be used to automatically reverse the solving direction, so that GC can switch solving directions based on what node is being manipulated graphically on screen by the user. Sort of like the IK/FK switching that animation packages provide these days. Or &amp;#39;composably&amp;#39; link one database to another? Rx supports LINQ. LINQ can link to events....&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Regards&lt;/p&gt;
&lt;p&gt;Dominic&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Re: Utilities Example for ElementSensor</title><link>https://communities.bentley.com/thread/169292?ContentTypeID=1</link><pubDate>Thu, 21 Apr 2011 01:20:31 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:5d1adb04-f737-4883-9d15-08ab51a02dea</guid><dc:creator>Xun Zhou</dc:creator><description>&lt;p&gt;Yes Mark. I don&amp;#39;t have a file on my hand right now. But you can create an elementSensor on a B-spline curve (drag and drop the element into the SD is the quickest way) and then right-click the SD node to watch the element sensor. Its property list will be similar to what you see of the B-spline curve in the element info dialog. Unfortuantely, the poles of the B-spline curve in EC Properites is quite deep to fetch but yes they are Dpoint3ds.&lt;/p&gt;
&lt;p&gt;HTH&lt;/p&gt;
&lt;p&gt;-Xun&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Re: Utilities Example for ElementSensor</title><link>https://communities.bentley.com/thread/168932?ContentTypeID=1</link><pubDate>Mon, 18 Apr 2011 03:23:18 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:c30a7082-81f9-4eae-88f1-792503b4b2be</guid><dc:creator>Mark.Donofrio</dc:creator><description>&lt;p&gt;Lars,&lt;/p&gt;
&lt;p&gt;How did you manage to get the Element Sensor to work for a BSplineCurve? is there access to the ElementSensor&amp;#39;s underlying geometry control point to pass as DPoint3D for points or poles? If you have an example showing how to implement this for a BSplineCurve it would be much appreciated.&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;Mark&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Re: Utilities Example for ElementSensor</title><link>https://communities.bentley.com/thread/150173?ContentTypeID=1</link><pubDate>Thu, 11 Nov 2010 20:26:34 GMT</pubDate><guid isPermaLink="false">6dad98f5-dbc9-4c4d-a9ba-e9da8dc6aa8e:13e4453a-8acd-4951-989f-0a03c9a17bee</guid><dc:creator>Lars M-P</dc:creator><description>&lt;p&gt;Also works on Polygon, BSplineCurve&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>