Giter Club home page Giter Club logo

dynamosap's People

Contributors

anagpuyol avatar bhowes-tt avatar eertugrul avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dynamosap's Issues

Update SAP Model Node !

inputs:
StructuralModel
FilePath _ Optional GrabOpen SAp Intance is path is not provided

output
modified Structural Model πŸ‘

workflow should be:
// 1. LoopOver Structural Model Elements
with element.GUID query the element in SAP
if exists update the properties of element (dynamo> sap)
if not exists create new element (frm) and return Label and set the item

//2, delete elements
Loop over SAP Model elements if not found in StructuralModel, delete them from the SAP Model.

@howesben @anagpuyol
I am thinking two options:
adding a Update.cs and and implementing all update nodes here! see below
or
we can add Bake.ToSap a boolean input for create/update? if false is creating if true updating the model. But we need also an optional Filepath if the SAPmodel is not opened already!

image

if update is true
update the open instance or exsitign one (use filepath)
if update false
create open new instance and save as given path if file path is set (path is optional)

Bake.ToSAP also needs Units input that I will implement it soon. Please let me know your thoughts.

Add a header line in each class

Document what the class does and give credit:

Developed by Thornton Tomasetti's CORE studio for Autodesk.
CORE Developers: main coder, secondary coder

GetResults Node and test

Get Results now reads the results of the analysis, for either one or multiple frames:
getresults

I have made a quick test to see that not only the numerical values but also the future translation into a visualization is working. It is!
momenttest

Distributed Load on Frame node

Build a node that creates a distributed load along a frame. It should take a frame, a vector, and a load amount as inputs. Output should be a load object that the Create SAP Model node can collect

Question for Dynamo team

@bhowes-tt , @anagpuyol
lets list the all the questions for Dynamo Team here.

  1. having a problem to run or launch the SAP application from dynamo zero touch library: if I use the method ApplicationStart() when I import library getting exception below. ( aha πŸ’‘ application start also uses Sap specific type e-unit)

