Save geometry after transaction or run multiple transactions

Hi,

Coming from Revit- Dynamo( Building Design) background, i am new to Bentley generative Components & exploring it currently. In revit dynamo, once we run a script & close dynamo , the geometry/process still is saved or present in model. we can run another script post that without worrying about the geometry or any element in revit being affected with respect to the task being automated .
when i try the same in generative components say create points from excel or place cell based on coordinates, only one transaction is available at a time , how can i save the placed geometry/cell or points? So that i can run another transaction or scripts do further automation later on as & when the team needs to modify anything.  i tried switching to modeling or aecosim from dropdown after i ran transaction , it did save geometry the next time i opened generative components, but it seems to crash most of the time. any help would be appreciated.
Thanks

Parents
  • Hi Sachin,

    Any GC changes made through nodes will be preserved as a new Transaction. Before closing out we should hit the save button to account for the latest change in form of a Transaction. 

    After each step, we can save the changes as a new Transaction in the transaction window.

    Or, you can turn on Auto-Transaction where each transaction will be saved automatically. 

    If you find too many changes under one single Transaction we can split it into multiple Transactions by using the following option.

    If you see too many transactions considering every little changes, we can make it cleaner and compact by using the following option. 

    I hope this information is helpful.

    but it seems to crash most of the time

    It is unusual, might be file specific. Which application version you using? You might share your file

    I hope you have a great time using GenerativeComponents. Feel free to contact us with any doubts or questions. 

    Thanks,

    Anik

  • Hi Anik,

    Thanks for quick reply. but that is not exactly my question, apologies if it was confusing. let me rephrase it again so as to make it more clear.

    for example in Revit dynamo, let say i ran a script to place some families/objects or elements using excel(script 1). The project team might make some changes manual or otherwise with respect to design/coordination. Post that i might have to run another script to say update attributes or property set values based on another excel data set. so there are two scripts running one after another not as a combined workflow or single script, can the same be applied to GC.  i mean lets say i do one set of transactions , saved them as GCT -01. later on i want to run GCT-02 which is totally different module or workflow. is that possible? while still maintaining the original geometry or elements in the file

    The main reason being as my job is to just develop scripts dynamo or otherwise & provide them to project teams to run them on respective models. So wondering how the geometry can be saved after the transactions have been run & also can multiple transaction be run that are not relative to each other.

Reply
  • Hi Anik,

    Thanks for quick reply. but that is not exactly my question, apologies if it was confusing. let me rephrase it again so as to make it more clear.

    for example in Revit dynamo, let say i ran a script to place some families/objects or elements using excel(script 1). The project team might make some changes manual or otherwise with respect to design/coordination. Post that i might have to run another script to say update attributes or property set values based on another excel data set. so there are two scripts running one after another not as a combined workflow or single script, can the same be applied to GC.  i mean lets say i do one set of transactions , saved them as GCT -01. later on i want to run GCT-02 which is totally different module or workflow. is that possible? while still maintaining the original geometry or elements in the file

    The main reason being as my job is to just develop scripts dynamo or otherwise & provide them to project teams to run them on respective models. So wondering how the geometry can be saved after the transactions have been run & also can multiple transaction be run that are not relative to each other.

