Friday, July 5, 2024

A simpler time, fun with BIM360, StreamBIM, Navisworks, late payers, and working on a large project

Just checked my blog stats, seems I have 2 followers.  Seem to get a few views so onwards!

 Once upon a time, I was a manual draftsman, with a set of pens, plastic templates and a compass.  These were my tools of trade.  

Not any more.  Here I am at nearly 78 years of age, working 8 hours a day, and trying to cope with more technological advances again, after being one of the early adopters of working in 3D Autocad.

I am thinking, shall I give this until the end of August, if AI does not do away with the job in the meantime.

The technological advance I am talking about is BIM360.  Apparently it has been out for a while, but I have not had reason to use it.

In case you are new to it, BIM360 is an Autodesk product and in a nutshell it is the same as Dropbox, but with bells on. The bells on are quite nice and work as follows:

You upload your model to the BIM360 site, in my case a a Revit model.  It then processes this and then you can view it.  This is quite amazing because it seems to cope with large models very nicely.  We are talking here about a large factory with every bastard's stupid ideas of what should be in a model.

If I sound bitter, it is because I am grumpy because I seem to be forever fighting a rear guard action against people who think it is a great idea to download a desk with a computer keyboard with all the keys on it and think this is a great idea!

This seems a good system for working collaboratively on large projects, with the various disciplines, ie Architectural, Structural and so on uploading their models so everyone can see the whole picture.

Unfortunately for such an older geezer, the buzz words keep coming just to muddy the waters a bit.  For instance "Federated Model", which apparently is big daddy drawing, where everything is fed into. It seems the Architects drawing is a logical one for this.

Another one is "Consumed", which I am still puzzling over.  Another puzzle for me is no one seems in control, although no doubt if I looked hard enough on all the Youtube videos I would find out.  Oh Joy! A job for this weekend.

Apparently the license for this is quite expensive, so another similar setup has been introduced, called StreamBIM, see here https://streambim.com/

Not as pretty as BIM360, and produces something similar to Navisworks.  Navisworks has been around for years now, and early on I was not that keen on it.  How things change: I now use it all the time and find it is a wonderful thing.  I can do a large 3D Autocad model, get that into Navisworks, save as an NWD file send that to my boss, who does not need Autocad to view it.  

It is also handy to check out your model, as the navigation tools are better than what is in Autocad.

Late payers, or people who do not pay at all: Is it just a New Zealand thing or is it world wide?  I have been working for the last 2 years for an architectural draftsman, who I find is not even a Licensed Building Practitioner, and early on was always a good payer, but lately has not been paying.  Plus other sundry people I have done work for who think not paying is OK.

Plus not giving be a consistent supply of work, meant I applied for a permanent job with the firm I am with now.  I applied, saying I am not the person you want, but I could fill in.  One year later I am still working there.  The office has no windows, which is why I asked to work at home 3 days per week and they let me do that.

Working on a large project is a new one for me.  What I have done is to split the thing up into rooms or areas.  There is a main model where all these are Xreffed in.

This approach works well, though I see a previous draftsman took this a bit too far, making a run of pipe an xref.










 

Saturday, January 20, 2024

Autolisp Routines for labelling piping PIDs

I am now working at a product process consultancy and one of the tasks is to 
look at a PID, and work out where the pipes on the diagram go.

Sometimes, there are no line numbers, so to make things easier on me, I decided to give all the pipes line numbers.  Normally these look like HW-50-001, ie they give an idea of what is in the pipe, it's size and lastly a number.

In line with my dubious philosophy of keeping life simple, I made a copy of the PID and set about numbering all the pipes with just a simple number , ie 1,2 and so on.

My cunning plan was to have an Excel spreadsheet with a From/To list, which would have product and size on there instead.

I also set up the 3d drawing of the pipes with a set of layers labelled 1, 2 and so on.

To save my sanity, I developed several lisp routines to help automate this process as the plant was quite large.

This first one sets up layer numbers in the 3D drawing.  It asks you for the first number and the last number. Then it creates all the layers, and makes the colour of the layer to be the colour number.  Yes, you are correct....this limits this idea to 250 layers.

I could modify the routine to allow for this at some stage.  I did notice that some colours are pretty dark, so this is a drawback that might have to be addressed.

(defun c:laysnum()
  (setq startno (getint "/n Start no: "))
  (setq finishno (getint "/n Finish no: "))
  (setq thenolayers (- finishno startno))

  (while (< startno finishno)
    (progn
      (setq thelayers (itoa startno))
      (command "-layer" "m" thelayers "c" thelayers "" "")
      (setq startno (+ startno 1))
    ) ; end progn
  ) ; end while
  (princ)
)

The second is for use on the PID and asks the user to select a line, then key in a number, eg 4, and then asks for a text position.  The routine changes the layer of the line to 4 and puts the text of "4" above the line.

All while assuming zero height text of course;)

(defun c:CLAT ()
(setq theent (car (entsel "\nSelect a line: ")))
(setq layerNumbers (getstring "\nEnter a number (X): "))
(setq textPosition (getpoint "\nSpecify text position: "))
(setq edata(entget theent))
(setq edata (subst (cons 8 layerNumbers) (assoc 8 ed) edata ))
(entmod edata)
(command "text" textPosition "" "" layernumbers)
  (princ)
);end defun

The next one does the same, just that it does not ask for a text position-this is for when you have the numbers already on the drawing.

(defun c:zzCLAT ()
(setq theent (car (entsel "\nSelect a line: ")))
(setq layerNumbers (getstring "\nEnter a number (X): "))
(setq edata(entget theent))
(setq edata (subst (cons 8 layerNumbers) (assoc 8 ed) edata ))
(entmod edata)
(princ)
);end defun

This one just puts in numbers only, sequentially.

(defun C:zzn( /  z b x y )
(setvar "CMDECHO" 0)
(command "osnap" "none")
(setq oldsnap (getvar "osmode"))
    (if (equal numberf nil)
        (setq numberf 1)
    )
(setq numbers (rtos numberf))
(while (not(equal numbers "299"))
(progn
(setq x (getpoint "\n Pick Number Position "))
(command "Text" x "" "" numbers)
(setq numberf(atof numbers))
(setq numberf (+ numberf 1))
(setq numbers (rtos numberf))
);end progn
);end while
(setvar "osmode" oldsnap)
(setvar "CMDECHO" 1)
 (princ)
)

Notice that there is a variable in there called numberf.  If you have used the routine once, it will persist and will pick up again where you left off.  To start again at a specified number use:

(defun  c:zzNUM()
(setq numberf (getreal "/nEnter your start number "))
(princ)
 )

If all this is confusing, try blecouteur14 the at thing at jeeeeemail, asking me to do a short video.