-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Analytical_Engine adding graph methods #2094
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some initial comments on some references
@@ -38,6 +38,13 @@ | |||
<HintPath>C:\ProgramData\BHoM\Assemblies\BHoM.dll</HintPath> | |||
<Private>False</Private> | |||
</Reference> | |||
<Reference Include="Diffing_Engine, Version=4.0.0.0, Culture=neutral, processorArchitecture=MSIL"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Diffing engine should be referenced via project, not dll
<HintPath>ProgramData\BHoM\Assemblies\Diffing_Engine.dll</HintPath> | ||
</Reference> | ||
<Reference Include="Diffing_oM"> | ||
<HintPath>ProgramData\BHoM\Assemblies\Diffing_oM.dll</HintPath> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
<HintPath>ProgramData\BHoM\Assemblies\Diffing_oM.dll</HintPath> | |
<HintPath>C:\ProgramData\BHoM\Assemblies\Diffing_oM.dll</HintPath> |
… Handle nurbs curves Query.Geometry.
…lytical_oM-#1014-RefactorGraph
Please be advised that the check with reference 1353086365 has more than 50 annotations of notes. API limitations restrict annotations to 50. You may need to rerun this check to obtain the next set when you make changes. At the time of reporting this check, there are 1758 additional annotations waiting |
@BHoMBot fix copyright |
@rolyhudson sorry, I didn't understand. "@BHoMBot fix project file" |
@BHoMBot check project compliance |
@rolyhudson to confirm, |
@rolyhudson just to let you know, I have provided a |
@al-fisher + @adecler this is ready for a review now. Made changes as discussed and had a length back and forth with BHoMBot on compliance. 😆 Sorry to all who get all the comments. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking great overall.
Just some minor comments on the code. I refrained from making quite a few of them as they were mainly an opinion on the way I would implement something and not a requirement for the code to work. I still couldn't resist to make a few 😄 . I have also noticed a few parts of the code that seems to be work in progress, is that correct ? Not a big issue to me as all this code is new anyways.
A few additional comments from the use of your example scripts:
- have a create method for relation that takes in BHomObjects instead of Guids. You already provide that approach in a few other places like so would be nice to be consistent in helping the user.
- The
Create.Graph
Complain about lack of HashFragment when building Graph - How come we have the same number of relations regardless of ducts being entities or not ? The relations are either between pairs of nodes (and duct potentially in sub-graphs) or relations are between duct and nodes. Otherwise, what's the point of having the ducts in the graph since they have no relation with anything ?
@adecler thanks for your comments. On the above points.
The last point should be on the table for for discussion in tomorrows session plus your other unwritten points. Below are a few notes for that discussion: I understand your third point refers to a test script where a duct 'owned' a dependency fragment referencing the guids of its start node and end node. A Relation was created that ignored the duct. This is redundant. I have been back through the logic of the mapping of Some considerations:
To support the above we have two basic DependencyFragments intended for adding to a entity:
This is not exhaustive there will probably be more... Both DependencyFragment include properties defining one or more guids for sources or targets. |
…for ILink toRelation. Provide error is relation source or targets not found in entities.
…lytical_oM-#1014-RefactorGraph
@adecler @alelom @al-fisher One exception is the suggested explicit cast from ILink to Relation. My understanding is that it is not possible to implement user defined cast from an Interface? Please correct me if this is wrong or if I misunderstood the suggestion - I could not see examples of this elsewhere in BHoM. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me. Happy to merge at this stage.
Yeah, I didn't think of that when I suggested it yesterday. That's a shame but not the end of the world. We might have our own implicit casting system at the level of the UI at one point to solve that. Shouldn't be too hard to put in place but will have to wait a bit. |
…lytical_oM-#1014-RefactorGraph
@rolyhudson just to let you know, I have provided a |
/azp run BHoM_Engine.CheckInstaller |
Azure Pipelines successfully started running 1 pipeline(s). |
@rolyhudson just to let you know, I have provided a |
NOTE: Depends on
BHoM/BHoM#1036
Issues addressed by this PR
Prototype methods for use with refactored analytical graph and new topological objects.
Test files
https://burohappold.sharepoint.com/:f:/r/sites/BHoM/02_Current/12_Scripts/01_Test%20Scripts/BHoM_Engine/Analytical_Engine/Issues/GraphProtoype?csf=1&web=1&e=14PXm5
Link to folder containing tests / demos to show graph construction and querying
Changelog
Additional comments