Children
  • Hi Sachin,

    My understanding

    1. You create something in GC.

    2. Design team make some changes in GC

    3. You again create some geometries based on these existing geometries.

    If I understand correctly, then yes you can do it in GC and produce a reusable script that can be used for any files. You can use the same file(the one used by the design team) again in GC or you can reference it in GC. We can further discuss a standardised workflow once we have more information about your project requirement.  

    I am looking forward to hearing from you.

    Thanks,

    Anik

  • Hi Anik,

    i have listed out the basic workflow that currently i am testing :

    1. Create something in GC - for example 3-4 cells based on some coordinates . that i have already done. i save the file as DGN, as well as the scripts as GCT.
    2. i open the Aecosim building designer & make some changes , say add two three cells manually in the file & save it . similar to how any designer would do from a project.
    3. i open the file again in GC, it ask me ! do i want to continue the transaction or rewound. if i say yes, i can see my transaction being active as before with all the cells even the manual ones.
    4. if i say no, i can see the transaction being hidden & only manually added cells are there from aecosim, pretty obvious.
    5. but my question is, if lets say when i open the file again in GC, i don't want to rewind or continue the same transaction. but i want the all cells to be present in active file & i want to run a new transaction without removing my older cells from older transaction.
    6. what i have seen here is that if i add in new transaction say from another gct file or script, the cells from earlier transaction go off. where as i dont want to loose any geometry that was created earlier. 
    7. basically if i were to do this in dynamo revit, i place some families using dynamo script in revit. close dynamo. do all sorts of changes in the revit file as needed, open dynamo again i can run another script without worrying about rewound , continue etc . i dont need to worry about using the file as reference or anything. whatever is in the model even it came from dynamo script will remain in the model unless deleted by user.

    i hope this makes the workflow that i am trying to figure out more clear. thanks again for taking time to respond.

  • HI Sachin,

    This made me a little clear. I do not see any reason why it should not work. 

    what i have seen here is that if i add in new transaction say from another gct file or script,

    Are you editing the existing transaction script? How exactly are you adding these new transactions? As far as I know, if you add new transactions it should not turn of the previous transactions.

    i dont want to loose any geometry that was created earlier. 

    I do not think that you are losing the geometries. You just have to replay the transaction again in your case. 

    Thanks,

    Anik

  • Hi Anik,

    Basically after i save the DGN say with some cells placed using the script/transaction. i then save the transaction( save current doc to transaction as GCT file option) .

    i open building designer place some cells manually etc & save the file again. After that i open the GC , i can see the manually added content , but my previous cells are not visible, if i run the transaction script again  it will appear. isn't there a way to make them independent. so that i don't have to run transaction every time to bring in the elements. basically they be part of the model once saved!!

    i go to edit entire transaction option & basically do replace current transaction option , incase i want to run another script. 

    is there a way that i can have two separate scripts run one after another or add to transaction list. 

    not sure if i am doing it the wrong way or am i missing something.??

    Thanks

    Regards

    Sachin

  • if i add in new transaction say from another gct file or script, the cells from earlier transaction go off.

    This should be possible, using the various tools:

    Include File (.gct) Transaction

    Import Node

    Function Call Node

    Packager Node

    ...?

    Which are you using?

    You can use the same file(the one used by the design team) again in GC or you can reference it in GC. We can further discuss a standardised workflow once we have more information about your project requirement.

    As Anik mentioned earlier there are various ways to incorporate GC objects into the general OBD .dgn models... so, it would be good to get the GC team to review. The old paradigmn was based on keeping the GC script and processing in separate models that are referenced or inserted as Cells in the general OBD models. This federated 'divide and conqure' approach leverages Mstn's very good Ref attachment functionality and has a lot of advantages... but will probably feel alien and clumsy to Dynamo users.

    GC users tend to use GC as a front-end form finding tool that generates a model that is handed off to the general team using OBD. In contrast, Dynamo seems to be very popular as a general visual programming tool that has in-depth access to the R*vit database... so more parallel / embeded working. I think that GC is also moving slowly in this direction...

    Let's take a common task that Dynamo would be used for: automated labeling of geometry inside a model. In GC, the GC generated text elements would typically be generated in a separate model. Using Mstn's Ref attach tools, the annotation would simply be 'Xref'd' in where / when needed. Multiple annotation models can be processed using the same .gct etc. The smart text elements would remain part of the GC graph, which prevents editing by Mstn/OBD tools. No need to get into a heavy centralised model.

    OTOH, Dynamo users would expect the smart text generated by GC to be inside the OBD model. This is possible, but currently, the resultant smart text elements would not be editable by the non-GC user.

    What happens when the smart text inside the model needs to be updated?

    The simple way around this would be use GC Export Node in combination with a Mstn Delete Element command function call..? The GC script would delete the existing smart text elements and add the new elements at the end of the script run?

    This way, the smart text would be editable by the general team. Moving text around as the non-GC users add more stuff is inevitable and there would be no need to manage the GC scripts etc in the dgn.

    Basically after i save the DGN say with some cells placed using the script/transaction. i then save the transaction( save current doc to transaction as GCT file option)

    Not sure, but you may have better luck saving as dgn?

    i don't want to rewind or continue the same transaction.

    Also, there is a tick box to always play the transactions...