feat: HVAC ductwork + DWV plumbing systems (#402)

Adds two new MEP node families (HVAC ductwork, DWV plumbing) built on a shared port-connectivity model. Co-authored by @sudhir9297.
This commit is contained in:
Sudhir Yadav
2026-06-16 15:30:39 -04:00
committed by GitHub
parent a0d3d9c701
commit 5551500d98
172 changed files with 17361 additions and 150 deletions
@@ -0,0 +1,56 @@
import type { ParametricDescriptor } from '@pascal-app/core'
import type { PipeFittingNode } from './schema'
export const pipeFittingParametrics: ParametricDescriptor<PipeFittingNode> = {
groups: [
{
label: 'Fitting',
fields: [
{
key: 'fittingType',
kind: 'enum',
options: ['elbow', 'wye', 'sanitary-tee', 'cross'],
display: 'segmented',
},
{
key: 'angle',
kind: 'number',
unit: '°',
min: 15,
max: 90,
step: 7.5,
visibleIf: (n) => n.fittingType === 'elbow',
},
{
key: 'system',
kind: 'enum',
options: ['waste', 'vent'],
display: 'segmented',
},
],
},
{
label: 'Connections',
fields: [
{ key: 'diameter', kind: 'number', unit: 'in', min: 1.25, max: 6, step: 0.25 },
{
key: 'diameter2',
kind: 'number',
unit: 'in',
min: 1.25,
max: 6,
step: 0.25,
visibleIf: (n) => n.fittingType !== 'elbow',
},
{ key: 'pipeMaterial', kind: 'enum', options: ['pvc', 'abs', 'cast-iron'] },
],
},
{
label: 'Placement',
fields: [
{ key: 'position', kind: 'vec3' },
{ key: 'rotation', kind: 'vec3' },
],
},
],
}