Comments (11)
Thanks @IsakNaslundBh @ZiolkowskiJakub @FraserGreenroyd – really useful call. cc. @rwemay (@michaldengusiak believe you are on holiday but copying for ref.)
Few notes from discussion with action of @ZiolkowskiJakub and @IsakNaslundBh to capture first draft of plan for new objects.
-
Discussed new Physical objects:
Wall
,Floor
,Roof
with perhaps common interface -
Multi-discipline
-
Likely based in
Architecture
namespace -
Common
Material
will also need to be looked at to support #393 -
Focus initially on an MVP 2D Physical object that can be described by 2D surface and single thickness parameter
Will allow stacking for layered (multi-discipline) constructions later
And then full 3D free-form as needed later with further development
@ZiolkowskiJakub and @IsakNaslundBh to speak tomorrow to coordinate further.
Documenting here in #42 or similar as appropriate
All – catch up Wednesday on Skype or GitHub comments directly to review plan
from bhom.
Hi @FraserGreenroyd,
Thank you very much for fast response.
Naming convention has to be adjusted for sure!
Thickness:
It could be 0 but I like idea of having "value not set" option. We should also take into the consideration Layers which have really small thicknesses such as membranes etc? Shall we allow for Thickness to be 0 in special cases?
Environmental Construction:
I have had a look on Construction class before sketching CompoundLayer class. The biggest thing I disagree with in Construction definition is how you define Material and assign Thickness to it. I think the convention you agree on, with Material to having property of thickness is misleading a little bit. I also do not agree with idea of having Thickness define as property of Construction. As far as I understand @michaldengusiak want this value of analytical calculations (not sure though)?? if we talking about physical objects then I strongly believe this value shall be calculated.
from bhom.
Waking this one up! 📣🛌😆
@IsakNaslundBh @ZiolkowskiJakub as discussed - let's map this out as a priority. I will put session in our diaries
@rwemay
from bhom.
Relates to this issue: #256
from bhom.
Hi @IsakNaslundBh,
My general vision of physical objects can be revised here: BHoM Branch
Elements link
Properties link
from bhom.
@ZiolkowskiJakub my early tuppence on a quick glance.
- I like the
IHost
stuff but agree with a comment you've made that perhaps it's better agnostic asIPhysical
or similar. - I'm not sure if
Profile
is the right variable name for thePolycurve
- perhaps something likeOutline
would work better? - Thickness of
CompoundLayer
is probably better set at 0 rather than Not A Number? - Is
CompoundLayer
the equiv. ofConstruction
and part of the ongoing discussions on ECS in #293 ?
from bhom.
Great start! A few comments:
- Floor has only one PolyCurve, to be scalable/extensible, do we not want this to be a list of PolyCurves? Just to check as well that we don't want this to be ICurve(?) I don't think so because PolyCurve can include nurbs.
- Are HostObjectProperties those that relate to an object that 'owns' the floor?
- No material prop/layers on floors, I guess to be added later?
- Should roof be a surface rather than curves, as presumably it needs to be defined as freeform geometry, doens't it?
- Should Wall and Floor be IElement2D?
- Agree with Fraser's comment - we should think about an IPhysical and IAnalytical interface.
- Similar comments on Wall as Floor.
- Maybe a separate conversation, but, we need a way to define different levels of detail in terms of geometry on these objects (like Revit 'Fine/Medium/Coarse') - i.e. what it shows up like in plan/section/3D and the ability to switch between representations of this. I feel like this can/will be dealt with by Engine methods separately - once the basic minimum geometry that's required to define it, we can add Engine methods to 'display' or extract different levels of detail for different purposes.
Brilliant to get this bottomed out and I think doing a quick prototype like this and getting comments is going to be the fastest way for us to do it.
from bhom.
If it's possible for us to have a 0 level thickness then that's fine I guess 😄
I just wanted to make sure I had the understanding of what CompoundLayer
was aimed to do before making too many comments on it rather than trying to do a direct comparison with what we have on Construction
if that makes sense 😄
from bhom.
Hi @rwemay,
Thanks for fast response.
- I would say that each HostObject should be defined as one close PolyCurve if you have more than one closed PolyCurve then I would create two or more HostObjects. I think this assumption would simplify processing the objects.
- Not quite understand that one. Can you please give more details?
- Structure ("Layers") of each IHostObject (Wall, Floor, Roof) is defined in HostObjectProperties. Each IHostObject has HostObjectProperties.
- I assume "Profile" of IHostObject is closed, planar PolyCurve (maybe with exception of Wall??). Proper checks to be added to "Constructors" (as described in commented code example: Wall)
- All IHostObjects implement IElement2D IHostObject
- IHostObject could be renamed to IArchitecturalObject, IPhysicalObject, IPhysical so this would be "core" interface for Physical representation as described in comment
- Wall and Floor implements IHostObject interface (or IArchitecturalObject, IPhysicalObject, IPhysical whenever we want to call it)
- I fully agree.... we could use methods such as Edges (BHoM Engine definition sketched in here: IHostObject) or use just Profile to show different geometrical representation of object.
I hope that this will clarify things a little bit.
from bhom.
Thanks @ZiolkowskiJakub , sorry I've looked at the properties, structure a bit more and now think I understand the hostObject etc. I do think we might need some specificity on the IHostObject in this case: it sounds like this is an interface to describe architectural Element2D's (surface based objects). For example, we wouldn't have 'CompoundLayers' on an element like a column, beam or duct (or an architectural table?). I guess the 'hostObject' is borrowing from Revit naming as 'an object that hosts others'?
I would see IPhysical in addition to an interface that defines surface-based/Element2D objects, applicable to anything physical - I think a separate issue/discussion/can be added later.
I do actually think one PolyCurve per 'floor' object is a good and simple idea. My bias here is from Revit, whose floors (and I think walls - but never tried it?!) can be defined as multiple closed curves. We would just need to make sure we can support Revit interop (one Revit floor -> converts to multiple BHoM floors).
from bhom.
Hi @al-fisher, @IsakNaslundBh, @rwemay,
I updated Branch according to our conversation:
- IHostObject renamed to IObject2D
- Profile property of IHostObject changed ISurface
- HostObjectProperties changed to Object2DProperties
Shall I create PR for this version?
from bhom.
Related Issues (20)
- BHoM: Legacy attributes could be deleted? HOT 3
- Diffing_oM: introduce null coalescence of optional parameters in the Diff constructor
- Ground_oM: Add project for ground related objects
- Ground_oM: Add objects for Boreholes and Geology
- Dimensional_oM: Inclusion of composite IElement objects
- Structure_oM: Add supports (Constraint6DOF) for Panel objects
- Update read me for correct links HOT 2
- Structure_oM: Add Surfaces (BHoMGroup<IAreaElement>) for GeometricalLineLoad
- Documentation URL No Longer Valid Post Directory Reorganization HOT 3
- Uptick assembly file version to 7.1 and remove previous version attributes HOT 1
- Search_oM: Migrate fuzzy matching from AGS_Toolkit
- Search_oM: Add comparer to FuzzyResult CompareTo method (that considers objects)
- Base_oM: add a `UseGeometryHash` option to the BaseComparisonConfig to leverage it
- Base_oM: make BaseComparisonConfig `IImmutable` HOT 1
- Base_oM: BaseComparisonConfig `List` properties should be `HashSet`s
- Base_oM: introduce a `NumberComparisonConfig` to group numerical options in the BaseComparisonConfig
- Analytical_oM: Create object for limits and thresholds
- Geometry_oM: introduce a `GeometryComparisonConfig` to group geometrical comparison options
- Structure_oM: Add plastic neutral axis center points as an output in Section Property
- Structure_oM: Add Cassette and BuiltUpRibbed surface property
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bhom.