Exception of type 'ProtoCore.Exceptions.CompilerInternalException' was thrown.

  1. If we call any sap API method that needs input of SAP specific types (such as e, getting "Type Exception" while importing dll ?

Exception of type 'ProtoCore.Exceptions.CompilerInternalException' was thrown.

  1. There is SAP16 category under our DynamoSap plug-in
    capture

Typical release nodes

Similar to fixities, we need to provide a set of typical release types. We should ask Rob or @Reynolds534 for help defining these. The types that made it into the scope are:

  • Fixed
  • Pinned
  • BendingMoment

Units in Dynamo

@bhowes-tt @anagpuyol

I wanna discuss about dynamo units with u;

For now I have just add Units Bake.ToSap node, so whatever the units selected from dropdown, the length is set as it is, for example length of this frame is drawn as 10 cm in sap Model.

image

I was able to read display units of Dynamo environment successfully. yayy ! But Ana and I thought to convert the input value from dynamounit(inunit) to sapunit (outunit) might be confusing to user. I have been looking for units issues at DynamoDS repo. Actually I got more confused. It seems the double output in dynamo is unit less. There is length nodes if length from double node returns converted values !

dynamo display lenght units is meter:
image

dynamo display length units is decimal inch
image

this means that Dynamo API is in meter !
So I just need to make conversion meter to what ever is SAP units selected right ? display units doesn't make any difference but it is confusing from a user point of view.

I am curious about your thoughts before I do some progress on this.

Visualize analysis results with colors in Revit

We could use the ImportInstance.ByGeometry when using Dynamo on Revit to visualize the surface version of the meshes created to visualize forces. Outputting a color for each of them according to their sign (+ or -) would make it really easy to see colors using Element.OverrideColorInView.

image

Point Load on Frame node

Build a node to create a point load on a frame. This should take a frame, a t value between 0 and 1, a vector (representing load direction) and a force amount.

Point Restraint nodes

Build nodes that create SAP restraints. These should take either a dynamo point or XYZ values as mandatory inputs, and XX, YY, ZZ default boolean values to set which axes are restrained. The output should be a Restraint object that can be collected by the Create SAP Model node

IModel implementing interface approach

@bhowes-tt

@anagpuyol and I made a very good progress today. We created generic IModel interface that holds the structure, loads, loadpatterns etc. And with Bake components we will be able bake (create or update) to related platforms such as Bake.ToSAP or Bake.ToRevit or Bake.ToEtabs etc. So we should meet up and layout the workflows again with this approach.

image

cheers πŸ‘―

Read.SAPModel operation failed

Warning: Read.SAPModel operation failed.
Retrieving the COM class factory for component with CLSID {05C24B9F-F327-47C2-B6EF-5660A8175ECB} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

Create SAP Model node

Build a node that collects elements created upstream (frames, loads, fixities, etc) and composes a new SAP model. Ideally, this should open a new instance of sap and create a fresh model every time it solves.

Block out prototype sample file with code blocks

@anagpuyol - please put together a dummy Dynamo graph containing all of the nodes we are building for this prototype, mocked up as code blocks. We'll use this file to get input names and orders correct, and to make sure we have a high level view of what we are building together.

SetLoad + Bake bug when the Frame input is changed

image

When the Frame input of the SetLoad is changed, the Bake component cannot handle it. It will return empty labels for the previous frames that were connected to the node (the beams, in red) and will not bake them into SAP.

image

image

As discussed with @eertugrul, users will need to add a new SetLoad node to bake a different frame with that same load into SAP

Workflows we want

This is a photo from our first spec meeting - these are the workflows we want to enable with this package:

image

User Defined Section Property Nodes - using SD (section designer)

Confirmed: CSI tech support responded there is no current function to define polygon using SD via OAPI.

Here is what we can add:

It is possible to create :
General section property
Section property modifier ( it sets the factors to section existing property)
Non prismatic Section Property
SDShapes for most common types (such as I section, Angle, Channel etc)

This how you do from GUI:
sectionui

I have also looked the GeoGym GH, there are components of the first three items I mentioned above ! No components to create SDShapes or from curve ! The last components creates a new section profile out of existing one with probably another material, this case the user should rename the section because u can’t create two property with same name.

geogym_sections

Comparison of load cases

I did a workaround to translate the meshes, since it is not a function that is currently supported by Dynamo, but here it is!

comparing two analysis
comparing two analysis 01

Load Case node

build a node that creates a load case in SAP. It should take as inputs:

  • Name
  • Load Pattern[s] from the load patterns node #7
  • Scale factors for each load pattern
  • Load Case Type - Static, Multi-step static, Modal, etc
  • Analysis Type - Linear, nonlinear, nonlinear staged...

output should be a Load Case object that can be passed into the Create Model node #2

BakeToSap_CreateReport

Some SAP methods are called from BakeToSAP and they are not successful. However, decomposing the model shows more information (in this case, it shows that the model has releases).

If a Read node is used instead, the decomposed model shows correctly that the releases are null, that they were not updated in the SAP model

image

Tool categories

This is a photo from our first spec meeting, outlining the categories into which nodes and workflows should fit.

image

Build Frame nodes

Create dynamo nodes that allow users to create SAP frames in dynamo. They should take either a line or two points as inputs, as well as a material property, section property, justification and rotation. Set default values for material, section ,justification, and rotation.

Load Pattern node

Build a node that defines a SAP load pattern. Inputs should be:

  • Name
  • Load Type - either DEAD, LIVE, QUAKE, WIND, OTHER, or any name a user wants to give.
  • Self Weight Multiplier

The output should be a Load Pattern object that can be passed to the create load nodes ( #3 #4 ) and to the Create SAP Model node #2

We need Update nodes for elements (frame,shell etc) !

One of the workflows we have discussed beginning of this project: for SAP > Dynamo > SAP I think we need also update nodes to modify structural elements in Dynamo ! we have only Frame.Decompose node so we can watch the properties of each element after we read from SAP but actually we don't to update any of object properties in Dynamo now. I think we need Frame.Update nodes

Scenario one:

input
Frame as Element (read from SAP)
-Line or EndPoints

  • SectionProp
  • Justification
  • Rotation

Scenario Two:

I wish we were able to make some of these input as 'optional' somehow in Dynamo. If this is not happening we might to create individual nodes for each updates such as Frame.Update (for just geometry) get either Line or end Points ) / UpdateSectionprop etc.

Any thoughts on this ? we can also name as 'Modify' !

Edit SAP model sample file

We need to include a sample file that demonstrates how to edit an existing SAP model with Dynamo. A couple of good use cases are

  • adding more groups to the model
  • adding load cases to the model

This relates to #24 - we should also test geometrical updates, even though @eertugrul is skeptical.

RVT > SAP > RVT sample file

Create a sample file that shows how to translate a revit structural model into sap, trigger an analysis, and write some force data from sap back into the Revit model.

We should keep this one very simple, and will probably have to create a project parameter or two to write force data in (in the Revit model).

All of this should be done with our nodes and vanilla dynamo nodes --- no fancy stuff.

Naming DropDown Nodes

can we rename the dropdown nodes as followings ?

LoadPatternTypeDropdown --> LoadPatternTypes
LoadCaseTypeDropDown --> LoadCaseTypes
UnitsDropDown --> Units
JustificationTypeDropdown --> Justifications
ForceTypeDropdown --> ForceTypes
SectionCatalogDropdown --> SectionCatalogs
MaterialDropDown --> Materials

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.