amddrafting

Members
  • Posts

    149
  • Joined

  • Last visited

Posts posted by amddrafting

  1. 34 minutes ago, Renerabbitt said:

    first off, mike is the man, love it when I get to read through his approach on anything macros...I believe he may still do ruby training so hit him up :)
    I would add in some variables in the beginning in case you ever expand your method and maybe some conditions.
     

    
    
    # Copyright Rabbitt Design 2024
    ##########################################################################################
    # Rabbitt Design assumes no liability for the accuracy of the occupancy calculations or 
    # any consequences arising from the use of this script. Users are responsible for verifying 
    # the appropriateness of the occupancy loads and ensuring the script functions as intended 
    # in their specific use case.
    ##########################################################################################
    
    #Use by putting a statement in your text box/polyline label/room_label
    #%$occupancy="Educational"%
    #Occupant Load:%occupancy_load%
    
    ##########################################################################################
    # Occupancy Load Constants
    # Note: Load values are in square feet per person
    OCCUPANCY_LOADS = {
      assembly: 15,    # Areas for public gatherings (e.g., auditoriums, dining areas)
      business: 100,   # Typical office spaces
      educational: 20, # Classrooms and educational facilities
      factory: 50,     # Industrial and manufacturing spaces
      high_hazard: 500,# High hazard areas with minimal occupancy
      institutional: 240, # Hospitals, care facilities
      mercantile: 30,  # Retail and sales floors
      residential: 200,# Living areas in residential settings
      storage: 300,    # Storage areas with limited occupancy
      utility: 500     # Miscellaneous and utility buildings
    }
    
    # Calculate Occupancy based on predefined occupancy type and defined area
    def calculate_occupancy(room_area)
      # Normalize occupancy type
      load_factor = OCCUPANCY_LOADS[$occupancy.downcase.to_sym] rescue nil
      if load_factor.nil?
        raise "Occupancy type '#{$occupancy}' is not defined or incorrect."
      end
    
      # Calculate occupancy
      occupancy = (room_area.to_f / load_factor).round
      occupancy
    end
    
    # Conditionally determine the room_area based on whether 'room' is defined
    room_area = if defined?(room)
                  room.internal_area
                elsif defined?(internal_area)
                  internal_area
                else
                  area  # Fallback to just 'area' if the other two are not available
                end
    
    # Call the function with room_area, assuming $occupancy is defined elsewhere
    final_occupancy = calculate_occupancy(room_area)
    final_occupancy  # This line implicitly outputs the result

    You could use this in your room label or in a text box or in a polyline label

    In either you could need:

    %$occupancy="Educational"%

    Occupant Load:%occupancy_load%


     

    For instance. this will set the appropriate variable call
    image.png.14f31ea5506cb456c1264888aa80e114.png

    Wow man, this was my next thought on how I could use "Room Type" and define them in a commercial template as such.  Then if the "Room Type" was "Business", "Assembly", "Educational", etc.  It would automatically update the label and update the occupancy calculation.  Super powerful tool and kicking myself for nothing thinking of this stuff sooner.

  2. 2 hours ago, Alaskan_Son said:

    There are all sorts of little problems:

     

    source_information = %room.area.internal%

    numeric_part = source_information.match(/\d+/)[0]

    numeric_value = numeric_part.to_i

    result = numeric_value / 20

    puts result

     

    1.  %room.area.internal% isn't a Ruby accessible object attribute (name:value pair).  It's just a Chief Architect string substitution macro.  If you want to use this macro in a text box placed in the room, the name:value pair you should be using is simply room.internal_area without the percentage signs.

    2.  The match method is a Ruby method used to parse a string.  The internal area attribute however is not a string.  Its a Measurement.  If you want to use the match method, you first need to convert the source_information to a string using the .to_s method.

    3.  Just an observation, but you may not be getting the results you think.  The .to_i method is converting your results to an integer which is the whole number rounded down.  0.999 would become zero, 559.9 becomes 559, etc.  What's worse though is that because you're diving by another integer (20) the results of your calculation would also become another integer.  So, instead of 559.9/20 = 27.995 you would get an even 27.  This one can be solved by just converting to a float (which contains decimal values) and then rounding the result.  This can be done a number of ways, but one of the easiest would simply be to replace .to_i with .to_f.

    4.  puts isn't used in Chief's text macro environment.  It's simply not needed.  If you try to use it, your results will by nil (empty).  

     

    So, the corrected macro becomes:

    source_information = room.internal_area

    numeric_part = source_information.to_s.match(/\d+/)[0]

    numeric_value = numeric_part.to_f

    result = numeric_value / 20

    result.round

     

    Although the above macro would work, it still has a handful of totally unnecessary code and could be reduced all the way down to:

    (room.internal_area.to_f/20).round

    Amazing!  Thank you so much!  This works perfectly.

     

    Now the next step will be taking that result and multiplying it by .2 to get inches required for openable door clearance code requirement.  Any thoughts?  It would be an if / then scenario.

    Ultimate goal would be to get the second number in this graph to display required door opening clearance.  Minimum is 32" but if it exceeds 32" then I would want it to show the actual required amount.

    Then I'll need a macro that will count width of doors provided (if labeled "egress') in the room

     

    The end goal would be to just have these in the library that I could paste into the room depending on the room type.  But I'd love to take it a step further and only need one object that could be place in any room and pick up the room type and change the calculation as needed based on the room type definition.  (see my post below in response to Rabbit)

    image.png.303ab75b328fa556028cb4cb1acbab84.png

  3. Morning all... I'm trying to create a macro to calculate the occupancy load of a room by taking the interior square footage of the room and dividing it by the occupancy load for occupancy type.  Using ChatGPT I got the result of this macro that should help me get the result I need but it's not working.  I assume I first have to get rid of the unit text in order to divide by the occupant load I want to divide by.  So this is the code it came up with.  Anyone ruby script people know what is wrong here?  Does this need to be different because it's in CA?  Any help would be appreciated.

     

    source_information = %room.area.internal%

    numeric_part = source_information.match(/\d+/)[0]

    numeric_value = numeric_part.to_i

    result = numeric_value / 20

    puts result

     

     

  4. Good morning folks.  Since we are getting into more commercial work it is more common for us to display room numbers on plans.  I noticed that the schedule has an option to show room numbers but there is no macro for us to be able to include room numbers to display in a text box or even in the room label that I can find.  Is this a possibility or are we stuck manually entering in room numbers?

  5. Talking to a Pella rep this morning I had mentioned the library and named the series we have access to, and they told me that those names / series are about 5 years outdated.  I realize that this is something that is probably not a priority for CA, but I just want to advise whoever that you might want to look into updating your Manufacturer libraries to current specifications/names.

     

    If you use Pella windows in the Manufacturers Catalogue, I was advised they can get close to what those were, but they are not the same anymore.

    • Like 1
  6. 16 hours ago, Renerabbitt said:

    Yes you can.

    I would NOT advise it.
    Chief will try to re-write the user library for every change that is made on ANYONE's machine so long as that machine is running Chief. When Chief sees that the user library is locked it will make a new file User Library_1 for instance, which will just get lost. Chief will only open a file named User_library.
    There are more advanced ways of setting up a cloud sync option but these all require a process that the entire team must stick to.
    Alternatively you could regularly export the days new library items and at the start of the next day have the team do their respective imports.
    I have 4 different methods for User Library syncing but every method is a process that must be trained to the team

    That's what I was afraid of.  I figured it was still too complex to not have some sort of process going.  I plan on just doing like you said and exporting daily/weekly and having them reimport the library as needed.  If they create library objects/details I usually have them export it to the library folder and then I reimport to my library then export the entire library with new items added.  Then just have them import that full library weekly.  I appreciate the feedback Rabbit!

  7. I'm sure this one has been talked to death but I did a search and couldn't find any topics right away.

     

    So with X15 can we now share a single User Library if we keep it in a shared cloud environment?  We use MS Teams and work mostly remotely.  I have all of our templates pointed to one shared folder in our Chief Architect Teams folder.  I have all of our library objects that are created by an individual shared to a folder so we can all import those objects, details, etc so we have all keep a similar updated library.  I also maintain the most comprehensive User Library and export it often so people can reimport the whole user library if needed.   This is obviously a lot of work.

     

    My goal would be to move our user library to that location in teams and point everyone's CA program to that location and share that User Library with everyone.   Meaning when we all open our CA that folder directory points to that file to load the User Library.   In the past when I tried that we would get overwritten libraries and people would lose folders worth of library objects.  I thought this was already resolved and possible but I just want to make sure I'm safe to move forward on this work flow, or are we still waiting for that feature to become a thing?  Any insight would be appreciated.  Thanks in advance.

  8. Here is a section of what I build in CA   With this scenario I use furred frame walls on the interior of the concrete.  They obviously build to the slab above but they are supposed to support the floor joists above so I need that ceiling to build over top of the walls.  Again, I usually just fix it with CAD but would like to know if this is a scenario that can be done with CA auto features.

     

    image.thumb.png.8bbd6538359447a58a1b71663bd2027d.png

  9. See Photo For reference.

     

    Does anyone have a video on how to build a basement like this using a monolithic foundation scenario?  I've tried everything to get this to work right and I just can't seem to ever get the floors to work correctly.   I love the way monolithic slabs look in cross section view (chamfers, wall extensions, etc) and I'd love to use the auto features as much as possible.  This is one scenario I can never make work, so I have to default to drawing my own foundations every time.

     

    Our foundation slabs are poured over top of the basement so I'm able to use the "Floor below room" setting on the first floor.  Then in the basement I set the floor height from the bottom of the slab and then use the ceiling finish tab to build my ceiling structure under the slab.  This always works for me to display basements like this and make the first floor work.  However, I'm limited in using many auto features and have to do a lot of editing on cross sections.  Just trying to see if there is a way that I'm not aware of to make this work.

     


     

    image.thumb.png.682cc15f9dcdf40fe86d9b3cdfbe9cdb.png

  10. 4 hours ago, DBCooper said:

    Since framing can't go into architectural blocks and 3D solids can't go into cad blocks, I don't think you can do what you are saying you did.

     

    My guess is that you are making a cad block out of framing pieces.  For some crazy reason Chief treats framing like cad instead of like architectural objects.  They won't show up in a camera view unless you explode them.   Chief has worked this way as far back as I can remember.

     

    To be specific it was a "Post" from framing and a "Slab" footing that my employee blocked.  I had blocked general framing objects that I used to build a truss and wanted to temporarily block them so I could move them into place all at once.

  11. When taking two objects, say a framing post and a 3D Solid, I block them together and suddenly the block disappears in the 2D view but not the 3D view.  It is no able to be selected in the 3D view like it's locked.  Of course, first inclination is to check layers to make sure they aren't turned off and/or locked.  Doesn't matter if I turn the "All on" layer set on it still doesn't show up or in 3D view I can unlock all objects and it's still not selectable meaning it cannot be exploded.  This also was confirmed with one of my employees on Friday, while on a video call with him.

    I'll be adding a support ticket but just curious if anyone else has been seeing this issue.

  12. 1 hour ago, RobUSMC said:

    Looks great Eric.  My wife designs furniture for a few lines and has her own private line.  She is wanting to be able to find those specific furniture symbols and fabrics.  A lot of other design software like 2020 and MyDoma have a lot more furniture mfg. in their libraries as they are more geared for interior design.  I know we got Kravit recently and its a bit on the mid to higher line.  She was interested in a few of these other software's that do have an expanded furniture mfg selection.  Not to replace CA but there have been several furniture pieces that I've been able to find something close and try to reproduce a seamless screenshot of the fabric but again close but missing, especially with raytrace you can tell.  Im not looking to switch from CA ever. Its mainly for the designers with interior design only clients.

    With 3D scan technology it would not be hard to scan an existing piece of furniture in a showroom, import it to sketchup, clean it up and the import into CA.  The fabric swatches might be able to be downloaded from the manufacturer and utilized to create a custom piece of furniture... or send a picture to someone and hire them to model it as close as possible.  There are tons of talented people out there who would be able to knock these out for you pretty quickly and might fit in the design budget without a problem.  Then before you know it you have a library of custom furniture that you can use and reuse on your next designs.

  13. With CA X14 and beyond the PBR Real Time ray tracing is a game changer.  I'm not sure why you would feel you need another software especially for interiors.  Now the VR aspect, at least for me, has a way to go but my clients are super impressed with the outcome of our walk throughs with them.

    As far as textures and materials go there are a ton of resources out there that can help you understand images and mapping, etc.  There are free online resources to create those normal maps, metal maps, etc.  And I'm sure there are plent of people on here that would be willing to teach you how to get the best out of the software with a small fee.

    As far as exporting you have a ton of options, Just go to a 3D view and then go to File > Export and you can see all of the file types that are available.

  14. 45 minutes ago, Archnot-Boltz said:

    This is why we need the ability to specify individual bearing heights with walls or cad (bearing line) lines. 

    I think they more or less achieved this by giving us the "retain roof" option so you can manually draw a roof plane and then turn autoroofs back on and force it to work with your roof plane.  Auto roofs always get me close enough and I manually draw to finish it up, it's what I have done for years, just never seen it act like this with such a simple change to the ceiling heights.

  15. 36 minutes ago, Chrisb222 said:

     

    I'm confused by this. If the "whole house" is 9', why did you raise the porch to be 10'?

     

    Impossible to tell what you're trying to achieve as the end result, or how to help you, from what is provided.

    I started with 9' plates on the whole house, wanted to raise the plates on the porch and that bedroom to make that entry more dramatic.  With autoroofs this should be a normal work flow should it not?

     

    I eventually found that by raising the interior rooms to 10' behind the bedroom resolved the issue but it still didn't achieve it in the way that would actually be framed.  So I just ended up starting from there and finishing the roofs manually.  Attached is what I was trying to get it to do.

    Screenshot 2023-03-24 094329.png

  16. X15 working with Autoroofs.  The main plate height for the whole house is 9'  I raised the front porch to be 10' which created the weird thing on the corner.  So I adjusted the height of the room behind the porch to 10' and this is what happened.  Any insight for you autoroof people?  I usually manually roof but I figured this one was easy enough.  Apparently not. ha.

    Screenshot 2023-03-23 153716.png

    Screenshot 2023-03-23 153800.png

  17. 1 minute ago, Joe_Carrick said:

    OK, Try this.

    1. Make an opening in the brick wall (no frame, no casings)
    2. Make the 4" thick wall about 12 " inside the room and mark it "No Room Definition"
    3. Place your door in that wall. 
    4. You might want to adjust the wall to the width and height of the Brick Wall Opening.
    5. Move the 4" thick wall to be flush with the inside of the Brick Wall.

    There are other methods but this will work fine.

    Thanks Joe, I'll try that.  Pony wall doesn't work unfortunately.  But the "No Definition" and "No locate" are great ideas thanks