Railing Panel info

Viewing 7 reply threads
  • Author
    Posts
    • #4730
      James Murray
      Participant

      I’m trying to make a railing panel consisting of horizontal wires. All I need is the height of the railing, the length of the segment, and the slope if the railing is not level. It looks like the length and delta Z info should be in RAIL_POLYLINE_GEOMETRY, but that array contains nothing but ten zeroes (when inspected via PRINT). Or am I looking in the right place? Any help appreciated.

      James M

    • #4731
      Péter Baksa
      Keymaster

      Hi, the stair and railing globals don’t contain useful data in the libpart editor, you have to place the element.

      Péter Baksa
      Library Platform, Software Engineer
      GRAPHISOFT SE

    • #4732
      James Murray
      Participant

      I’m getting an array of all zeroes in the report via PRINT for a placed railing.

      Can you tell me if RAIL_POLYLINE_GEOMETRY is the correct way to go?

      James M

    • #4733
      James Murray
      Participant

      This:

      railNodeQ = VARDIM1 (RAIL_POLYLINE_GEOMETRY)
      PRINT 'railNodeQ=', railNodeQ
      
      panelLen = RAIL_POLYLINE_GEOMETRY[2][1] - RAIL_POLYLINE_GEOMETRY[1][1]
      PRINT 'panelLen=', panelLen

      …gives this report for a placed railing with a zig zag geometry, where I count 5 nodes in the polyline:

      railNodeQ= 2  ()
      panelLen= 0  ()
      railNodeQ= 2  ()
      panelLen= 0  ()

      James M

    • #4735
      Péter Baksa
      Keymaster

      Sorry, I didn’t notice the name of the global. It’s the set of global variables starting with RAILINGPANEL_ that you need.

      With somewhat custom settings, it is possible that a panel has more than four sides (panels connecting with different heights at a landing, or columns offset from the end of the landing: the corners might be cut off with horizontal planes). To handle these cases too, there is RAILINGPANEL_GEOMETRY that is the contour polygon, and RAILINGPANEL_UNCUT_GEOMETRY that is a four-sided polygon before the cuts.

      RAILINGPANEL_FLAGS[i][2] tells which side of the panel is the i-th edge (1 – bottom, 2 – end, 3 – top, 4 – start) You can derive the height from RAILINGPANEL_UNCUT_GEOMETRY start/end edge.

      The slope can vary on a winding stair. RAILINGPANEL_GEOMETRY can have multiple segments on the top/bottom sides. For wires, the average slope can be computed from the first point of the bottom side and the first point of the end side of RAILINGPANEL_UNCUT_GEOMETRY.

      Slanted/skewed railings (RAILINGPANEL_SLANT_ANGLE, RAILINGPANEL_SKEW_ANGLE) need to be handled carefully.
      Curved panels are also special: RAILINGPANEL_TYPE tells the overall shape of the railing. You might not want to handle curved panels at all.
      Curves are given in a format similar to PolyOperations: start x, y, central angle.

      Péter Baksa
      Library Platform, Software Engineer
      GRAPHISOFT SE

    • #4736
      James Murray
      Participant

      Thanks Peter, with the right globals it wasn’t too hard. Since wires don’t curve I thankfully can stay out of that area for now.

      James M

    • #4737
      James Murray
      Participant

      It seems that the RAILINGPANEL_GEOMETRY polygon goes to the top of the segment (assuming the offset is zero). This makes the panel coincide with the top of the top rail. Is there a global or parameter that represents the top rail thickness, so I can lower the panel top automatically?

      James M

    • #4738
      Péter Baksa
      Keymaster

      No, there isn’t. Use the offset settings of the panel, and it will be automatically smaller.

      Péter Baksa
      Library Platform, Software Engineer
      GRAPHISOFT SE

Viewing 7 reply threads
  • The forum ‘Informations from the environment’ is closed to new topics and replies.