HIDEing entities within Blocks - or what other approaches?

Tom Foster
edited October 27 in 3D Modeling

In 3D modelling, I would like to hear what other users do to hide some entities so as to 'clear the space' to be able to see to modify or create new entities, in crowded or interior parts of the model.

In my case it's building modelling, not necessarily as full-featured BIM, often just using 3D solids. Probably more than in MechEng for example, there's lots going on inside the visible outer faces. Typically the model is built from the outside in - first the walls/roofs, then lots of interior detail.

Visualstyle Xray is useful, but usually not clear enough to confidently model interior details which may be behind several other solids, looking in from the exterior.

It's about hiding groups of entities as necessary - whether by HIDE/SHOW/ISOLATE, or by switching Layers ON/OFF; grouping entities as Blocks/Xrefs or as MechEng Components/Sub-Components or even as Groups; including use of Structure panel.

It has to be quick and easy to select and hide (whichever way) a group or multiple groups with a couple of clicks and redisplay them just as easily. Not necessarily to redisplay all, but again to select which ones to redisplay. Selection to hide can be done by clicking on a group or from a list (e.g. Layers or Structure panel); but selection to redisplay can only be done by a 'display all' button or again from a list (but which is which, in an alphabet-soup list?).

I had a good system but it's been destroyed by withdrawal of a key feature, since v24. So I'm still stuck in v23 - how long can that last?

I have the 3D building model composed of a series of large Blocks - like a MechEng Assembly of Components. The Blocks are typically: Existing Walls/Roofs; Floors (new and existing), Interior (new and existing); New walls; New roofs; New windows; Existing groundform; New groundworks etc. Everything in the 3D model is in one Block or another.

To in-place edit any one Block I open it in RefEdit (can still see and snap to all other parts of the model) then close, no problem.

For example, if working on the interior, I can HIDE some Blocks - Existing Walls/Roofs, New walls, New roofs - leaving Blocks 'Floors' and 'Interior' still visible. Then open Block 'Interior' in RefEdit. But Block 'Interior' is still a forest of entities blocking view of the bit I'm working on, so I HIDE them as necessary.

This last step is essential but no longer possible since v24 - HIDE, SHOW, ISOLATE no longer work within a RefEdit session. So I have to stick in v23.

I hope I have illustrated my particular needs. Does anyone else have similar needs? Pariicularly in building modelling - how do others manage this?

Grouping as Blocks, using RefEdit, is cumbersome and risks errors - but workable. Grouping as Groups is useless and as far as I can see, when grouping as Components (pseudo-blocks), editing works like Blocks used to be before RefEdit, and may not work at all since v24.

What else am I missing?

