BrownTiger

Members
  • Posts

    739
  • Joined

  • Last visited

Posts posted by BrownTiger

  1. These things are state dependent. How does your builder build those porches. I am not an architect,  this is my hobby.  From the engineering perspective I have seen 5 or 6 different ways porches are  done. Some places use diagonal hatches to build the porch, others grade beam, not sure why would someone waste icf blocks on the porch.

     

    In Indiana, if the finished floor +12" the builders use 2x8 = 7 1/4 to form a slab that leaves 5" between a slab and the rough floor. In this case psolid porch floor. DNester has a really good video. 

     

    I don't know why would someone waste icf blocks on a porch. 

  2. Use ChiefArchitect menu: FILE > "New Plan from Template" and select some different template.

     

    If you have a profile.plan open it and remove those  those buildings. It is not corrupted. This is the way chief architect works. Some people like to start the plan with preset cameras, cross sections, box, macros, background, dimensions settings, arrows, layers, predefined wall types, plan views, and the standard details.  If you use CA daily, designing houses and buildings - highly recommend to set own templates for both profile.plan and corresponding profile.layout.

     

       

     

     

  3. You find a stretch zone (line) on your plan, and run edit area (all floors)  - draw the rectangle over the area you intend to move; now the cursor will stretch or contract the structure . Use Edit>Default Settings>Plan > Arrow Key scroll distance to set the distance you want to expand or contract. That way one key press is enough.

     

     

     

    >I would be entitled to assistance via Chief since I don't maintain SSA, isn't that right?

     

    Live, priority technical support (phone & online) is available to Support and Software Assurance (SSA) customers with the current version of Chief Architect. Customers without SSA qualify for non-priority live support if using the current version of Chief Architect (please note, this is not a design consultation). Topics covered by our support team are limited to installation issues and program errors. Software questions and how-to's should be directed to the training department, free training resources or the ChiefTalk user community.

    Paid support is available for version X2 and newer on a per incident basis for $125.

     

  4. >How does one prevent getting multiple roof planes, every time I make a revision I get a new roof plane in the schedule.

     

    $tree = nil

     

    In the Ruby console will reset the collection.

     

    >Trying to get to the order as shown on the left of the attachment

     

    MacroRoof.txt
     

    >Lastly,  how can one control the numbering order of roof planes. Any help is greatly appreciated.  

     

    Don't have a clue. There is no roof scheduler. All planes are equal. All I can do is sort them from the largest to smallest.

  5. > I don't get an error but also no results ?

     

    Macro_room_sqft.txt

     

    Because $tree["rooms"][key]['floor_number'] <-- is a number and not a literal.

    $tree["rooms"][key]['floor_number'] == 1 <- not == '1' 

     

    >One other little issue I noticed is that the macro seems to pick up the data from the "Living Area Label".  Is it possible to use this in the plan but exclude it from the results ?

     

    Many ways...

     - Double click on the "Living Area Label" and remove the collector macro at the bottom. Followed by $tree = nil ( or open and close ChiefArchitect)

     

     

    • Like 1
  6. #=== room_sqft_info sorted macro by request==

    result=""

    sqft=0

     

    v=$tree['rooms'].values.sort_by {|h| [ h['floor_number'],h['room_name'] ]}.each_with_index do |val,index|

    s= (index+1).to_s

     

    if ( val['conditioned'] && val['type_name'] != 'Open Below')

    result += " " + s +"\t" + val['room_name'].to_s + " \t" + val['floor_number'].to_s + " \t" +val["internal_area"].round(0).to_s + " sq ft\n"

    sqft +=val["internal_area"].round(0)

    end

    end

     

    result += "Totals: \t\t\t" +sqft.to_s + " sq ft \n"

    result

    Macro_room_sqft2.txt

  7. The issue is ... and I am really sympathize with the author about his font issues. ChiefArchitect is based on Qt framework. In Qt you set the font QApplication and every dialog QDialog inherits it.

     

    All good. However Ruby macros Ruby dialog [886_] this font is way to small.

    Chief Architect Premier X11 Dialog Sizes.ini allow you to define dialog sizes, but not the font.

     

    ChiefArchitect allow you to override the font but only for a material list.

     

    So my understanding is that @Kbird1 was looking for a solution and someone suggested Notepad++. [Fine right?]

    But I think he is trying to open JSon file instead of just pasting the script. 

     

    My Suggesting would be to use Windows Magnifier tool (<Window Key> and <PLUS key> to launch, and <Window Key> and ESC to turn off).

     

     

     

  8. ** Is there a way to force the Room sort Order eg alphabetically or by Room type  per Floor would be best if also possible

     

    Lol I realize ruby language is pretty cryptic, elegant in its own insane way...

     

    1) in the collector macro change to upper case from 

    items['room_name']=obj.name

    to

    items['room_name']=obj.name.upcase

     

    Next sort your way, by first creating an array of values and next sorting it, or sort by room scheduler number (that one can be manually reordered). 

    $tree['rooms'].values.sort_by {|h| [ h['floor_number'],h['room_name'] ]}

    Sort it by as many predicate as you wish

     

     

    >Should we use the room standard area instead of internal perhaps

    Standard Area is measured from center of interior walls

    Interior Area is measured from the inner surfaces 

     

    I assume that the standard area for promotional purposes ... 

     

  9. The garages_sqft_info macro can print out garages. Same with porches etc

    ==

    result=""

    sqft=0

     

    $tree["rooms"].keys.each_with_index do |key,index|

    s= (index+1).to_s

     

    if ( $tree["rooms"][key]['type_name'] == 'Garage')

    result += " " + s +"\t" + $tree["rooms"][key]['room_name'].to_s + " \t" + $tree["rooms"][key]['floor_number'].to_s + " \t" + $tree["rooms"][key]["internal_area"].round(0).to_s + " sq ft\n"

    sqft +=$tree["rooms"][key]["internal_area"].round(0)

    end

    end

    result += "Totals: \t\t\t" +sqft.to_s + " sq ft \n"

    result

    Garage_sqft.txt

    • Upvote 1
  10. This was an example of enumeration for rooms. 

     

    I recommend you for practical purposes to store "conditioned" value and may be "type_name".

     

    == roomLabel Macro ==

    referenced ? obj = referenced : obj = owner

    if $tree.nil?

    $tree = Hash.new { |hash, key| hash[key] = {} }

    end

    id="r" + obj.object_id.to_s

    items = Hash.new()

    items['room_name']=obj.name

    items['floor_number']=obj.floor_number

    items['internal_area']=obj.internal_area

    items['conditioned']=obj.conditioned

    items['type_name']=obj.type_name

    $tree['rooms'][id]=items

    arr = (obj.ceiling_elevation-obj.floor_elevation).round(0).divmod(12)

    result ="#{arr[0]}'-#{arr[1].round}''" + " CLG.HT."

    result

    ==

     

    == room_Sqft_info ==

    ##############################################################

    #

    # ORIGINAL MACRO CODE BY FORUM MEMBER ---- MANY THANKS TO BROWN TIGER -----

    #

    #https://chieftalk.chiefarchitect.com/topic/20097-ruby-enumerating-objects-list-of-rooms-areas-or-sq-ft/

    #or

    #https://chieftalk.chiefarchitect.com/topic/24014-q-how-do-i-get-control-over-the-macro-generated-text-on-a-roof-plane/

    #

    # EDITED BY MICK AKA KBIRD1 ON CA FORUMS WITH A LITTLE HELP FROM CHOPSAW

    #

    # Place this Macro in a Text Box or Rich Text Box

    # or in a 4 Column Schedule converted to Text. (best looking)

    #

    # Make sure the room_Label Macro is also added to the Room Default Label

    # in the Plan Defaults as well.

    #

    ##############################################################

     

    result=""

    sqft=0

     

    $tree["rooms"].keys.each_with_index do |key,index|

    s= (index+1).to_s

    if ( $tree["rooms"][key]['conditioned'])

    result += " " + s +"\t" + $tree["rooms"][key]['room_name'].to_s + " \t" + $tree["rooms"][key]['floor_number'].to_s + " \t" + $tree["rooms"][key]["internal_area"].round(0).to_s + " sq ft\n"

    sqft +=$tree["rooms"][key]["internal_area"].round(0)

    end

    end

     

    result += "Totals: \t\t\t" +sqft.to_s + " sq ft \n"

    result

    • Upvote 1
  11. 22 hours ago, Alaskan_Son said:

     

    Good idea, but no.  Chief hasn't given us access to the current file name anywhere except in layout boxes where they've given us access to the referenced file.

     

    I was hoping they would use like $0 to get the current file name... but instead it reports pointless "embedded"

     

    Here is the script to check for globals

    result = ""

    result += "RUBY VERSION " + RUBY_VERSION + "\n"

    result += "RUBY Release: " + RUBY_RELEASE_DATE + "\n"

    result += "RUBY Platform: " + RUBY_PLATFORM + "\n"

    result += "Scripts folder " + ($:).to_s + "\n"

    result += "Loaded Features " + ($LOADED_FEATURES).to_s + "\n"

    result += "Default Output " + ($>).to_s + "\n"

    result += "Environment:\n" + ( ENV).to_s + "\n===== End of Environment\n"

    global_variables.each { |gv| result += "#{gv}: #{eval(gv.to_s)}" }

    result

  12. Try this label macro

     

    referenced ? obj = referenced : obj = owner

    if $tree.nil?

    $tree = Hash.new { |hash, key| hash[key] = {} }

    end

     

    id="p" + obj.object_id.to_s

    pitch = obj.automatic_label

    area = ( obj.framing_area / 100.0 ).round(1)

    slope = (Math.atan2(obj.pitch,12.0)*180.0/Math::PI).round(2)

     

    #unless $tree['roofplanes'].has_value?(id)

    items = Hash.new()

    items['roof_plane']=id

    items['pitch']=pitch

    items['area']=area

    $tree['roofplanes'][id]=items

    #end

     

    indx = $tree['roofplanes'].keys.find_index(id)

    result = "Slope Angle: " +slope.to_s + "\n"

    result += "Pitch: " + pitch+ "\n"

    result += "Area: " + area.to_s + "\n"

    result += "Roof Plane: " +indx.to_s

    result

     

    ============================================

    Entering statement below in Ruby console will reset your collection tree.

      $tree = nil