Code Monkey home page Code Monkey logo

Comments (11)

al-fisher avatar al-fisher commented on May 29, 2024 1

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.

ZiolkowskiJakub avatar ZiolkowskiJakub commented on May 29, 2024 1

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.

al-fisher avatar al-fisher commented on May 29, 2024

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.

al-fisher avatar al-fisher commented on May 29, 2024

Relates to this issue: #256

from bhom.

ZiolkowskiJakub avatar ZiolkowskiJakub commented on May 29, 2024

Hi @IsakNaslundBh,

My general vision of physical objects can be revised here: BHoM Branch
Elements link
Properties link

@FraserGreenroyd

from bhom.

FraserGreenroyd avatar FraserGreenroyd commented on May 29, 2024

@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 as IPhysical or similar.
  • I'm not sure if Profile is the right variable name for the Polycurve - perhaps something like Outline would work better?
  • Thickness of CompoundLayer is probably better set at 0 rather than Not A Number?
  • Is CompoundLayer the equiv. of Construction and part of the ongoing discussions on ECS in #293 ?

from bhom.

rwemay avatar rwemay commented on May 29, 2024

Great start! A few comments:

  1. 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.
  2. Are HostObjectProperties those that relate to an object that 'owns' the floor?
  3. No material prop/layers on floors, I guess to be added later?
  4. Should roof be a surface rather than curves, as presumably it needs to be defined as freeform geometry, doens't it?
  5. Should Wall and Floor be IElement2D?
  6. Agree with Fraser's comment - we should think about an IPhysical and IAnalytical interface.
  7. Similar comments on Wall as Floor.
  8. 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.

FraserGreenroyd avatar FraserGreenroyd commented on May 29, 2024

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.

ZiolkowskiJakub avatar ZiolkowskiJakub commented on May 29, 2024

Hi @rwemay,

Thanks for fast response.

  1. 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.
  2. Not quite understand that one. Can you please give more details?
  3. Structure ("Layers") of each IHostObject (Wall, Floor, Roof) is defined in HostObjectProperties. Each IHostObject has HostObjectProperties.
  4. 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)
  5. All IHostObjects implement IElement2D IHostObject
  6. IHostObject could be renamed to IArchitecturalObject, IPhysicalObject, IPhysical so this would be "core" interface for Physical representation as described in comment
  7. Wall and Floor implements IHostObject interface (or IArchitecturalObject, IPhysicalObject, IPhysical whenever we want to call it)
  8. 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.

rwemay avatar rwemay commented on May 29, 2024

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.

ZiolkowskiJakub avatar ZiolkowskiJakub commented on May 29, 2024

Hi @al-fisher, @IsakNaslundBh, @rwemay,

I updated Branch according to our conversation:

  1. IHostObject renamed to IObject2D
  2. Profile property of IHostObject changed ISurface
  3. HostObjectProperties changed to Object2DProperties

Shall I create PR for this version?

@FraserGreenroyd

from bhom.

Related Issues (20)

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.