Is there a way to provide a more object-neutral, savvy placement logic?
Aecosim is pretty flexible with what orientation its objects are placed with. A Wall etc can be placed on a sloping plane, according to how the ACS is defined. definitely an advantage over the competition.
But these 'system' objects will almost always be used as host objects generated by PCS like casework, rails, skirtings, signage, fittings and equipment. There is a plethora of settings like base, side, depth, back, front offset, Rel. ACS etc, which will be helpful.
As it stands, it seems like the way that the PCS-generated object is oriented on the selected host object really struggles when the object is oriented 'unconventionally'.
Example of placing a Window in a sloping wall. The window object generated by PCS is placed as expected when the wall is placed on a levelly placed Wall. It seems to read the orientation of the wall properly.
But, when it is placed on a 'sloping' Wall, it seems to lose the plot completely.
Roughly speaking, there are three types of Triforma Forms host objects and an equivalent number of hosted objects that can be grafted on them.
Planar: Walls, slabs, roofs.
Recipe Inputs: P-Plane polygon, sweep operation; Outputs: Q-place polygon
Recipe Inputs: Polygon cross section, sweep vector
Linear: Columns and beam.
Recipe Inputs: Planar cross section. extrusion path
Recipe Inputs: Line/linestring/arc, sweep vector, thickness, P and Q-Points.
Point: Cells
Inputs: insertion point, rotation matrix
This makes nine possible combinations. It would be good to be able to provide the Place Object tool and PCS the smarts to glue / graft the objects onto their hosts properly. Placing a object generated in PCS on a TF object in Aecosim like a wall should be more like how the PCS object already behaves when placed in PCS. PCS already has some tools to define how an object is placed like _TF_Point3_Order, which is used by the Place Object tool to prompt the user to provide the necessary inputs in the desired order.
PCS should allow user to define what plane or 'positioneer' or Path2D should be used to match a particular plane or edge/sweep vector on the TF host object. The Place Object tool may have to extract the face information via Parasolids and not the TF COM recipe inputs or methods. Maybe, the additional methods could be added to TF COM? The new Constraints tools would be great to leverage. Just 3d constrain the two planes or closed paths together.
1. Planar on Planar: Ramps
2. Planar on Linear:
3. Planar on Point:
4. Linear on Planar:
5. Linear on Linear:
6. Linear on Point:
7. Point on Planar: Walls will have lots of point objects like light fittings, signage boards etc that would need to be placed on or within its planar faces. Slabs and walls will need penetrations. There should be the option to access input parameters like thickness to feed parameters like offsets; and the option to switch to 3d constraints like plane to plane parallel, perpendicular etc.
8. Point on Linear: Linear objects like columns would often have point objects like corbels or pockets. It would be good to be able to constrain the point object's insertion point to the linear objects sweep vector or workline.
9. Point on Point: A plumbing fixture like a hand wash basin would be placed as a Cell, hosted by Wall. At some point, the taps and other secondary fixtures would be placed onto the host point object. It would be good to be able to provide a constrain between both insertion points.