Macro for displaying Texture images


HCremodel
 Share

Recommended Posts

I am trying to create a custom texture detail schedule that references an object's texture and displays the assigned texture image. Problem is, I am fairly inexperienced with Ruby/macro in general although I have a very basic understanding. Has anyone created something similar to this, or have suggestions on how to get started with creating this type of custom macro? I am using Interiors 12X

Link to comment
Share on other sites

If you're trying to access the Texture Source file name, then yes, you are correct, I am telling you that its not possible.  If you're trying to access the Material name, then I'm telling you it might be possible.  It really depends on what you mean when you say "texture image" and on what types of objects you're talking about.

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

  • Member Statistics

    33249
    Total Members
    9156
    Most Online
    AjaChief
    Newest Member
    AjaChief
    Joined
  • Similar Content

    • By Scogginator
      Is there a way to write a custom command to auto-place lights?
       
      I've used chat GTP to write code that I'd like to utilize. I have attached a word file and pdf that I need proof read and corrected. I can have that done.
       
      Below is the code, but I'm not sure if it will format correctly:
      Sub PlaceLights()
          'Ask the user to select the room size and ceiling height
          Dim roomWidth As Double
          Dim roomLength As Double
          Dim roomHeight As Double
          roomWidth = InputBox("Enter the width of the room in feet:")
          roomLength = InputBox("Enter the length of the room in feet:")
          roomHeight = InputBox("Enter the height of the room in feet:")
          
          'Calculate the square footage of the room based on user input
          Dim roomArea As Double
          roomArea = roomWidth * roomLength
          
          'Determine the recommended lighting level for the room based on the ceiling height and room type
          Dim lightLevel As Double
          Select Case roomHeight
              Case Is <= 8
                  lightLevel = 10
              Case Is <= 9
                  lightLevel = 20
              Case Is <= 10
                  lightLevel = 30
              Case Is <= 12
                  lightLevel = 40
              Case Else
                  MsgBox "Invalid ceiling height"
                  Exit Sub
          End Select
          
          'Calculate the number of lights needed based on the room size and the recommended spacing
          Dim lightSpacing As Double
          If roomArea <= 100 Then
              lightSpacing = 48
          ElseIf roomArea <= 225 Then
              lightSpacing = 64
          ElseIf roomArea <= 400 Then
              lightSpacing = 80
          Else
              lightSpacing = 96
          End If
          Dim lightCount As Integer
          lightCount = Application.RoundUp((roomWidth + roomLength) / lightSpacing, 0)
          
          'Determine the optimal spacing for the lights based on the room size and ceiling height
          Dim xOffset As Double
          Dim yOffset As Double
          If roomWidth >= roomLength Then
              xOffset = lightSpacing
              yOffset = lightSpacing * roomLength / roomWidth
          Else
              xOffset = lightSpacing * roomWidth / roomLength
              yOffset = lightSpacing
          End If
          
          'Place the lights in a rectangular or square pattern within the room
          Dim lightType As String
          lightType = InputBox("Enter the light diameter (4 or 6):")
          Dim x As Integer
          Dim y As Integer
          Dim light As Object
          For x = 1 To lightCount
              For y = 1 To lightCount
                  Set light = ActiveDocument.CreateLight("Recessed Can Light", lightType & """", "General")
                  light.Move (x - 1) * xOffset, (y - 1) * yOffset, roomHeight - 48
              Next y
          Next x
          
          'Generate a report or summary of the lighting plan for the room
          Dim report As String
          report = "Room Size: " & roomWidth & " ft x " & roomLength & " ft" & vbCrLf
          report = report & "Ceiling Height: " & roomHeight & " ft" & vbCrLf
          report = report & "Recommended Light Level: " & lightLevel & " lux" & vbCrLf
          report = report & "Number of Lights: " & lightCount ^ 2 & vbCrLf
          report = report & "Light Spacing: " & lightSpacing & " in" & vbCrLf
          report = report & "Light Type: " & lightType & """ Recessed Can Light" & vbCrLf
          MsgBox report
       
       
      Any help would be appreciated.
       
      Thanks,
       
      Jeff
      Sub PlaceLights.docx Sub PlaceLights.pdf
    • By FT2design
      Automatically generated schedules…items that are added to a cabinet box such as a wall oven or lavatory show up in the schedule but I cannot seem to edit/control the name like I can with a free-standing item like a toilet or fridge. I have tried opening the cabinet dialogue box for that item to alter the individual component data so that the output in my schedule says what I need it to, but aside from renaming the cabinet label and assigning the cabinet as a plumbing fixture I don’t seem to be able to have the right control. Can anyone point me to a tutorial or reference a topic where this is covered? I keep chasing my tail searching for any tips and can’t find anything specific to my issue.
    • By gravattedesign
      My Note Label symbols are scaling larger than the layer font for the note text. This causes schedules to come in much larger when dropped into Layout. Schedules are created in a CAD DETAIL page in the PLAN file then dropped onto a layout page at the same scale as the drawing view the notes are linked. Please help with this anomaly. I have included a PDF with Screen shots of a sample layout page, Schedule and Layer settings.
       
      Thank you for anyoone who may be able to shed some light on this issue.
      22-0110-CHIEF ISSUES-GDS-Schedule Note scaling in layout.pdf
    • By Allen43
      I have returned to this forum once again in seek some help with ruby and macros.
       
      I have been working on a macro to automate cabinet labels. So far I have a mostly working macro, but I feel like my hands are tied and my eyes are closed. First of all the documentation on chief implementation of ruby and its capabilities it really lacking. And second, I don't have the Ruby terminal. I think this is because I am running Interiors, but am not sure as all Chief says is that there is limited use of Ruby in this version.
       
      Anyways, right now I would love to have a list of all callable object attributes. I honestly don't even know if that is the right name for what I am looking for. I am trying to find a list of what info I can scrape from a cabinet. So, what can I put after obj. (ie. obj.width, obj.type)? I think I could find this by running the selected.names command in the terminal, but I have no way of knowing.
       
      This is my current macro. It is built from parts of a macro from @MarkMc and whatever I have been able to come up with from random trial and error. If you see something I could improve on, I am open to suggestions as long as they have a good explanation with them. Thanks in advance!
       
      Macro:
      obj = owner
      obj = referenced unless referenced.nil?
      obj.depth
       
      type = obj.type.to_s
       
      nf = NumberFormatter.new
      nf.unit = 'in'
      nf.use_fractions = true
      nf.show_unit = false
      nf.apply(obj.depth)
       
      standard_size = 24.0 if type == 'base_cabinet'
      standard_size = 12.0 if type == 'wall_cabinet'
      standard_size = 24.0 if type == 'full_height_cabinet'
       
      depth = nf.apply(obj.depth) if obj.depth.to_f != standard_size
       
      standard_size_height = 36 if type == 'base_cabinet'
      standard_size_height = 0.0 if type == 'full_height_cabinet'
       
      height = nf.apply(obj.height) if obj.height.to_f != standard_size_height
       
      width = nf.apply(obj.width)
       
      nomen = 'B' if type == 'base_cabinet'
      nomen = 'W' if type == 'wall_cabinet'
      nomen = 'T' if type == 'full_height_cabinet'
       
      hinging = owner.door_swing
      label = ""
      label << nomen << width.to_s << height.to_s << depth.to_s << hinging
       
      p label
       
    • By DRyeHD
      I'm looking for input on how to best use schedules in my .pln file and on my layout pages.  Per my screenshots, I have created several note schedules.  They are on separate CAD Details in my .pln template.  I have copied and pasted them to my .pln for reference.
       
      I try to put the applicable schedule on the layout page that it corresponds to so tradesmen don't have to reference just one notes page.  The preliminary note schedule is used just for preliminary work; likewise, the roof notes on the roof plan layout page, site notes on the site plan layout page, and remodel notes on remodel layout page.  The floor plan layout page usually contains the construction, plumbing, HVAC, cabinet, and trim note schedules.
       
      Is there a way to place the note schedules on the applicable pages of my layout template?  This would eliminate opening each CAD Detail and sending it to a layout page each time I work on a new layout for a specific plan.
       
      If there is not a way to have the note schedules on my layout template pages (before I save it as a specific customer layout), is there a more efficient way than what I am currently doing?
       
      Thanks in advance for your input.