Comments

  • ScottS
    edited November 5

    Great question, Tom. Isolating the relevant scope in models consumes a considerable amount of working time and effort.

    I primarily take two approaches: manually selecting and hiding objects that are in the way as I navigate around the model space drawing area or 3D viewport, and I also make extensive use of the Structure panel. I've defined a bunch of Structure Tree Configurations to display various groupings—more than I need—I use just a few regularly. You can sort the hierarchy by layer, then story, then composition…, or in whichever order you like.

    I also added a BIM Property called "Phasing State" under the User namespace to designate "existing", "demo", and "new" elements. Some of my structure tree configurations group by that phasing state property, making it faster to select/hide/isolate/show, say, all existing elements regardless of their layers or BIM types, etc. Now you've got me thinking to add another BIM property for high-level classification of building elements as "shell", "interiors", and so forth, to complement the building and story properties.

    Of course, this Structure tree method relies on having all these BIM properties correctly assigned. There is already an "on/off" property for BIM walls called "Is external", which QuickWall and Bimify seem to get right most of the time. Otherwise, I need to remember to set them manually, a step I tend to forget while modeling stuff on the fly, often precisely the moments when it would be most helpful to quickly toggle visibility of nearby objects.

    Showing everything hidden, as _unisolateobjects does, is sometimes desirable. More often, I just want to step out one precinct at a time, revealing only the next wider zone of the model. Not so easy to do.

    Your question reminds me of recent discussions about controlling visibility in viewports, too.

  • Brilliant ScottS - several hopeful new rabbit holes for me to investigate!

  • By the way: The AVC Drawing Tree plugin allows you to view and select objects inside blocks. And the AVC Properties Palette plugin allows you to control the Visible property (including for objects inside blocks)

  • I think this following idea is unlikely to help you, but thought I would mention it. I have made a few buttons that do things like recall a saved layer state 1 and 2, Likewise View 1 and 2. My template already has those layer states and views saved. So, when I am working on a drawing, and want certain layers off, I turn them off, and then save the layer state named 1, overwriting the version that was already there in the template.

    I tried to create a macro button to save the layerstates 1 & 2, but it wouldn't work. If I recall correctly, it may have been that some part of the process would not work with command line operations only.

  • Anthony Apostolaros
    edited October 30

    quote: "….it may have been that some part of the process would not work with command line operations only."

    Isn't that true of macros generally, i.e. that they only work in menu items or toolbar tools, not on the command line? I think you have to convert the macro to a lisp function, or use an aftermarket macro utility like Macro Express. I once had lisp-based custom commands that did those things. But the pull-down for layerstate restoration (next to the pull-down for lineweight) is very convenient, and with mouse-wheel navigation I don't use saved views much any more.

  • Thanks avc - could be part of the plan. Reading your stuff, I also got that simple Groups may not be as hopeless as I thought.

    Thanks Jon - whatever the solution, put it on a button or two.

  • Anthony Apostolaros, Historically macros were just text that you would type on the command line, plus a few special symbols to pause for user input, etc. Then it evolved into a more complicated system, but still could not deal with any windows or toolbars. Here is an example of one that creates a layer called "Text"

    ^C^C-layer;Make;text;;

    I am only on v14, so it may have added more features to deal with those things. I know AutoCAD has a macro recorder, with the ability to record menu and window actions. I think they are called "Action Macros". But it has very limited features to edit it.

  • Tom Foster
    edited October 30

    Organising into Groups was looking very promising, since I realised from something avc wrote on his website that a simple dab on Ctrl+H would switch a Group from being selected as a whole (then Hide/Show), to selecting the individual entities within it (to edit) - a lot easier than organising into Blocks and going in and out of RefEdit.

    My idea was to select major Groups, like 'Roof', 'Existing Walls', 'Floors' etc (to get them out of the way by Show/Hide) in Structure panel, like Blocks can be. Then get more granular with parts of remaining Group 'Interior' by Freezing ScottC's 'realistic' Layers 'Stair', 'Partitions' etc, again in Structure panel, until I get clear access to desired detail edit. Or another way, Ctrl+H then select and Hide individual entities of Group 'Interior'. And re-Show individual entit(ies) of major Group 'Roof' previously Hide'd, if necessary as context to the detail edit. Highlighting to identify selected entities (or mouse-over on my wish-list), 2-way between model and Structure Panel, is invaluable though faulty - I just made a SR.

    But … looks like Group isn't any kind of a Thing in Bricscad, that can be inserted in a Structure tree, to sort by. In Configure Structure Tree>Select Property, 'Group' doesn't show up in >General, as a Property, nor in >Entities, as an Entity (nor in Configure Structure Tree>Show/Skip), although 'Block (incl Xref)' does. Am I right?

    Though I notice that in >General there are a couple of extra Properties, compared to Properties Panel - maybe it's poss to invent additional Properties or Entities, or set some sortable Attribute manually associated to each Group? avc's Properties Palette cleverly adds new Properties to Materials, and it is poss to cludge Material onto Configure Structure Tree - just did it, can't quite remember how!

  • Tom Foster
    edited October 31

    ScottS - you mention hiding objects "in the 3D viewport" - is this a setup I should know about? In my case Modelspace has both 2D entities (within multiple instances of Blocks, rotated to the four (or more) elevational orientations) and a 3D model - see attached pic. Do you mean you work on the 3D model not in Modelspace but through a Viewport in Paperspace?

  • A good reason to find a way of making the 3D model, that's not a MechEng-like Assembly using Blocks, if thinking of real-time rendering by Twinmotion, this from support:

    "Twinmotion only recognizes 3D entities. Unfortunately, 2D entities are
    not imported into the rendering program. It does import blocks as
    groups, and while it recognizes external references (Xrefs), they are
    treated as individual blocks. However, Xrefs do not retain their
    assigned materials, importing instead as black objects by default."

  • By "3D viewport" I meant the model space drawing area, which is where I do 3D work 99% of the time, although you can hide objects "on the fly" in paper space viewports just as well.

    Curiously, the Structure Browser does not list model space objects when I'm in paper space layouts, even if a viewport into model space is active (Tilemode = 0), so my second method is no use in paper space.